connectivity/com.nokia.carbide.remoteConnections/src/com/nokia/carbide/remoteconnections/view/ConnectionsView.java
author dadubrow
Wed, 18 Aug 2010 13:49:37 -0500
changeset 1855 03d160c02b5f
parent 1846 02332f802224
child 1907 8eeb96baf835
permissions -rw-r--r--
add unchecked icon for toggle service testing action
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
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
    21
import java.text.MessageFormat;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    22
import java.util.ArrayList;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    23
import java.util.Collection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    24
import java.util.HashMap;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    25
import java.util.List;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    26
import java.util.Map;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    27
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    28
import org.eclipse.jface.action.Action;
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
    29
import org.eclipse.jface.action.IAction;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    30
import org.eclipse.jface.action.IMenuListener;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    31
import org.eclipse.jface.action.IMenuManager;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    32
import org.eclipse.jface.action.IToolBarManager;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    33
import org.eclipse.jface.action.LegacyActionTools;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    34
import org.eclipse.jface.action.MenuManager;
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
    35
import org.eclipse.jface.action.Separator;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    36
import org.eclipse.jface.resource.ImageDescriptor;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    37
import org.eclipse.jface.resource.JFaceResources;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    38
import org.eclipse.jface.viewers.CellEditor;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    39
import org.eclipse.jface.viewers.ColumnLabelProvider;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    40
import org.eclipse.jface.viewers.ColumnViewer;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    41
import org.eclipse.jface.viewers.ColumnViewerEditor;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    42
import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    43
import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    44
import org.eclipse.jface.viewers.DoubleClickEvent;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    45
import org.eclipse.jface.viewers.EditingSupport;
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
    46
import org.eclipse.jface.viewers.ICellEditorListener;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    47
import org.eclipse.jface.viewers.IDoubleClickListener;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    48
import org.eclipse.jface.viewers.ISelection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    49
import org.eclipse.jface.viewers.ISelectionChangedListener;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    50
import org.eclipse.jface.viewers.IStructuredSelection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    51
import org.eclipse.jface.viewers.SelectionChangedEvent;
757
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
    52
import org.eclipse.jface.viewers.StructuredSelection;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    53
import org.eclipse.jface.viewers.TextCellEditor;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    54
import org.eclipse.jface.viewers.TreeColumnViewerLabelProvider;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    55
import org.eclipse.jface.viewers.TreeNode;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    56
import org.eclipse.jface.viewers.TreeNodeContentProvider;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    57
import org.eclipse.jface.viewers.TreeViewer;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    58
import org.eclipse.jface.viewers.TreeViewerColumn;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    59
import org.eclipse.jface.viewers.TreeViewerEditor;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    60
import org.eclipse.jface.viewers.Viewer;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    61
import org.eclipse.jface.viewers.ViewerSorter;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    62
import org.eclipse.swt.SWT;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    63
import org.eclipse.swt.events.KeyAdapter;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    64
import org.eclipse.swt.events.KeyEvent;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    65
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
    66
import org.eclipse.swt.graphics.Font;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    67
import org.eclipse.swt.graphics.Image;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    68
import org.eclipse.swt.widgets.Composite;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    69
import org.eclipse.swt.widgets.Display;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    70
import org.eclipse.swt.widgets.Menu;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    71
import org.eclipse.swt.widgets.TreeColumn;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    72
import org.eclipse.swt.widgets.TreeItem;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    73
import org.eclipse.ui.IActionBars;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    74
import org.eclipse.ui.ISharedImages;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    75
import org.eclipse.ui.PlatformUI;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    76
import org.eclipse.ui.part.ViewPart;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    77
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    78
import com.nokia.carbide.remoteconnections.Messages;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    79
import com.nokia.carbide.remoteconnections.RemoteConnectionsActivator;
1544
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
    80
import com.nokia.carbide.remoteconnections.RemoteConnectionsActivator.IDiscoveryAgentsLoadedListener;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    81
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService;
1544
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
    82
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatus;
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
    83
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatus.EStatus;
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
    84
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatusChangedListener;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    85
import com.nokia.carbide.remoteconnections.interfaces.IConnection;
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
    86
import com.nokia.carbide.remoteconnections.interfaces.IConnectionType;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    87
import com.nokia.carbide.remoteconnections.interfaces.IConnectionsManager;
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
    88
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
    89
import com.nokia.carbide.remoteconnections.interfaces.IConnectionsManager.IConnectionsManagerListener;
1544
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
    90
import com.nokia.carbide.remoteconnections.internal.ToggleDiscoveryAgentAction;
700
9441b6037cb6 rename internal api package to internal.api
dadubrow
parents: 699
diff changeset
    91
import com.nokia.carbide.remoteconnections.internal.api.IConnection2;
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
    92
import com.nokia.carbide.remoteconnections.internal.api.IToggleServicesTestingListener;
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
    93
import com.nokia.carbide.remoteconnections.internal.api.IConnection2.IConnectionStatus;
1544
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
    94
import com.nokia.carbide.remoteconnections.internal.api.IConnection2.IConnectionStatus.EConnectionStatus;
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
    95
