connectivity/com.nokia.carbide.remoteConnections/src/com/nokia/carbide/remoteconnections/view/ConnectionsView.java
author Ed Swartz <ed.swartz@nokia.com>
Wed, 30 Dec 2009 13:49:15 -0600
changeset 734 9cbe484c2715
parent 733 dfcdb2620e52
child 737 952b6f67894a
permissions -rw-r--r--
Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     1
/*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     3
* All rights reserved.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     8
*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    11
*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    12
* Contributors:
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    13
*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    14
* Description: 
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    15
*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    16
*/
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    17
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    18
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    19
package com.nokia.carbide.remoteconnections.view;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    20
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    21
import java.util.ArrayList;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    22
import java.util.Collection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    23
import java.util.HashMap;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    24
import java.util.List;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    25
import java.util.Map;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    26
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    27
import org.eclipse.jface.action.Action;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    28
import org.eclipse.jface.action.IMenuListener;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    29
import org.eclipse.jface.action.IMenuManager;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    30
import org.eclipse.jface.action.IToolBarManager;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    31
import org.eclipse.jface.action.LegacyActionTools;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    32
import org.eclipse.jface.action.MenuManager;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    33
import org.eclipse.jface.resource.ImageDescriptor;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    34
import org.eclipse.jface.resource.JFaceResources;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    35
import org.eclipse.jface.viewers.CellEditor;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    36
import org.eclipse.jface.viewers.ColumnLabelProvider;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    37
import org.eclipse.jface.viewers.ColumnViewer;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    38
import org.eclipse.jface.viewers.ColumnViewerEditor;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    39
import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    40
import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    41
import org.eclipse.jface.viewers.DoubleClickEvent;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    42
import org.eclipse.jface.viewers.EditingSupport;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    43
import org.eclipse.jface.viewers.IDoubleClickListener;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    44
import org.eclipse.jface.viewers.ISelection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    45
import org.eclipse.jface.viewers.ISelectionChangedListener;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    46
import org.eclipse.jface.viewers.IStructuredSelection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    47
import org.eclipse.jface.viewers.SelectionChangedEvent;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    48
import org.eclipse.jface.viewers.TextCellEditor;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    49
import org.eclipse.jface.viewers.TreeColumnViewerLabelProvider;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    50
import org.eclipse.jface.viewers.TreeNode;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    51
import org.eclipse.jface.viewers.TreeNodeContentProvider;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    52
import org.eclipse.jface.viewers.TreeViewer;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    53
import org.eclipse.jface.viewers.TreeViewerColumn;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    54
import org.eclipse.jface.viewers.TreeViewerEditor;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    55
import org.eclipse.jface.viewers.Viewer;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    56
import org.eclipse.jface.viewers.ViewerSorter;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    57
import org.eclipse.swt.SWT;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    58
import org.eclipse.swt.events.KeyAdapter;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    59
import org.eclipse.swt.events.KeyEvent;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    60
import org.eclipse.swt.graphics.Color;
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
    61
import org.eclipse.swt.graphics.Font;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    62
import org.eclipse.swt.graphics.Image;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    63
import org.eclipse.swt.widgets.Composite;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    64
import org.eclipse.swt.widgets.Display;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    65
import org.eclipse.swt.widgets.Menu;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    66
import org.eclipse.swt.widgets.TreeColumn;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    67
import org.eclipse.swt.widgets.TreeItem;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    68
import org.eclipse.ui.IActionBars;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    69
import org.eclipse.ui.ISharedImages;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    70
import org.eclipse.ui.PlatformUI;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    71
import org.eclipse.ui.part.ViewPart;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    72
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    73
import com.nokia.carbide.remoteconnections.Messages;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    74
import com.nokia.carbide.remoteconnections.RemoteConnectionsActivator;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    75
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    76
import com.nokia.carbide.remoteconnections.interfaces.IConnection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    77
import com.nokia.carbide.remoteconnections.interfaces.IConnectionsManager;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    78
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatus;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    79
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatusChangedListener;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    80
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatus.EStatus;
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
    81
import com.nokia.carbide.remoteconnections.interfaces.IConnectionsManager.IConnectionListener;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    82
import com.nokia.carbide.remoteconnections.interfaces.IConnectionsManager.IConnectionsManagerListener;
700
9441b6037cb6 rename internal api package to internal.api
dadubrow
parents: 699
diff changeset
    83
import com.nokia.carbide.remoteconnections.internal.api.IConnection2;
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
    84
import com.nokia.carbide.remoteconnections.internal.registry.Registry;
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
    85
import com.nokia.carbide.remoteconnections.internal.ui.ConnectionUIUtils;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    86
import com.nokia.carbide.remoteconnections.settings.ui.SettingsWizard;
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
    87
