core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/discovery/ui/view/DiscoveryView.java
author dadubrow
Wed, 19 May 2010 15:35:14 -0500
changeset 1374 67b625db1866
parent 1366 c61bb9dcfe74
child 1385 e626d1981906
permissions -rw-r--r--
fix bugs, externalize strings, change some labels, add status line
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
     1
package com.nokia.carbide.discovery.ui.view;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
     2
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
     3
1363
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
     4
import java.io.File;
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
     5
import java.io.FileInputStream;
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
     6
import java.io.IOException;
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
     7
import java.io.InputStream;
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
     8
import java.net.URL;
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
     9
import java.text.MessageFormat;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    10
import java.util.List;
1363
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
    11
import java.util.Properties;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    12
1363
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
    13
import org.eclipse.core.runtime.IPath;
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
    14
import org.eclipse.core.runtime.Path;
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
    15
import org.eclipse.core.runtime.Platform;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    16
import org.eclipse.equinox.internal.p2.discovery.Catalog;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    17
import org.eclipse.equinox.internal.p2.discovery.DiscoveryCore;
1366
c61bb9dcfe74 fix potential NPE + add bundle discovery for testing
dadubrow
parents: 1363
diff changeset
    18
import org.eclipse.equinox.internal.p2.discovery.compatibility.BundleDiscoveryStrategy;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    19
import org.eclipse.equinox.internal.p2.discovery.compatibility.RemoteBundleDiscoveryStrategy;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    20
import org.eclipse.equinox.internal.p2.discovery.model.CatalogItem;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    21
import org.eclipse.equinox.internal.p2.ui.discovery.DiscoveryUi;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    22
import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogConfiguration;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    23
import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogViewer;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    24
import org.eclipse.jface.action.Action;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    25
import org.eclipse.jface.action.IMenuManager;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    26
import org.eclipse.jface.action.IToolBarManager;
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
    27
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    28
import org.eclipse.jface.layout.GridDataFactory;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    29
import org.eclipse.jface.layout.GridLayoutFactory;
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
    30
import org.eclipse.jface.viewers.ISelectionChangedListener;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    31
import org.eclipse.jface.viewers.IStructuredSelection;
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
    32
import org.eclipse.jface.viewers.SelectionChangedEvent;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    33
import org.eclipse.jface.viewers.StructuredSelection;
1363
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
    34
import org.eclipse.osgi.service.datalocation.Location;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    35
import org.eclipse.swt.SWT;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    36
import org.eclipse.swt.widgets.Composite;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    37
import org.eclipse.swt.widgets.Display;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    38
import org.eclipse.ui.IActionBars;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    39
import org.eclipse.ui.PlatformUI;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    40
import org.eclipse.ui.actions.BaseSelectionListenerAction;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    41
import org.eclipse.ui.part.ViewPart;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    42
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    43
import com.nokia.carbide.discovery.ui.Activator;
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
    44
import com.nokia.carbide.discovery.ui.Messages;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    45
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    46
@SuppressWarnings("restriction")
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
    47