import com.nokia.carbide.remoteconnections.internal.api.IConnection2.IConnectionStatusChangedListener;
1544
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
    96
import com.nokia.carbide.remoteconnections.internal.api.IDeviceDiscoveryAgent;
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
    97
import com.nokia.carbide.remoteconnections.internal.registry.Registry;
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
    98
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
    99
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
   100
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
   101
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
   102
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   103
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   104
/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   105
 * The view part for Remote connections
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   106
 */
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   107
@SuppressWarnings("deprecation")
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   108
public class ConnectionsView extends ViewPart {
703
3a27d56389d5 Initial device status widget
Ed Swartz <ed.swartz@nokia.com>
parents: 687
diff changeset
   109
	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
   110
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   111
	private TreeViewer viewer;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   112
	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
   113
	private IConnectionListener connectionListener;
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   114
	private IToggleServicesTestingListener toggleServicesTestingListener;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   115
	private Map<IConnectedService, IStatusChangedListener> serviceToListenerMap;
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   116
	private Map<IConnection2, IConnectionStatusChangedListener> connectionToListenerMap;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   117
	private List<Action> actions;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   118
	private List<Action> connectionSelectedActions;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   119
	private List<Action> serviceSelectedActions;
1544
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   120
	private List<Action> discoveryAgentActions;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   121
	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
   122
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   123
	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
   124
	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
   125
	private static final ImageDescriptor SERVICE_TEST_IMGDESC = RemoteConnectionsActivator.getImageDescriptor("icons/serviceTest.png"); //$NON-NLS-1$
1855
03d160c02b5f add unchecked icon for toggle service testing action
dadubrow
parents: 1846
diff changeset
   126
	private static final ImageDescriptor SERVICE_TEST_DISABLED_IMGDESC = RemoteConnectionsActivator.getImageDescriptor("icons/serviceTest_No.png"); //$NON-NLS-1$
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   127
	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
   128
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   129
	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
   130
	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
   131
	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
   132
	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
   133
	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
   134
	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
   135
	private static final String HELP_ACTION = "ConnectionsView.help"; //$NON-NLS-1$
761
19123c07e2ab Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 757
diff changeset
   136
	private static final String SET_CURRENT_ACTION = "ConnectionsView.makeCurrent"; //$NON-NLS-1$
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   137
	private static final String TOGGLE_SERVICES_ACTION = "ConnectionsView.toggleServices"; //$NON-NLS-1$
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   138
	private KeyAdapter keyListener;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   139
	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
   140
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
   141
	// 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
   142
	private Font boldViewerFont;
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   143
	private TextCellEditor nameEditor;
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   144
	private boolean refreshPending;
1544
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   145
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   146
	private TreeNode[] loadConnections() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   147
		if (serviceToListenerMap == null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   148
			serviceToListenerMap = new HashMap<IConnectedService, IStatusChangedListener>();
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   149
		if (connectionToListenerMap == null)
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   150
			connectionToListenerMap = new HashMap<IConnection2, IConnectionStatusChangedListener>();
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   151
		removeStatusListeners();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   152
		List<TreeNode> connectionNodes = new ArrayList<TreeNode>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   153
		Collection<IConnection> connections = 
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   154
			Registry.instance().getConnections();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   155
		for (IConnection connection : connections) {
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   156
			if (connection instanceof IConnection2) {
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   157
				IConnectionStatusChangedListener statusChangedListener = 
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   158
					new IConnectionStatusChangedListener() {
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   159
						public void statusChanged(IConnectionStatus status) {
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   160
							refreshViewer();
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   161
						}
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   162
					};
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   163
				IConnection2 connection2 = (IConnection2) connection;
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   164
				connection2.addStatusChangedListener(statusChangedListener);
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   165
				connectionToListenerMap.put(connection2, statusChangedListener);
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   166
			}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   167
			// create a node for the connection
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   168
			TreeNode connectionNode = new TreeNode(connection);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   169
			// create subnodes for the connected services
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   170
			List<TreeNode> serviceNodes = new ArrayList<TreeNode>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   171
			Collection<IConnectedService> connectedServicesForConnection = 
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   172
				Registry.instance().getConnectedServices(connection);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   173
			for (IConnectedService connectedService : connectedServicesForConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   174
				final TreeNode treeNode = new TreeNode(connectedService);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   175
				IStatusChangedListener statusChangedListener = new IStatusChangedListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   176
					public void statusChanged(final IStatus status) {
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   177
						refreshViewer();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   178
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   179
				};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   180
				connectedService.addStatusChangedListener(statusChangedListener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   181
				serviceToListenerMap.put(connectedService, statusChangedListener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   182
				serviceNodes.add(treeNode);
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
			for (TreeNode serviceNode : serviceNodes) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   185
				serviceNode.setParent(connectionNode);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   186
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   187
			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
   188
			connectionNodes.add(connectionNode);
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
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   191
		return (TreeNode[]) connectionNodes.toArray(new TreeNode[connectionNodes.size()]);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   192
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   193
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   194
	private void refreshViewer() {
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   195
		Display.getDefault().asyncExec(new Runnable() {
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   196
			public void run() {
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   197
				if (nameEditor != null && nameEditor.isActivated()) {
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   198
					refreshPending = true;
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   199
					return;
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   200
				}
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   201
				
1364
7b7e8856f6a2 add url for discovery
dadubrow
parents: 1266
diff changeset
   202
				if (!isDisposed && !viewer.getControl().isDisposed()) {
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   203
					viewer.refresh(true);
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   204
					packColumns();
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   205
				}
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   206
				refreshPending = false;
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   207
			}
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   208
		});
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   209
	}
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   210
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   211
	private class NameEditingSupport extends EditingSupport {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   212
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   213
		private NameEditingSupport(ColumnViewer viewer) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   214
			super(viewer);
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   215
			nameEditor = new TextCellEditor((Composite) viewer.getControl(), SWT.BORDER);
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   216
			nameEditor.addListener(new ICellEditorListener() {
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   217
				public void editorValueChanged(boolean oldValidState, boolean newValidState) {
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   218
				}
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   219
				
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   220
				public void cancelEditor() {
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   221
					if (refreshPending)
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   222
						refreshViewer();
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   223
				}
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   224
				
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   225
				public void applyEditorValue() {
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   226
					if (refreshPending)
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   227
						refreshViewer();
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   228
				}
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   229
			});
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   230
		}
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   231
		
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   232
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   233
		protected boolean canEdit(Object element) {
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   234
			Object object = ((TreeNode) element).getValue();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   235
			if (object instanceof IConnection && !isDynamicConnection(object))
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   236
				return true;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   237
			return false;
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
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   240
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   241
		protected CellEditor getCellEditor(Object element) {
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   242
			return nameEditor;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   243
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   244
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   245
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   246
		protected Object getValue(Object element) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   247
			IConnection connection = (IConnection) ((TreeNode) element).getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   248
			return connection.getDisplayName();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   249
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   250
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   251
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   252
		protected void setValue(Object element, Object value) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   253
			IConnection connection = (IConnection) ((TreeNode) element).getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   254
			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
   255
			Registry.instance().updateDisplays();
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   256
			Registry.instance().storeConnections();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   257
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   258
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   259
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   260
	private class NameLabelProvider extends ColumnLabelProvider {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   261
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   262
		public String getText(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   263
			return getNodeDisplayName(obj);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   264
		}
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
   265
		
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
   266
		/* (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
   267
		 * @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
   268
		 */
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
   269
		@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
   270
		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
   271
			if (element instanceof TreeNode) {
761
19123c07e2ab Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 757
diff changeset
   272
				if (((TreeNode)element).getValue().equals(Registry.instance().getCurrentConnection())) {
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
   273
					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
   274
				}
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
   275
			}
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
   276
			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
   277
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   278
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   279
		public Image getImage(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   280
			TreeNode node = (TreeNode) obj;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   281
			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
   282
			if (value instanceof IConnection) {
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   283
				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
   284
			}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   285
			else if (value instanceof IConnectedService) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   286
				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
   287
				IConnection connection = findConnection((IConnectedService) value);
711
d97b8b6bce37 add logic for disconnect and reconnect
dadubrow
parents: 710
diff changeset
   288
				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
   289
					status = EStatus.IN_USE;
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   290
				return ConnectionUIUtils.getConnectedServiceStatusImage(status);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   291
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   292
			return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   293
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   294
	}
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
	private class StatusLabelProvider extends ColumnLabelProvider {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   297
		public String getText(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   298
			TreeNode node = (TreeNode) obj;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   299
			Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   300
			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
   301
				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
   302
				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
   303
				if (connection != null)
711
d97b8b6bce37 add logic for disconnect and reconnect
dadubrow
parents: 710
diff changeset
   304
					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
   305
				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
   306
					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
   307
					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
   308
				}
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
   309
			}
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
   310
			else if (value instanceof IConnection) {
1259
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   311
				IConnectionStatus connectionStatus = getConnectionStatus((IConnection) value);
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   312
				if (connectionStatus != null) {
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   313
					return connectionStatus.getShortDescription();
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   314
				}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   315
				else {	
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   316
					IStatus status = ConnectionUIUtils.getFirstInUseServiceStatus((IConnection) value);
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   317
					if (status != null)
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   318
						return status.getShortDescription();
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   319
				}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   320
			}
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
   321
				
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
   322
			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
   323
		}
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
   324
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   325
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   326
		public Color getForeground(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   327
			TreeNode node = (TreeNode) obj;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   328
			Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   329
			if (value instanceof IConnectedService) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   330
				EStatus status = ((IConnectedService) value).getStatus().getEStatus();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   331
				switch (status) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   332
				case DOWN:
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   333
					return ConnectionUIUtils.COLOR_RED;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   334
				case UP:
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   335
					return ConnectionUIUtils.COLOR_GREEN;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   336
				case UNKNOWN:
706
bba29393db80 Checkpoint commit
Ed Swartz <ed.swartz@nokia.com>
parents: 704
diff changeset
   337
					return ConnectionUIUtils.COLOR_GREY;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   338
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   339
			}
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
   340
			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
   341
				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
   342
			
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   343
			return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   344
		}
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
   345
		
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
		/* (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
   347
		 * @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
   348
		 */
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
		@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
   350
		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
   351
			// 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
   352
			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
   353
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   354
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   355
	
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
   356
	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
   357
		
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
   358
		@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
   359
		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
   360
			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
   361
			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
   362
			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
   363
				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
   364
				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
   365
				if (!status.getEStatus().equals(EStatus.IN_USE) ||
711
d97b8b6bce37 add logic for disconnect and reconnect
dadubrow
parents: 710
diff changeset
   366
						!(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
   367
					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
   368
					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
   369
						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
   370
					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
   371
				}
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
   372
			}
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   373
			else if (value instanceof IConnection) {
1259
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   374
				IConnectionStatus status = getConnectionStatus((IConnection) value);
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   375
				if (status != null) {
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   376
					return status.getLongDescription();
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   377
				}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   378
				else if (ConnectionUIUtils.isSomeServiceInUse((IConnection) value)) {
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   379
					return Messages.getString("ConnectionsView.InUseDesc"); //$NON-NLS-1$
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   380
				}
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   381
			}
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
   382
			
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
   383
			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
   384
		}
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
   385
		
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
   386
		/* (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
   387
		 * @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
   388
		 */
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
   389
		@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
   390
		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
   391
			// 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
   392
			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
   393
		}
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
   394
	}
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
   395
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   396
	private class TypeLabelProvider extends ColumnLabelProvider {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   397
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   398
		public String getText(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   399
			TreeNode node = (TreeNode) obj;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   400
			Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   401
			if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   402
				return ((IConnection) value).getConnectionType().getDisplayName();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   403
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   404
			return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   405
		}
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
   406
		
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
   407
		/* (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
   408
		 * @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
   409
		 */
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
   410
		@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
   411
		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
   412
			// 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
   413
			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
   414
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   415
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   416
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   417
	private class EnableConnectedServiceAction extends Action {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   418
		private EnableConnectedServiceAction() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   419
			super("", SERVICE_TEST_IMGDESC); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   420
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   421
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   422
		private IConnectedService getSelectedConnectedService() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   423
			ISelection selection = viewer.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   424
			if (selection.isEmpty())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   425
				return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   426
			TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   427
			Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   428
			if (value instanceof IConnectedService) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   429
				return (IConnectedService) value;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   430
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   431
			return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   432
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   433
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   434
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   435
		public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   436
			IConnectedService connectedService = getSelectedConnectedService();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   437
			if (connectedService != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   438
				connectedService.setEnabled(!connectedService.isEnabled());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   439
				updateLabel();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   440
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   441
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   442
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   443
		public void updateLabel() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   444
			IConnectedService connectedService = getSelectedConnectedService();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   445
			if (connectedService == null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   446
				return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   447
			String label = connectedService.isEnabled() ?
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   448
					Messages.getString("ConnectionsView.DisableTestActionLabel") : //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   449
					Messages.getString("ConnectionsView.EnableTestActionLabel"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   450
			setText(label);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   451
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   452
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   453
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   454
		public void setEnabled(boolean enabled) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   455
			super.setEnabled(enabled);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   456
			updateLabel();
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
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   459
		@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   460
		public boolean isEnabled() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   461
			IConnectedService connectedService = getSelectedConnectedService();
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   462
			return connectedService != null && connectedService.getService().isTestable() &&
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   463
				RemoteConnectionsActivator.getDefault().getShouldTestServices();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   464
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   465
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   466
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   467
	/* (non-Javadoc)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   468
	 * @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
   469
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   470
	public void createPartControl(Composite parent) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   471
		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
   472
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   473
		TreeViewerColumn nameColumn = new TreeViewerColumn(viewer, SWT.LEFT);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   474
		nameColumn.setLabelProvider(new TreeColumnViewerLabelProvider(new NameLabelProvider()));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   475
		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
   476
		nameColumn.setEditingSupport(new NameEditingSupport(nameColumn.getViewer()));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   477
		ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(nameColumn.getViewer()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   478
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   479
			protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   480
				return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
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
		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
   484
		
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
   485
		boldViewerFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);
0
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
		TreeViewerColumn typeColumn = new TreeViewerColumn(viewer, SWT.LEFT);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   488
		typeColumn.setLabelProvider(new TypeLabelProvider());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   489
		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
   490
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   491
		TreeViewerColumn statusColumn = new TreeViewerColumn(viewer, SWT.LEFT);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   492
		statusColumn.setLabelProvider(new StatusLabelProvider());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   493
		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
   494
		
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
   495
		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
   496
		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
   497
		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
   498
		
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   499
		viewer.setContentProvider(new TreeNodeContentProvider());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   500
		viewer.setInput(loadConnections());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   501
		viewer.expandAll();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   502
		viewer.getTree().setHeaderVisible(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   503
		viewer.getControl().setData(UID, "viewer"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   504
		viewer.setSorter(new ViewerSorter() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   505
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   506
			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
   507
				return getNodeDisplayName(e1).compareToIgnoreCase(getNodeDisplayName(e2));
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
		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   511
			public void selectionChanged(SelectionChangedEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   512
				enableConnectionSelectedActions(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   513
				enableServiceSelectedActions(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   514
				ISelection selection = event.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   515
				if (!selection.isEmpty()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   516
					IStructuredSelection structuredSelection = (IStructuredSelection) selection;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   517
					TreeNode treeNode = (TreeNode) structuredSelection.getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   518
					Object value = treeNode.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   519
					if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   520
						enableConnectionSelectedActions(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   521
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   522
					else if (value instanceof IConnectedService) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   523
						enableServiceSelectedActions(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   524
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   525
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   526
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   527
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   528
		viewer.addDoubleClickListener(new IDoubleClickListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   529
			public void doubleClick(DoubleClickEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   530
				ISelection selection = event.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   531
				if (!selection.isEmpty()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   532
					IStructuredSelection structuredSelection = (IStructuredSelection) selection;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   533
					TreeNode treeNode = (TreeNode) structuredSelection.getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   534
					Object value = treeNode.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   535
					if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   536
						SettingsWizard wizard = new SettingsWizard((IConnection) value);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   537
						wizard.open(getViewSite().getShell());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   538
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   539
					else if (value instanceof IConnectedService) {
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   540
						if (RemoteConnectionsActivator.getDefault().getShouldTestServices()) {
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   541
							IConnectedService connectedService = (IConnectedService) value;
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   542
							connectedService.setEnabled(true);
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   543
							connectedService.testStatus();
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   544
							((EnableConnectedServiceAction) getAction(ENABLE_SERVICE_ACTION)).updateLabel();
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   545
						}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   546
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   547
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   548
			}
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
		packColumns();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   552
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   553
		makeActions();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   554
		hookContextMenu();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   555
		contributeToActionBars();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   556
		hookAccelerators();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   557
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   558
		connectionStoreChangedListener = new IConnectionsManagerListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   559
			public void connectionStoreChanged() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   560
				Display.getDefault().asyncExec(new Runnable() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   561
					public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   562
						viewer.setInput(loadConnections());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   563
						viewer.expandAll();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   564
						packColumns();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   565
						if (viewer.getSelection().isEmpty() && viewer.getTree().getItemCount() > 0) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   566
							TreeItem item = viewer.getTree().getItem(0);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   567
							if (item != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   568
								viewer.getTree().select(item);
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
						}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   571
						viewer.setSelection(viewer.getSelection()); // force selection changed
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   572
					}
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
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   576
			public void displayChanged() {
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   577
				refreshViewer();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   578
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   579
		};
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   580
		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
   581
		
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
   582
		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
   583
			
761
19123c07e2ab Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 757
diff changeset
   584
			public void currentConnectionSet(IConnection connection) {
1583
5562fcf06df5 Bug 11251 - hold refresh until after name editing
dadubrow
parents: 1544
diff changeset
   585
				refreshViewer();
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
   586
			}
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
   587
			
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
   588
			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
   589
				// 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
   590
			}
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
   591
			
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
   592
			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
   593
				// 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
   594
			}
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
   595
		};
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
   596
		Registry.instance().addConnectionListener(connectionListener);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   597
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   598
		RemoteConnectionsActivator.setHelp(parent, ".connections_view"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   599
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   600
1259
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   601
	// returns non-null status when status is not EConnectionStatus.NONE
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   602
	private IConnectionStatus getConnectionStatus(IConnection connection) {
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   603
		if (connection instanceof IConnection2) {
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   604
			IConnectionStatus status = ((IConnection2) connection).getStatus();
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   605
			if (status != null && status.getEConnectionStatus() != EConnectionStatus.NONE)
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   606
				return status;
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   607
		}
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   608
		return null;
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   609
	}
2a211a55b277 support for connection status for static connections
dadubrow
parents: 761
diff changeset
   610
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   611
	private void packColumns() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   612
		TreeColumn[] columns = viewer.getTree().getColumns();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   613
		for (TreeColumn column : columns) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   614
			column.pack();
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
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   617
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   618
	private String getNodeDisplayName(Object obj) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   619
		Object value = ((TreeNode) obj).getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   620
		if (value instanceof IConnection)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   621
			return ((IConnection) value).getDisplayName();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   622
		else if (value instanceof IConnectedService)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   623
			return ((IConnectedService) value).getService().getDisplayName();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   624
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   625
		return ""; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   626
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   627
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   628
	private void hookContextMenu() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   629
		MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   630
		menuMgr.setRemoveAllWhenShown(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   631
		menuMgr.addMenuListener(new IMenuListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   632
			public void menuAboutToShow(IMenuManager manager) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   633
				ConnectionsView.this.fillContextMenu(manager);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   634
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   635
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   636
		Menu menu = menuMgr.createContextMenu(viewer.getControl());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   637
		viewer.getControl().setMenu(menu);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   638
		getSite().registerContextMenu(menuMgr, viewer);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   639
	}
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
	private void contributeToActionBars() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   642
		IActionBars bars = getViewSite().getActionBars();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   643
		fillLocalPullDown(bars.getMenuManager());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   644
		fillLocalToolBar(bars.getToolBarManager());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   645
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   646
1544
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   647
	private void fillLocalPullDown(final IMenuManager manager) {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   648
		if (discoveryAgentActions.isEmpty()) {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   649
			IDiscoveryAgentsLoadedListener listener = new IDiscoveryAgentsLoadedListener() {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   650
				public void agentsAreLoaded() {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   651
					makeToggleDiscoveryAgentActions();
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   652
					addDiscoveryAgentActions(manager);
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   653
					Display.getDefault().asyncExec(new Runnable() {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   654
						public void run() {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   655
							manager.update(true);
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   656
						}
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   657
					});
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   658
				}
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   659
			};
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   660
			RemoteConnectionsActivator.getDefault().addDiscoveryAgentsLoadedListener(listener);
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   661
		}
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   662
		else {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   663
			addDiscoveryAgentActions(manager);
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   664
		}
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   665
	}
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   666
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   667
	private void addDiscoveryAgentActions(IMenuManager manager) {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   668
		for (Action action : discoveryAgentActions) {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   669
			manager.add(action);
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   670
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   671
	}
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
	private void fillContextMenu(IMenuManager manager) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   674
		manager.add(getAction(NEW_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   675
		ISelection selection = viewer.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   676
		if (selection.isEmpty())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   677
			return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   678
		TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   679
		Object value = node.getValue();
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   680
		if (value instanceof IConnectedService) {
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   681
			manager.add(new Separator());
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   682
			manager.add(getAction(ENABLE_SERVICE_ACTION));
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   683
		}
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   684
		else if (value instanceof IConnection) {
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   685
			manager.add(new Separator());
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   686
			manager.add(getAction(RENAME_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   687
			manager.add(getAction(EDIT_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   688
			manager.add(getAction(DELETE_ACTION));
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   689
			IAction helpAction = getAction(HELP_ACTION);
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   690
			if (helpAction.isEnabled()) {
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   691
				helpAction.setText(helpAction.getText());
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   692
				manager.add(helpAction);
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   693
			}
761
19123c07e2ab Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 757
diff changeset
   694
			manager.add(getAction(SET_CURRENT_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
   695
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   696
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   697
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   698
	private void fillLocalToolBar(IToolBarManager manager) {
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   699
		manager.add(getAction(TOGGLE_SERVICES_ACTION));
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   700
		manager.add(getAction(REFRESH_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   701
		manager.add(getAction(NEW_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   702
		manager.add(getAction(EDIT_ACTION));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   703
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   704
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   705
	private void makeActions() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   706
		actions = new ArrayList<Action>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   707
		connectionSelectedActions = new ArrayList<Action>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   708
		serviceSelectedActions = new ArrayList<Action>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   709
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   710
		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
   711
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   712
			public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   713
				SettingsWizard wizard = new SettingsWizard();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   714
				wizard.open(getViewSite().getShell());
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
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   717
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   718
		action.setId(NEW_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   719
		actions.add(action);
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   720
		action.setEnabled(!Registry.instance().getConnectionTypes().isEmpty());
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   721
		
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   722
		String editLabel = Messages.getString("ConnectionsView.EditActionLabel"); //$NON-NLS-1$
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   723
		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
   724
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   725
			public void run() {
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
					return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   729
				TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   730
				Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   731
				if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   732
					SettingsWizard wizard = new SettingsWizard((IConnection) value);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   733
					wizard.open(getViewSite().getShell());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   734
				}
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
		action.setId(EDIT_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   738
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   739
		connectionSelectedActions.add(action);
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
		action = new Action() {
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
				ISelection selection = viewer.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   745
				if (selection.isEmpty())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   746
					return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   747
				TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   748
				Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   749
				if (value instanceof IConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   750
					viewer.editElement(node, 0);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   751
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   752
			}
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   753
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   754
			@Override
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   755
			public boolean isEnabled() {
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   756
				return selectionCanBeEdited();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   757
			}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   758
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   759
		action.setId(RENAME_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   760
		action.setAccelerator(SWT.F2);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   761
		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
   762
				"\t" +  //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   763
				LegacyActionTools.convertAccelerator(action.getAccelerator()));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   764
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   765
		connectionSelectedActions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   766
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   767
		action = new EnableConnectedServiceAction();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   768
		action.setId(ENABLE_SERVICE_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   769
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   770
		serviceSelectedActions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   771
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   772
		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
   773
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   774
			public void run() {
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   775
				IConnectionsManager connectionsManager = Registry.instance();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   776
				for (IConnection connection : connectionsManager.getConnections()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   777
					Collection<IConnectedService> connectedServices = connectionsManager.getConnectedServices(connection);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   778
					for (IConnectedService connectedService : connectedServices) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   779
						connectedService.setEnabled(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   780
						connectedService.testStatus();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   781
					}
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
				((EnableConnectedServiceAction) getAction(ENABLE_SERVICE_ACTION)).updateLabel();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   784
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   785
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   786
		action.setAccelerator(SWT.F5);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   787
		action.setId(REFRESH_ACTION);
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   788
		action.setEnabled(RemoteConnectionsActivator.getDefault().getShouldTestServices());
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   789
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   790
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   791
		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
   792
				PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_DELETE)) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   793
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   794
			public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   795
				ISelection selection = viewer.getSelection();
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   796
				if (selection.isEmpty() || !canBeEdited(selection))
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   797
					return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   798
				TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   799
				Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   800
				if (value instanceof IConnection) {
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   801
					Registry.instance().removeConnection((IConnection) value);
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   802
					Registry.instance().storeConnections();
0
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
			}
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   805
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   806
			@Override
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   807
			public boolean isEnabled() {
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   808
				return selectionCanBeEdited();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   809
			}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   810
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   811
		action.setAccelerator(SWT.DEL);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   812
		action.setId(DELETE_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   813
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   814
		connectionSelectedActions.add(action);
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
		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
   817
		ImageDescriptor desc = ImageDescriptor.createFromImage(image);
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   818
		action = new Action(Messages.getString("ConnectionsView.NoHelpActionLabel"), desc) { //$NON-NLS-1$
0
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
			private String getHelpContextFromSelection() {
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   821
				IConnection connection = getSelectedConnection();
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   822
				if (connection != null) {
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   823
					return connection.getConnectionType().getHelpContext();
0
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
				return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   826
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   827
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   828
			@Override
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   829
			public String getText() {
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   830
				if (isEnabled()) {
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   831
					IConnection connection = getSelectedConnection();
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   832
					IConnectionType connectionType = connection.getConnectionType();
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   833
					String displayName = connectionType.getDisplayName();
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   834
					String pattern = Messages.getString("ConnectionsView.HelpActionLabel"); //$NON-NLS-1$
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   835
					return MessageFormat.format(pattern, displayName);
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   836
				}
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   837
				return super.getText();
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   838
			}
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   839
			
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   840
			@Override
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   841
			public boolean isEnabled() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   842
				return getHelpContextFromSelection() != null;
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
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   846
			public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   847
				PlatformUI.getWorkbench().getHelpSystem().displayHelp(getHelpContextFromSelection());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   848
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   849
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   850
		action.setId(HELP_ACTION);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   851
		actions.add(action);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   852
		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
   853
		
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
   854
		desc = ConnectionUIUtils.CONNECTION_IMGDESC;
761
19123c07e2ab Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 757
diff changeset
   855
		action = new Action(Messages.getString("ConnectionsView.SetCurrentActionLabel"), desc) { //$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
   856
			
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
   857
			@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
   858
			public boolean isEnabled() {
761
19123c07e2ab Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 757
diff changeset
   859
				return !ObjectUtils.equals(Registry.instance().getCurrentConnection(), getSelectedConnection());
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
   860
			}
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
   861
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
   862
			@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
   863
			public void run() {
761
19123c07e2ab Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 757
diff changeset
   864
				Registry.instance().setCurrentConnection(getSelectedConnection());
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   865
				setEnabled(false);
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
   866
			}
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
   867
		};
761
19123c07e2ab Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 757
diff changeset
   868
		action.setId(SET_CURRENT_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
   869
		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
   870
		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
   871
		
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   872
		action = new Action(Messages.getString("ConnectionsView.ToggleServicesLabel"), IAction.AS_CHECK_BOX) { //$NON-NLS-1$
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   873
			public void setChecked(boolean checked) {
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   874
				if (isChecked() != checked) {
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   875
					super.setChecked(checked);
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   876
					RemoteConnectionsActivator.getDefault().setShouldTestServices(checked);
1855
03d160c02b5f add unchecked icon for toggle service testing action
dadubrow
parents: 1846
diff changeset
   877
					setImageDescriptor(checked ? SERVICE_TEST_IMGDESC : SERVICE_TEST_DISABLED_IMGDESC);
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   878
				}
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   879
			};
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   880
		};
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   881
		action.setId(TOGGLE_SERVICES_ACTION);
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   882
		action.setChecked(RemoteConnectionsActivator.getDefault().getShouldTestServices());
1855
03d160c02b5f add unchecked icon for toggle service testing action
dadubrow
parents: 1846
diff changeset
   883
		action.setImageDescriptor(action.isChecked() ? SERVICE_TEST_IMGDESC : SERVICE_TEST_DISABLED_IMGDESC);
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   884
		actions.add(action);
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   885
		
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   886
		enableConnectionSelectedActions(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   887
		enableServiceSelectedActions(false);
1544
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   888
		
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   889
		makeToggleDiscoveryAgentActions();
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   890
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   891
		toggleServicesTestingListener = new IToggleServicesTestingListener() {
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   892
			public void servicesTestingToggled(boolean enabled) {
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   893
				getAction(TOGGLE_SERVICES_ACTION).setChecked(enabled);
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   894
				getAction(REFRESH_ACTION).setEnabled(enabled);
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   895
			}
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   896
		};
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   897
		RemoteConnectionsActivator.getDefault().addToggleServicesTestingListener(toggleServicesTestingListener);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   898
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   899
	
1544
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   900
	private void makeToggleDiscoveryAgentActions() {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   901
		discoveryAgentActions = new ArrayList<Action>();
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   902
		Collection<IDeviceDiscoveryAgent> discoveryAgents = RemoteConnectionsActivator.getDefault().getDiscoveryAgents();
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   903
		for (IDeviceDiscoveryAgent agent : discoveryAgents) {
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   904
			discoveryAgentActions.add(new ToggleDiscoveryAgentAction(agent));
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   905
		}
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   906
		
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   907
	}
93a010393cd9 Bug 11222
dadubrow
parents: 1364
diff changeset
   908
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   909
	private void enableConnectionSelectedActions(boolean enable) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   910
		for (Action action : connectionSelectedActions) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   911
			action.setEnabled(enable);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   912
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   913
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   914
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   915
	private void enableServiceSelectedActions(boolean enable) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   916
		for (Action action : serviceSelectedActions) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   917
			action.setEnabled(enable);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   918
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   919
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   920
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   921
	private Action getAction(String id) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   922
		for (Action action : actions) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   923
			if (action.getId().equals(id))
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   924
				return action;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   925
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   926
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   927
		return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   928
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   929
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   930
	private void hookAccelerators() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   931
		keyListener = new KeyAdapter() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   932
			public void keyPressed(KeyEvent e) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   933
				for (Action action : actions) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   934
					if (e.keyCode == action.getAccelerator()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   935
						action.run();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   936
						break;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   937
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   938
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   939
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   940
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   941
		viewer.getControl().addKeyListener(keyListener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   942
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   943
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   944
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   945
	 * 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
   946
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   947
	public void setFocus() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   948
		viewer.getControl().setFocus();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   949
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   950
	
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   951
	private void removeStatusListeners() {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   952
		for (IConnectedService connectedService : serviceToListenerMap.keySet()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   953
			IStatusChangedListener listener = serviceToListenerMap.get(connectedService);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   954
			connectedService.removeStatusChangedListener(listener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   955
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   956
		serviceToListenerMap.clear();
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   957
		for (IConnection2 connection : connectionToListenerMap.keySet()) {
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   958
			IConnectionStatusChangedListener listener = connectionToListenerMap.get(connection);
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   959
			connection.removeStatusChangedListener(listener);
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   960
		}
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   961
		connectionToListenerMap.clear();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   962
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   963
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   964
	@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   965
	public void dispose() {
1266
15644163b1a2 David's commit: the connections view was not listening to the changes in connection status, so unless a service changed status, the change in connection status didn?t get updated
Ed Swartz <ed.swartz@nokia.com>
parents: 1259
diff changeset
   966
		removeStatusListeners();
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   967
		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
   968
		Registry.instance().removeConnectionListener(connectionListener);
1846
02332f802224 Bug 11858 - add toggle action services testing enablement
dadubrow
parents: 1583
diff changeset
   969
		RemoteConnectionsActivator.getDefault().removeToggleServicesTestingListener(toggleServicesTestingListener);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   970
		isDisposed = true;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   971
		super.dispose();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   972
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   973
	
381
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   974
	private static IConnection findConnection(IConnectedService cs) {
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   975
		for (IConnection connection : Registry.instance().getConnections()) {
593d05f9d5ca Changes to remote connections
dadubrow
parents: 381
diff changeset
   976
			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
   977
				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
   978
					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
   979
			}
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   980
		}
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   981
		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
   982
	}
9a15cc2691b5 don't rely on all services reporting in-use together for UI to show connection in use
dadubrow
parents: 165
diff changeset
   983
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   984
	private static boolean isDynamicConnection(Object object) {
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   985
		return object instanceof IConnection2 && ((IConnection2) object).isDynamic();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   986
	}
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   987
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   988
	private boolean selectionCanBeEdited() {
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   989
		ISelection selection = viewer.getSelection();
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   990
		return canBeEdited(selection);
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   991
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   992
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents: 737
diff changeset
   993
	private static boolean canBeEdited(ISelection selection) {
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   994
		if (selection.isEmpty())
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   995
			return false;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   996
		TreeNode node = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   997
		return !isDynamicConnection(node.getValue());
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   998
	}
737
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
   999
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1000
	private IConnection getSelectedConnection() {
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1001
		ISelection selection = viewer.getSelection();
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1002
		if (!selection.isEmpty()) {
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1003
			TreeNode treeNode = (TreeNode) ((IStructuredSelection) selection).getFirstElement();
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1004
			Object value = treeNode.getValue();
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1005
			if (value instanceof IConnection) {
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1006
				return (IConnection) value;
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1007
			}
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1008
		}
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1009
		return null;
952b6f67894a Context menu tweaks
dadubrow
parents: 734
diff changeset
  1010
	}
757
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1011
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1012
	public void setSelectedConnection(IConnection connection) {
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1013
		if (viewer != null && !viewer.getControl().isDisposed()) {
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1014
			if (connection != null) {
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1015
				TreeNode node = new TreeNode(connection);
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1016
				viewer.setSelection(new StructuredSelection(node));
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1017
			} else {
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1018
				viewer.setSelection(null);
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1019
			}
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1020
		}
dfe9c76b4eb2 Select the default connection when opening the Remote Connections view from the selector widget.
Ed Swartz <ed.swartz@nokia.com>
parents: 749
diff changeset
  1021
	}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
  1022
}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
  1023