import com.nokia.cpp.internal.api.utils.core.ObjectUtils;
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
    88
import com.nokia.cpp.internal.api.utils.core.TextUtils;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    89
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    90
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    91
/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    92
 * The view part for Remote connections
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    93
 */
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    94
@SuppressWarnings("deprecation")
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    95
public class ConnectionsView extends ViewPart {
703
3a27d56389d5 Initial device status widget
Ed Swartz <ed.swartz@nokia.com>
parents: 687
diff changeset
    96
	public static final String VIEW_ID = "com.nokia.carbide.remoteconnections.view.ConnectionsView"; //$NON-NLS-1$
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    97
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    98
	private TreeViewer viewer;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    99
	private IConnectionsManagerListener connectionStoreChangedListener;
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   100
	private IConnectionListener connectionListener;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   101
	private Map<IConnectedService, IStatusChangedListener> serviceToListenerMap;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   102
	private List<Action> actions;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   103
	private List<Action> connectionSelectedActions;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   104
	private List<Action> serviceSelectedActions;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   105
	private static final String UID = ".uid"; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   106
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   107
	private static final ImageDescriptor CONNECTION_NEW_IMGDESC = RemoteConnectionsActivator.getImageDescriptor("icons/connectionNew.png"); //$NON-NLS-1$
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   108
	private static final ImageDescriptor CONNECTION_EDIT_IMGDESC = RemoteConnectionsActivator.getImageDescriptor("icons/connectionEdit.png"); //$NON-NLS-1$
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   109
	private static final ImageDescriptor SERVICE_TEST_IMGDESC = RemoteConnectionsActivator.getImageDescriptor("icons/serviceTest.png"); //$NON-NLS-1$
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   110
	private static final ImageDescriptor CONNECTION_REFRESH_IMGDESC = RemoteConnectionsActivator.getImageDescriptor("icons/connectionRefresh.png"); //$NON-NLS-1$
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   111
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   112
	private static final String NEW_ACTION = "ConnectionsView.new"; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   113
	private static final String EDIT_ACTION = "ConnectionsView.edit"; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   114
	private static final String RENAME_ACTION = "ConnectionsView.rename"; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   115
	private static final String ENABLE_SERVICE_ACTION = "ConnectionsView.enableService"; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   116
	private static final String REFRESH_ACTION = "ConnectionsView.refresh"; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   117
	private static final String DELETE_ACTION = "ConnectionsView.delete"; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   118
	private static final String HELP_ACTION = "ConnectionsView.help"; //$NON-NLS-1$
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   119
	private static final String SET_DEFAULT_ACTION = "ConnectionsView.makeDefault"; //$NON-NLS-1$
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   120
	private KeyAdapter keyListener;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   121
	private boolean isDisposed;
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   122
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   123
	// handle, do not dispose
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   124
	private Font boldViewerFont;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   125
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   126
	private TreeNode[] loadConnections() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   127
		if (serviceToListenerMap == null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   128
			serviceToListenerMap = new HashMap<IConnectedService, IStatusChangedListener>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   129
		removeServiceListeners();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   130
		List<TreeNode> connectionNodes = new ArrayList<TreeNode>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   131
		Collection<IConnection> connections = 
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   132
			Registry.instance().getConnections();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   133
		for (IConnection connection : connections) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   134
			// create a node for the connection
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   135
			TreeNode connectionNode = new TreeNode(connection);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   136
			// create subnodes for the connected services
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   137
			List<TreeNode> serviceNodes = new ArrayList<TreeNode>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   138
			Collection<IConnectedService> connectedServicesForConnection = 
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   139
				Registry.instance().getConnectedServices(connection);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   140
			for (IConnectedService connectedService : connectedServicesForConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   141
				final TreeNode treeNode = new TreeNode(connectedService);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   142
				IStatusChangedListener statusChangedListener = new IStatusChangedListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   143
					public void statusChanged(final IStatus status) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   144
						Display.getDefault().asyncExec(new Runnable() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   145
							public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   146
								if (!isDisposed) {
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   147
									viewer.refresh(true);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   148
									packColumns();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   149
								}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   150
							}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   151
						});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   152
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   153
				};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   154
				connectedService.addStatusChangedListener(statusChangedListener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   155
				serviceToListenerMap.put(connectedService, statusChangedListener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   156
				connectedService.setEnabled(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   157
				serviceNodes.add(treeNode);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   158
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   159
			for (TreeNode serviceNode : serviceNodes) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   160
				serviceNode.setParent(connectionNode);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   161
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   162
			connectionNode.setChildren((TreeNode[]) serviceNodes.toArray(new TreeNode[serviceNodes.size()]));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   163
			connectionNodes.add(connectionNode);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   164
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   165
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   166
		return (TreeNode[]) connectionNodes.toArray(new TreeNode[connectionNodes.size()]);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   167
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   168
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   169
	private class NameEditingSupport extends EditingSupport {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   170
		private TextCellEditor editor;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   171
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   172
		private NameEditingSupport(ColumnViewer viewer) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   173
			super(viewer);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   174
			editor = new TextCellEditor((Composite) viewer.getControl(), SWT.BORDER);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   175
		}
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   176
		
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   177
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   178
		protected boolean canEdit(Object element) {
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   179
			Object object = ((TreeNode) element).getValue();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   180
			if (object instanceof IConnection && !isDynamicConnection(object))
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   181
				return true;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   182
			return false;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   183
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   184
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   185
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   186
		protected CellEditor getCellEditor(Object element) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   187
			return editor;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   188
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   189
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   190
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   191
		protected Object getValue(Object element) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   192
			IConnection connection = (IConnection) ((TreeNode) element).getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   193
			return connection.getDisplayName();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   194
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   195
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   196
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   197
		protected void setValue(Object element, Object value) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   198
			IConnection connection = (IConnection) ((TreeNode) element).getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   199
			connection.setDisplayName(value.toString());
710
47bb893ba749 Attach listener to connection name changes, rename Device -> Connection
Ed Swartz <ed.swartz@nokia.com>
parents: 706
diff changeset
   200
			//viewer.refresh(true);
47bb893ba749 Attach listener to connection name changes, rename Device -> Connection
Ed Swartz <ed.swartz@nokia.com>
parents: 706
diff changeset
   201
			//packColumns();
47bb893ba749 Attach listener to connection name changes, rename Device -> Connection
Ed Swartz <ed.swartz@nokia.com>
parents: 706
diff changeset
   202
			Registry.instance().updateDisplays();
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   203
			Registry.instance().storeConnections();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   204
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   205
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   206
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   207
	private class NameLabelProvider extends ColumnLabelProvider {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   208
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   209
		public String getText(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   210
			return getNodeDisplayName(obj);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   211
		}
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   212
		
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   213
		/* (non-Javadoc)
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   214
		 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getFont(java.lang.Object)
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   215
		 */
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   216
		@Override
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   217
		public Font getFont(Object element) {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   218
			if (element instanceof TreeNode) {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   219
				if (((TreeNode)element).getValue().equals(Registry.instance().getDefaultConnection())) {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   220
					return boldViewerFont;
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   221
				}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   222
			}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   223
			return super.getFont(element);
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   224
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   225
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   226
		public Image getImage(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   227
			TreeNode node = (TreeNode) obj;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   228
			Object value = node.getValue();
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   229
			if (value instanceof IConnection) {
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   230
				return ConnectionUIUtils.getConnectionImage((IConnection) value);
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   231
			}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   232
			else if (value instanceof IConnectedService) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   233
				EStatus status = ((IConnectedService) value).getStatus().getEStatus();
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   234
				IConnection connection = findConnection((IConnectedService) value);
711
d97b8b6bce37 add logic for disconnect and reconnect
dadubrow
parents: 710
diff changeset
   235
				if (connection != null && ConnectionUIUtils.isSomeServiceInUse(connection))
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   236
					status = EStatus.IN_USE;
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   237
				return ConnectionUIUtils.getConnectedServiceStatusImage(status);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   238
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   239
			return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   240
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   241
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   242
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   243
	private class StatusLabelProvider extends ColumnLabelProvider {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   244
		public String getText(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   245
			TreeNode node = (TreeNode) obj;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   246
			Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   247
			if (value instanceof IConnectedService) {
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   248
				IStatus status = null;
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   249
				IConnection connection = findConnection((IConnectedService) value);
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   250
				if (connection != null)
711
d97b8b6bce37 add logic for disconnect and reconnect
dadubrow
parents: 710
diff changeset
   251
					status = ConnectionUIUtils.getFirstInUseServiceStatus(connection);
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   252
				if (status == null) {
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   253
					status = ((IConnectedService) value).getStatus();
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   254
					return status.getShortDescription();
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   255
				}
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   256
			}
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   257
			else if (value instanceof IConnection) {
711
d97b8b6bce37 add logic for disconnect and reconnect
dadubrow
parents: 710
diff changeset
   258
				IStatus status = ConnectionUIUtils.getFirstInUseServiceStatus((IConnection) value);
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   259
				if (status != null)
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   260
					return status.getShortDescription();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   261
			}
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   262
				
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   263
			return null;
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   264
		}
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   265
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   266
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   267
		public Color getForeground(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   268
			TreeNode node = (TreeNode) obj;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   269
			Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   270
			if (value instanceof IConnectedService) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   271
				EStatus status = ((IConnectedService) value).getStatus().getEStatus();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   272
				switch (status) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   273
				case DOWN:
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   274
					return ConnectionUIUtils.COLOR_RED;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   275
				case UP:
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   276
					return ConnectionUIUtils.COLOR_GREEN;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   277
				case UNKNOWN:
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   278
					return ConnectionUIUtils.COLOR_GREY;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   279
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   280
			}
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   281
			else if (value instanceof IConnection) // only showing in-use for connections
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   282
				return ConnectionUIUtils.COLOR_ELECTRIC;
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   283
			
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   284
			return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   285
		}
734
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   286
		
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   287
		/* (non-Javadoc)
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   288
		 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getFont(java.lang.Object)
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   289
		 */
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   290
		@Override
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   291
		public Font getFont(Object element) {
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   292
			// we need this to avoid letting the bold name column influence the others 
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   293
			return JFaceResources.getDefaultFont();
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   294
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   295
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   296
	
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   297
	public class DescriptionLabelProvider extends ColumnLabelProvider {
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   298
		
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   299
		@Override
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   300
		public String getText(Object obj) {
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   301
			TreeNode node = (TreeNode) obj;
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   302
			Object value = node.getValue();
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   303
			if (value instanceof IConnectedService) {
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   304
				IStatus status = ((IConnectedService) value).getStatus();
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   305
				IConnection connection = findConnection((IConnectedService) value);
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   306
				if (!status.getEStatus().equals(EStatus.IN_USE) ||
711
d97b8b6bce37 add logic for disconnect and reconnect
dadubrow
parents: 710
diff changeset
   307
						!(connection != null && ConnectionUIUtils.isSomeServiceInUse(connection))) { // if in-use, we show it in the connection row
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   308
					String longDescription = status.getLongDescription();
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   309
					if (longDescription != null)
165
cffbaf033837 [Bug 9085] Add new TCP/IP connection type with port mappings and new service interface to optionally provide defaults.
dadubrow
parents: 163
diff changeset
   310
						longDescription = TextUtils.canonicalizeNewlines(longDescription, " "); //$NON-NLS-1$
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   311
					return longDescription;
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   312
				}
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   313
			}
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   314
			else if (value instanceof IConnection) {
711
d97b8b6bce37 add logic for disconnect and reconnect
dadubrow
parents: 710
diff changeset
   315
				if (ConnectionUIUtils.isSomeServiceInUse((IConnection) value)) {
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   316
					return Messages.getString("ConnectionsView.InUseDesc");
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   317
				}
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   318
			}
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   319
			
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   320
			return null;
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   321
		}
734
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   322
		
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   323
		/* (non-Javadoc)
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   324
		 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getFont(java.lang.Object)
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   325
		 */
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   326
		@Override
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   327
		public Font getFont(Object element) {
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   328
			// we need this to avoid letting the bold name column influence the others 
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   329
			return JFaceResources.getDefaultFont();
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   330
		}
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   331
	}
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   332
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   333
	private class TypeLabelProvider extends ColumnLabelProvider {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   334
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   335
		public String getText(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   336
			TreeNode node = (TreeNode) obj;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   337
			Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   338
			if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   339
				return ((IConnection) value).getConnectionType().getDisplayName();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   340
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   341
			return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   342
		}
734
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   343
		
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   344
		/* (non-Javadoc)
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   345
		 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getFont(java.lang.Object)
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   346
		 */
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   347
		@Override
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   348
		public Font getFont(Object element) {
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   349
			// we need this to avoid letting the bold name column influence the others 
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   350
			return JFaceResources.getDefaultFont();
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   351
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   352
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   353
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   354
	private class EnableConnectedServiceAction extends Action {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   355
		private EnableConnectedServiceAction() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   356
			super("", SERVICE_TEST_IMGDESC); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   357
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   358
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   359
		private IConnectedService getSelectedConnectedService() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   360
			ISelection selection = viewer.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   361
			if (selection.isEmpty())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   362
				return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   363
			TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   364
			Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   365
			if (value instanceof IConnectedService) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   366
				return (IConnectedService) value;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   367
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   368
			return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   369
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   370
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   371
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   372
		public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   373
			IConnectedService connectedService = getSelectedConnectedService();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   374
			if (connectedService != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   375
				connectedService.setEnabled(!connectedService.isEnabled());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   376
				updateLabel();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   377
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   378
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   379
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   380
		public void updateLabel() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   381
			IConnectedService connectedService = getSelectedConnectedService();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   382
			if (connectedService == null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   383
				return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   384
			String label = connectedService.isEnabled() ?
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   385
					Messages.getString("ConnectionsView.DisableTestActionLabel") : //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   386
					Messages.getString("ConnectionsView.EnableTestActionLabel"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   387
			setText(label);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   388
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   389
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   390
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   391
		public void setEnabled(boolean enabled) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   392
			super.setEnabled(enabled);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   393
			updateLabel();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   394
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   395
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   396
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   397
		public boolean isEnabled() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   398
			IConnectedService connectedService = getSelectedConnectedService();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   399
			return connectedService != null && connectedService.getService().isTestable();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   400
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   401
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   402
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   403
	/* (non-Javadoc)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   404
	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   405
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   406
	public void createPartControl(Composite parent) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   407
		viewer = new TreeViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   408
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   409
		TreeViewerColumn nameColumn = new TreeViewerColumn(viewer, SWT.LEFT);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   410
		nameColumn.setLabelProvider(new TreeColumnViewerLabelProvider(new NameLabelProvider()));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   411
		nameColumn.getColumn().setText(Messages.getString("ConnectionsView.NameColumnHeader")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   412
		nameColumn.setEditingSupport(new NameEditingSupport(nameColumn.getViewer()));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   413
		ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(nameColumn.getViewer()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   414
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   415
			protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   416
				return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   417
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   418
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   419
		TreeViewerEditor.create(viewer, activationStrategy, ColumnViewerEditor.DEFAULT);
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   420
		
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   421
		boldViewerFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   422
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   423
		TreeViewerColumn typeColumn = new TreeViewerColumn(viewer, SWT.LEFT);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   424
		typeColumn.setLabelProvider(new TypeLabelProvider());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   425
		typeColumn.getColumn().setText(Messages.getString("ConnectionsView.TypeColumnHeader")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   426
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   427
		TreeViewerColumn statusColumn = new TreeViewerColumn(viewer, SWT.LEFT);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   428
		statusColumn.setLabelProvider(new StatusLabelProvider());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   429
		statusColumn.getColumn().setText(Messages.getString("ConnectionsView.StatusColumnHeader")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   430
		
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   431
		TreeViewerColumn descriptionColumn = new TreeViewerColumn(viewer, SWT.LEFT);
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   432
		descriptionColumn.setLabelProvider(new DescriptionLabelProvider());
165
cffbaf033837 [Bug 9085] Add new TCP/IP connection type with port mappings and new service interface to optionally provide defaults.
dadubrow
parents: 163
diff changeset
   433
		descriptionColumn.getColumn().setText(Messages.getString("ConnectionsView.DescriptionColumnHeader")); //$NON-NLS-1$
55
8254273d11c0 [Bug 8297] add description column to remote connections view with long description of status and move in-use UI to connection rather than displaying on each service - use blue color for in-use status text rather than yellow
dadubrow
parents: 0
diff changeset
   434
		
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   435
		viewer.setContentProvider(new TreeNodeContentProvider());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   436
		viewer.setInput(loadConnections());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   437
		viewer.expandAll();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   438
		viewer.getTree().setHeaderVisible(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   439
		viewer.getControl().setData(UID, "viewer"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   440
		viewer.setSorter(new ViewerSorter() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   441
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   442
			public int compare(Viewer viewer, Object e1, Object e2) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   443
				return getNodeDisplayName(e1).compareToIgnoreCase(getNodeDisplayName(e2));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   444
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   445
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   446
		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   447
			public void selectionChanged(SelectionChangedEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   448
				enableConnectionSelectedActions(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   449
				enableServiceSelectedActions(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   450
				ISelection selection = event.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   451
				if (!selection.isEmpty()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   452
					IStructuredSelection structuredSelection = (IStructuredSelection) selection;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   453
					TreeNode treeNode = (TreeNode) structuredSelection.getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   454
					Object value = treeNode.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   455
					if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   456
						enableConnectionSelectedActions(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   457
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   458
					else if (value instanceof IConnectedService) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   459
						enableServiceSelectedActions(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   460
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   461
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   462
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   463
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   464
		viewer.addDoubleClickListener(new IDoubleClickListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   465
			public void doubleClick(DoubleClickEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   466
				ISelection selection = event.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   467
				if (!selection.isEmpty()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   468
					IStructuredSelection structuredSelection = (IStructuredSelection) selection;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   469
					TreeNode treeNode = (TreeNode) structuredSelection.getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   470
					Object value = treeNode.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   471
					if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   472
						SettingsWizard wizard = new SettingsWizard((IConnection) value);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   473
						wizard.open(getViewSite().getShell());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   474
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   475
					else if (value instanceof IConnectedService) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   476
						IConnectedService connectedService = (IConnectedService) value;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   477
						connectedService.setEnabled(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   478
						connectedService.testStatus();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   479
						((EnableConnectedServiceAction) getAction(ENABLE_SERVICE_ACTION)).updateLabel();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   480
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   481
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   482
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   483
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   484
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   485
		packColumns();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   486
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   487
		makeActions();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   488
		hookContextMenu();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   489
		contributeToActionBars();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   490
		hookAccelerators();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   491
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   492
		connectionStoreChangedListener = new IConnectionsManagerListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   493
			public void connectionStoreChanged() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   494
				Display.getDefault().asyncExec(new Runnable() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   495
					public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   496
						viewer.setInput(loadConnections());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   497
						viewer.expandAll();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   498
						packColumns();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   499
						if (viewer.getSelection().isEmpty() && viewer.getTree().getItemCount() > 0) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   500
							TreeItem item = viewer.getTree().getItem(0);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   501
							if (item != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   502
								viewer.getTree().select(item);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   503
							}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   504
						}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   505
						viewer.setSelection(viewer.getSelection()); // force selection changed
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   506
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   507
				});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   508
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   509
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   510
			public void displayChanged() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   511
				Display.getDefault().asyncExec(new Runnable() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   512
					public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   513
						viewer.refresh(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   514
						packColumns();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   515
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   516
				});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   517
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   518
		};
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   519
		Registry.instance().addConnectionStoreChangedListener(connectionStoreChangedListener);
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   520
		
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   521
		connectionListener = new IConnectionListener() {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   522
			
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   523
			public void defaultConnectionSet(IConnection connection) {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   524
				Display.getDefault().asyncExec(new Runnable() {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   525
					public void run() {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   526
						viewer.refresh(true);
734
9cbe484c2715 Set the other columns as explicitly using the default font, to work around the previous issue (but still pack columns, for consistency).
Ed Swartz <ed.swartz@nokia.com>
parents: 733
diff changeset
   527
						packColumns();
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   528
					}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   529
				});				
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   530
			}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   531
			
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   532
			public void connectionRemoved(IConnection connection) {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   533
				// presumably the viewer itself handles this...
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   534
			}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   535
			
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   536
			public void connectionAdded(IConnection connection) {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   537
				// presumably the viewer itself handles this...
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   538
			}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   539
		};
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   540
		Registry.instance().addConnectionListener(connectionListener);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   541
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   542
		RemoteConnectionsActivator.setHelp(parent, ".connections_view"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   543
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   544
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   545
	private void packColumns() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   546
		TreeColumn[] columns = viewer.getTree().getColumns();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   547
		for (TreeColumn column : columns) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   548
			column.pack();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   549
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   550
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   551
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   552
	private String getNodeDisplayName(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   553
		Object value = ((TreeNode) obj).getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   554
		if (value instanceof IConnection)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   555
			return ((IConnection) value).getDisplayName();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   556
		else if (value instanceof IConnectedService)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   557
			return ((IConnectedService) value).getService().getDisplayName();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   558
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   559
		return ""; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   560
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   561
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   562
	private void hookContextMenu() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   563
		MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   564
		menuMgr.setRemoveAllWhenShown(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   565
		menuMgr.addMenuListener(new IMenuListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   566
			public void menuAboutToShow(IMenuManager manager) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   567
				ConnectionsView.this.fillContextMenu(manager);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   568
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   569
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   570
		Menu menu = menuMgr.createContextMenu(viewer.getControl());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   571
		viewer.getControl().setMenu(menu);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   572
		getSite().registerContextMenu(menuMgr, viewer);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   573
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   574
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   575
	private void contributeToActionBars() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   576
		IActionBars bars = getViewSite().getActionBars();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   577
		fillLocalPullDown(bars.getMenuManager());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   578
		fillLocalToolBar(bars.getToolBarManager());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   579
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   580
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   581
	private void fillLocalPullDown(IMenuManager manager) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   582
		// nothing for now
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   583
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   584
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   585
	private void fillContextMenu(IMenuManager manager) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   586
		manager.add(getAction(NEW_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   587
		ISelection selection = viewer.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   588
		if (selection.isEmpty())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   589
			return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   590
		TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   591
		Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   592
		if (value instanceof IConnectedService)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   593
			manager.add(getAction(ENABLE_SERVICE_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   594
		else {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   595
			manager.add(getAction(RENAME_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   596
			manager.add(getAction(EDIT_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   597
			manager.add(getAction(DELETE_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   598
			manager.add(getAction(HELP_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   599
		}
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   600
		if (value instanceof IConnection) {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   601
			manager.add(getAction(SET_DEFAULT_ACTION));
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   602
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   603
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   604
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   605
	private void fillLocalToolBar(IToolBarManager manager) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   606
		manager.add(getAction(REFRESH_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   607
		manager.add(getAction(NEW_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   608
		manager.add(getAction(EDIT_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   609
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   610
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   611
	private void makeActions() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   612
		actions = new ArrayList<Action>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   613
		connectionSelectedActions = new ArrayList<Action>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   614
		serviceSelectedActions = new ArrayList<Action>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   615
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   616
		Action action = new Action(Messages.getString("ConnectionsView.NewActionLabel"), CONNECTION_NEW_IMGDESC) { //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   617
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   618
			public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   619
				SettingsWizard wizard = new SettingsWizard();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   620
				wizard.open(getViewSite().getShell());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   621
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   622
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   623
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   624
		action.setId(NEW_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   625
		actions.add(action);
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   626
		action.setEnabled(!Registry.instance().getConnectionTypes().isEmpty());
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   627
		
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   628
		String editLabel = Messages.getString("ConnectionsView.EditActionLabel");
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   629
		action = new Action(editLabel, CONNECTION_EDIT_IMGDESC) { //$NON-NLS-1$
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   630
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   631
			public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   632
				ISelection selection = viewer.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   633
				if (selection.isEmpty())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   634
					return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   635
				TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   636
				Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   637
				if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   638
					SettingsWizard wizard = new SettingsWizard((IConnection) value);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   639
					wizard.open(getViewSite().getShell());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   640
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   641
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   642
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   643
		action.setId(EDIT_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   644
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   645
		connectionSelectedActions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   646
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   647
		action = new Action() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   648
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   649
			public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   650
				ISelection selection = viewer.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   651
				if (selection.isEmpty())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   652
					return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   653
				TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   654
				Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   655
				if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   656
					viewer.editElement(node, 0);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   657
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   658
			}
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   659
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   660
			@Override
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   661
			public boolean isEnabled() {
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   662
				return selectionCanBeEdited();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   663
			}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   664
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   665
		action.setId(RENAME_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   666
		action.setAccelerator(SWT.F2);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   667
		action.setText(Messages.getString("ConnectionsView.RenameMenuLabel") +  //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   668
				"\t" +  //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   669
				LegacyActionTools.convertAccelerator(action.getAccelerator()));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   670
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   671
		connectionSelectedActions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   672
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   673
		action = new EnableConnectedServiceAction();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   674
		action.setId(ENABLE_SERVICE_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   675
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   676
		serviceSelectedActions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   677
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   678
		action = new Action(Messages.getString("ConnectionsView.RefreshActionLabel"), CONNECTION_REFRESH_IMGDESC) { //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   679
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   680
			public void run() {
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   681
				IConnectionsManager connectionsManager = Registry.instance();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   682
				for (IConnection connection : connectionsManager.getConnections()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   683
					Collection<IConnectedService> connectedServices = connectionsManager.getConnectedServices(connection);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   684
					for (IConnectedService connectedService : connectedServices) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   685
						connectedService.setEnabled(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   686
						connectedService.testStatus();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   687
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   688
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   689
				((EnableConnectedServiceAction) getAction(ENABLE_SERVICE_ACTION)).updateLabel();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   690
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   691
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   692
		action.setAccelerator(SWT.F5);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   693
		action.setId(REFRESH_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   694
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   695
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   696
		action = new Action(Messages.getString("ConnectionsView.DeleteActionLabel"),  //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   697
				PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_DELETE)) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   698
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   699
			public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   700
				ISelection selection = viewer.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   701
				if (selection.isEmpty())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   702
					return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   703
				TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   704
				Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   705
				if (value instanceof IConnection) {
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   706
					Registry.instance().removeConnection((IConnection) value);
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   707
					Registry.instance().storeConnections();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   708
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   709
			}
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   710
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   711
			@Override
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   712
			public boolean isEnabled() {
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   713
				return selectionCanBeEdited();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   714
			}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   715
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   716
		action.setAccelerator(SWT.DEL);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   717
		action.setId(DELETE_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   718
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   719
		connectionSelectedActions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   720
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   721
		Image image = JFaceResources.getImage(org.eclipse.jface.dialogs.Dialog.DLG_IMG_HELP);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   722
		ImageDescriptor desc = ImageDescriptor.createFromImage(image);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   723
		action = new Action(Messages.getString("ConnectionsView.HelpActionLabel"), desc) { //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   724
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   725
			private String getHelpContextFromSelection() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   726
				ISelection selection = viewer.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   727
				if (!selection.isEmpty()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   728
					TreeNode treeNode = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   729
					Object value = treeNode.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   730
					if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   731
						return ((IConnection) value).getConnectionType().getHelpContext();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   732
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   733
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   734
				return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   735
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   736
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   737
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   738
			public boolean isEnabled() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   739
				return getHelpContextFromSelection() != null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   740
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   741
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   742
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   743
			public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   744
				PlatformUI.getWorkbench().getHelpSystem().displayHelp(getHelpContextFromSelection());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   745
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   746
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   747
		action.setId(HELP_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   748
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   749
		connectionSelectedActions.add(action);
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   750
		
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   751
		desc = ConnectionUIUtils.CONNECTION_IMGDESC;
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   752
		action = new Action(Messages.getString("ConnectionsView.SetDefaultActionLabel"), desc) { //$NON-NLS-1$
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   753
			
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   754
			private IConnection getConnectionFromSelection() {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   755
				ISelection selection = viewer.getSelection();
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   756
				if (!selection.isEmpty()) {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   757
					TreeNode treeNode = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   758
					Object value = treeNode.getValue();
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   759
					if (value instanceof IConnection) {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   760
						return ((IConnection) value);
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   761
					}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   762
				}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   763
				return null;
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   764
			}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   765
			
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   766
			@Override
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   767
			public boolean isEnabled() {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   768
				return !ObjectUtils.equals(Registry.instance().getDefaultConnection(), getConnectionFromSelection());
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   769
			}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   770
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   771
			@Override
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   772
			public void run() {
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   773
				Registry.instance().setDefaultConnection(getConnectionFromSelection());
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   774
			}
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   775
		};
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   776
		action.setId(SET_DEFAULT_ACTION);
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   777
		actions.add(action);
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   778
		connectionSelectedActions.add(action);		
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   779
		
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   780
		enableConnectionSelectedActions(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   781
		enableServiceSelectedActions(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   782
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   783
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   784
	private void enableConnectionSelectedActions(boolean enable) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   785
		for (Action action : connectionSelectedActions) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   786
			action.setEnabled(enable);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   787
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   788
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   789
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   790
	private void enableServiceSelectedActions(boolean enable) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   791
		for (Action action : serviceSelectedActions) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   792
			action.setEnabled(enable);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   793
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   794
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   795
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   796
	private Action getAction(String id) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   797
		for (Action action : actions) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   798
			if (action.getId().equals(id))
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   799
				return action;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   800
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   801
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   802
		return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   803
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   804
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   805
	private void hookAccelerators() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   806
		keyListener = new KeyAdapter() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   807
			public void keyPressed(KeyEvent e) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   808
				for (Action action : actions) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   809
					if (e.keyCode == action.getAccelerator()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   810
						action.run();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   811
						break;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   812
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   813
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   814
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   815
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   816
		viewer.getControl().addKeyListener(keyListener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   817
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   818
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   819
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   820
	 * Passing the focus request to the viewer's control.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   821
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   822
	public void setFocus() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   823
		viewer.getControl().setFocus();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   824
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   825
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   826
	private void removeServiceListeners() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   827
		for (IConnectedService connectedService : serviceToListenerMap.keySet()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   828
			IStatusChangedListener listener = serviceToListenerMap.get(connectedService);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   829
			connectedService.removeStatusChangedListener(listener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   830
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   831
		serviceToListenerMap.clear();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   832
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   833
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   834
	private void disableAllConnectedServices() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   835
		Collection<IConnection> connections = 
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   836
			Registry.instance().getConnections();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   837
		for (IConnection connection : connections) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   838
			Collection<IConnectedService> connectedServicesForConnection = 
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   839
				Registry.instance().getConnectedServices(connection);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   840
			for (IConnectedService connectedService : connectedServicesForConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   841
				connectedService.setEnabled(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   842
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   843
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   844
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   845
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   846
	@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   847
	public void dispose() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   848
		removeServiceListeners();
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   849
		Registry.instance().removeConnectionStoreChangedListener(connectionStoreChangedListener);
732
c6b80e0b9fe2 In Remote Connections view, wire up indication of default connection and menu item for switching it.
Ed Swartz <ed.swartz@nokia.com>
parents: 711
diff changeset
   850
		Registry.instance().removeConnectionListener(connectionListener);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   851
		disableAllConnectedServices();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   852
		isDisposed = true;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   853
		super.dispose();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   854
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   855
	
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   856
	private static IConnection findConnection(IConnectedService cs) {
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   857
		for (IConnection connection : Registry.instance().getConnections()) {
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   858
			for (IConnectedService connectedService : Registry.instance().getConnectedServices(connection)) {
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   859
				if (cs.equals(connectedService))
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   860
					return connection;
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   861
			}
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   862
		}
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   863
		return null;
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   864
	}
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   865
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   866
	private boolean isDynamicConnection(Object object) {
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   867
		return object instanceof IConnection2 && ((IConnection2) object).isDynamic();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   868
	}
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   869
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   870
	private boolean selectionCanBeEdited() {
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   871
		ISelection selection = viewer.getSelection();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   872
		if (selection.isEmpty())
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   873
			return false;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   874
		TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   875
		return !isDynamicConnection(node.getValue());
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   876
	}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   877
}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   878