public class DiscoveryView extends ViewPart {
1363
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
    48
	
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
    49
	private static final String DIRECTORY_KEY = "com.nokia.carbide.discovery.directory"; //$NON-NLS-1$
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    50
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    51
	private CatalogViewer viewer;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    52
	private Action refreshAction;
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
    53
	private BaseSelectionListenerAction checkAllAction;
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
    54
	private BaseSelectionListenerAction checkNoneAction;
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
    55
	private BaseSelectionListenerAction installAction;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    56
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
    57
	private boolean initialized;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    58
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
    59
	private ISelectionChangedListener selectionListener;
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
    60
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    61
	public DiscoveryView() {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    62
	}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    63
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    64
	/**
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    65
	 * This is a callback that will allow us
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    66
	 * to create the viewer and initialize it.
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    67
	 */
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    68
	public void createPartControl(Composite parent) {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    69
		Composite c = new Composite(parent, SWT.NONE);
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    70
		GridLayoutFactory.fillDefaults().applyTo(c);
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    71
		viewer = new CatalogViewer(getCatalog(), getSite(), getSite().getWorkbenchWindow(), getConfiguration());
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    72
		viewer.createControl(c);
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    73
		GridDataFactory.fillDefaults().grab(true, true).applyTo(viewer.getControl());
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    74
		
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    75
		// Create the help context id for the viewer's control
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
    76
		PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), 
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
    77
				"com.nokia.carbide.discovery.ui.view.DiscoveryView.viewer"); //$NON-NLS-1$
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    78
		makeActions();
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    79
		contributeToActionBars();
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    80
	}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    81
	
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    82
	private CatalogConfiguration getConfiguration() {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    83
		CatalogConfiguration configuration = new CatalogConfiguration();
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    84
		configuration.setShowTagFilter(false);
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    85
		return configuration;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    86
	}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    87
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    88
	private Catalog getCatalog() {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    89
		Catalog catalog = new Catalog();
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    90
		catalog.setEnvironment(DiscoveryCore.createEnvironment());
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    91
		catalog.setVerifyUpdateSiteAvailability(false);
1366
c61bb9dcfe74 fix potential NPE + add bundle discovery for testing
dadubrow
parents: 1363
diff changeset
    92
		
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    93
		// look for remote descriptor
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
    94
		RemoteBundleDiscoveryStrategy remoteDiscoveryStrategy = new RemoteBundleDiscoveryStrategy();
1363
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
    95
		String url = getFromServerProperties(DIRECTORY_KEY);
1366
c61bb9dcfe74 fix potential NPE + add bundle discovery for testing
dadubrow
parents: 1363
diff changeset
    96
		if (url != null) {
c61bb9dcfe74 fix potential NPE + add bundle discovery for testing
dadubrow
parents: 1363
diff changeset
    97
			remoteDiscoveryStrategy.setDirectoryUrl(url);
c61bb9dcfe74 fix potential NPE + add bundle discovery for testing
dadubrow
parents: 1363
diff changeset
    98
			catalog.getDiscoveryStrategies().add(remoteDiscoveryStrategy);
c61bb9dcfe74 fix potential NPE + add bundle discovery for testing
dadubrow
parents: 1363
diff changeset
    99
		}
c61bb9dcfe74 fix potential NPE + add bundle discovery for testing
dadubrow
parents: 1363
diff changeset
   100
		else // look for descriptors from installed bundles
c61bb9dcfe74 fix potential NPE + add bundle discovery for testing
dadubrow
parents: 1363
diff changeset
   101
			catalog.getDiscoveryStrategies().add(new BundleDiscoveryStrategy());
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   102
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   103
		return catalog;
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   104
	}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   105
1363
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   106
	public static String getFromServerProperties(String key) {
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   107
		Location installLocation = Platform.getInstallLocation();
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   108
		URL url = installLocation.getURL();
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   109
		IPath path = new Path(url.getPath());
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   110
		path = path.append("configuration/server.properties"); //$NON-NLS-1$
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   111
		File file = path.toFile();
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   112
		Properties properties = new Properties();
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   113
		try {
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   114
			InputStream is = new FileInputStream(file);
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   115
			properties.load(is);
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   116
			is.close();
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   117
		} catch (IOException e) {
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   118
			String message = 
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   119
				MessageFormat.format(Messages.DiscoveryView_MissingDirectoryURLError, key);
1363
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   120
			Activator.logError(message, e);
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   121
		}
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   122
		return (String) properties.get(key);
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   123
	}
dfbd4576cd61 move url to server.properties
dadubrow
parents: 1361
diff changeset
   124
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   125
	private void contributeToActionBars() {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   126
		IActionBars bars = getViewSite().getActionBars();
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   127
		fillLocalPullDown(bars.getMenuManager());
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   128
		fillLocalToolBar(bars.getToolBarManager());
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   129
	}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   130
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   131
	private void fillLocalPullDown(IMenuManager manager) {
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   132
		manager.add(checkAllAction);
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   133
		manager.add(checkNoneAction);
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   134
	}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   135
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   136
	private void fillLocalToolBar(IToolBarManager manager) {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   137
		manager.add(refreshAction);
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   138
		manager.add(installAction);
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   139
	}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   140
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   141
	private void makeActions() {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   142
		refreshAction = new Action() {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   143
			public void run() {
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   144
				viewer.setSelection(StructuredSelection.EMPTY);
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   145
				viewer.refresh();
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   146
				viewer.updateCatalog();
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   147
			}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   148
		};
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   149
		refreshAction.setText(Messages.DiscoveryView_RefreshLabel);
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   150
		refreshAction.setImageDescriptor(Activator.getImageDescriptor("icons/refresh.gif")); //$NON-NLS-1$
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   151
		checkAllAction = new BaseSelectionListenerAction(Messages.DiscoveryView_CheckAllLabel) {
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   152
			public void run() {
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   153
				viewer.setSelection(StructuredSelection.EMPTY);
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   154
				viewer.setSelection(getAllItemsSelection());
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   155
				viewer.refresh();
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   156
			}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   157
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   158
			private IStructuredSelection getAllItemsSelection() {
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   159
				List<CatalogItem> catalogItems = viewer.getCatalog().getItems();
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   160
				return new StructuredSelection(catalogItems);
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   161
			}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   162
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   163
			protected boolean updateSelection(IStructuredSelection selection) {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   164
				return !getAllItemsSelection().equals(selection);
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   165
			};
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   166
		};
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   167
		checkNoneAction = new BaseSelectionListenerAction(Messages.DiscoveryView_UncheckAllLabel) {
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   168
			public void run() {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   169
				viewer.setSelection(StructuredSelection.EMPTY);
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   170
				viewer.refresh();
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   171
			};
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   172
			
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   173
			protected boolean updateSelection(IStructuredSelection selection) {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   174
				return !selection.isEmpty();
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   175
			};
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   176
		};
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   177
		installAction = new BaseSelectionListenerAction(Messages.DiscoveryView_InstallLabel) {
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   178
			public void run() {
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   179
				DiscoveryUi.install(viewer.getCheckedItems(), new ProgressMonitorDialog(DiscoveryView.this.getViewSite().getShell()));
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   180
			};
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   181
			
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   182
			protected boolean updateSelection(IStructuredSelection selection) {
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   183
				return !selection.isEmpty();
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   184
			};
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   185
		};
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   186
		installAction.setImageDescriptor(Activator.getImageDescriptor("icons/icon-discovery.png")); //$NON-NLS-1$
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   187
		viewer.addSelectionChangedListener(checkAllAction);
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   188
		viewer.addSelectionChangedListener(checkNoneAction);
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   189
		viewer.addSelectionChangedListener(installAction);
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   190
		selectionListener = new ISelectionChangedListener() {
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   191
			@Override
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   192
			public void selectionChanged(SelectionChangedEvent event) {
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   193
				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   194
				IActionBars bars = getViewSite().getActionBars();
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   195
				bars.getStatusLineManager().setMessage(
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   196
						selection.isEmpty() ? null : MessageFormat.format(
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   197
								Messages.DiscoveryView_StatusLineFmt, selection.size()));
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   198
			}
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   199
		};
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   200
		viewer.addSelectionChangedListener(selectionListener);
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   201
	}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   202
	
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   203
	@Override
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   204
	public void dispose() {
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   205
		viewer.removeSelectionChangedListener(checkAllAction);
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   206
		viewer.removeSelectionChangedListener(checkNoneAction);
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   207
		viewer.removeSelectionChangedListener(installAction);
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   208
		viewer.removeSelectionChangedListener(selectionListener);
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   209
		
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   210
		super.dispose();
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   211
	}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   212
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   213
	/**
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   214
	 * Passing the focus request to the viewer's control.
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   215
	 */
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   216
	public void setFocus() {
1361
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   217
		if (!initialized) {
952666b15772 update discovery view
dadubrow
parents: 1360
diff changeset
   218
			initialized = true;
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   219
			Display.getDefault().asyncExec(new Runnable() {
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   220
				@Override
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   221
				public void run() {
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   222
					if (viewer.getViewer().getContentProvider() != null) {
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   223
						viewer.updateCatalog();
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   224
					}
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   225
				}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   226
			});
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   227
		}
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   228
	}
1374
67b625db1866 fix bugs, externalize strings, change some labels, add status line
dadubrow
parents: 1366
diff changeset
   229
1360
b609311b7b1c initial commit
dadubrow
parents:
diff changeset
   230
}