debuggercdi/com.nokia.carbide.trk.support/src/com/nokia/carbide/trk/support/status/ConnectionStatusReconciler.java
author stechong
Wed, 20 Oct 2010 11:19:31 -0500
changeset 2165 2a7b5eccb0bc
parent 2032 a503dd2537d9
permissions -rw-r--r--
Keeping PlatSim internal only.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
     1
/**
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
     3
* All rights reserved.
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
     4
* This component and the accompanying materials are made available
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
     6
* which accompanies this distribution, and is available
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
     8
*
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
     9
* Initial Contributors:
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    11
*
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    12
* Contributors:
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    13
*
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    14
* Description: 
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    15
*
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    16
*/
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    17
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    18
package com.nokia.carbide.trk.support.status;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    19
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    20
import java.util.ArrayList;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    21
import java.util.List;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    22
924
657e34ac671f Fix deadlock when the Select Connection dialog is up, user plugs in a device, and the Remote Connections view is shown
Ed Swartz <ed.swartz@nokia.com>
parents: 848
diff changeset
    23
import org.eclipse.swt.widgets.Display;
657e34ac671f Fix deadlock when the Select Connection dialog is up, user plugs in a device, and the Remote Connections view is shown
Ed Swartz <ed.swartz@nokia.com>
parents: 848
diff changeset
    24
import org.eclipse.swt.widgets.Shell;
848
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
    25
import org.eclipse.ui.PartInitException;
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
    26
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    27
import com.nokia.carbide.remoteconnections.RemoteConnectionsActivator;
1851
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
    28
import com.nokia.carbide.remoteconnections.interfaces.AbstractConnection.ConnectionStatus;
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    29
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService;
1851
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
    30
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatus;
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
    31
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatus.EStatus;
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
    32
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatusChangedListener;
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    33
import com.nokia.carbide.remoteconnections.interfaces.IConnection;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    34
import com.nokia.carbide.remoteconnections.interfaces.IConnectionsManager;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    35
import com.nokia.carbide.remoteconnections.interfaces.IConnectionsManager.IConnectionListener;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    36
import com.nokia.carbide.remoteconnections.internal.api.IConnection2;
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
    37
import com.nokia.carbide.remoteconnections.internal.api.IConnection2.IConnectionStatus;
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    38
import com.nokia.carbide.remoteconnections.internal.api.IConnection2.IConnectionStatus.EConnectionStatus;
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
    39
import com.nokia.carbide.trk.support.Messages;
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    40
import com.nokia.carbide.trk.support.connection.USBConnectionType;
848
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
    41
import com.nokia.cpp.internal.api.utils.ui.RunRunnableWhenWorkbenchVisibleJob;
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
    42
import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    43
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    44
/**
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    45
 * A singleton object that manages the device status of dynamic connections
1851
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
    46
 * based on the status of the debugging services.
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    47
 */
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    48
public class ConnectionStatusReconciler {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    49
	
848
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
    50
	private static final String CONNECTIONS_VIEW_ID = 
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
    51
		"com.nokia.carbide.remoteconnections.view.ConnectionsView"; //$NON-NLS-1$
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
    52
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    53
	private class ConnectionListener implements IConnectionListener {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    54
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    55
		public void connectionAdded(IConnection connection) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    56
			addConnection(connection);
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    57
		}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    58
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    59
		public void connectionRemoved(IConnection connection) {
764
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
    60
			if (connection.equals(userSetCurrentConnection))
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
    61
				userSetCurrentConnection = null;
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    62
			removeConnection(connection);
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    63
		}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    64
		
764
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
    65
		public void currentConnectionSet(IConnection connection) {
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
    66
			if (connection != null && !connection.equals(reconcilerSetCurrentConnection))
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
    67
				userSetCurrentConnection = connection;
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
    68
		}
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    69
		
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    70
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    71
	
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    72
	private class ServiceStatusListener implements IStatusChangedListener {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    73
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    74
		public void statusChanged(IStatus status) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    75
			handleServiceStatusChange(status);
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    76
		}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    77
		
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    78
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    79
	
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    80
	private static ConnectionStatusReconciler instance;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    81
	private IConnectionsManager manager;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    82
	private IConnectionListener connectionListener;
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
    83
	private List<IConnection> handledConnections;
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    84
	private ServiceStatusListener serviceStatusListener;
764
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
    85
	private IConnection reconcilerSetCurrentConnection;
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
    86
	private IConnection userSetCurrentConnection;
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    87
	
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    88
	private ConnectionStatusReconciler() {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    89
		connectionListener = new ConnectionListener();
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    90
		manager = RemoteConnectionsActivator.getConnectionsManager();
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    91
		manager.addConnectionListener(connectionListener);
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
    92
		handledConnections = new ArrayList<IConnection>();
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    93
		serviceStatusListener = new ServiceStatusListener();
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    94
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    95
	
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    96
	public static ConnectionStatusReconciler getInstance() {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    97
		if (instance == null)
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    98
			instance = new ConnectionStatusReconciler();
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
    99
		
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   100
		return instance;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   101
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   102
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   103
	public void dispose() {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   104
		manager.removeConnectionListener(connectionListener);
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   105
		for (IConnection connection : new ArrayList<IConnection>(handledConnections)) {
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   106
			removeConnection(connection);
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   107
		}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   108
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   109
752
a0609ea7401a add sys trk checking for usb only and use with reconciler
dadubrow
parents: 750
diff changeset
   110
	private boolean isDynamic(IConnection connection) {
a0609ea7401a add sys trk checking for usb only and use with reconciler
dadubrow
parents: 750
diff changeset
   111
		return connection instanceof IConnection2 && ((IConnection2) connection).isDynamic();
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   112
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   113
1968
3482df86a51d Remove TRK service and replace with TCF TRK service. Remove wildcard service check used as an interim when TCF TRK and TRK were both options.
Ed Swartz <ed.swartz@nokia.com>
parents: 1851
diff changeset
   114
	/* C3TCF
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   115
	private boolean isSysTRK(TRKConnectedService service) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   116
		String value = service.getProperties().get(TRKConnectedService.PROP_SYS_TRK);
752
a0609ea7401a add sys trk checking for usb only and use with reconciler
dadubrow
parents: 750
diff changeset
   117
		return Boolean.parseBoolean(value);
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   118
	}
1968
3482df86a51d Remove TRK service and replace with TCF TRK service. Remove wildcard service check used as an interim when TCF TRK and TRK were both options.
Ed Swartz <ed.swartz@nokia.com>
parents: 1851
diff changeset
   119
	*/
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   120
	private void addConnection(IConnection connection) {
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   121
		handledConnections.add(connection);
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   122
		for (IConnectedService service : manager.getConnectedServices(connection)) {
1968
3482df86a51d Remove TRK service and replace with TCF TRK service. Remove wildcard service check used as an interim when TCF TRK and TRK were both options.
Ed Swartz <ed.swartz@nokia.com>
parents: 1851
diff changeset
   123
			if (/* C3TCF service instanceof TRKConnectedService ||*/ isTCFTRKService(service)) {
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   124
				service.addStatusChangedListener(serviceStatusListener);
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   125
			}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   126
		}
848
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
   127
		showConnectionsView();
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
   128
	}
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
   129
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
   130
	private void showConnectionsView() {
962
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   131
		// avoid deadlock with RunRunnableWhenWorkbenchVisibleJob 
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   132
		// if this called as a result of a launch sequence issuing a "select connection" dialog
961
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   133
		final Shell shell = WorkbenchUtils.getActiveShell();
962
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   134
		final boolean isVisible[] = { false };
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   135
		
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   136
		if (shell != null) {
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   137
			Display.getDefault().syncExec(new Runnable() {
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   138
				public void run() {
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   139
					isVisible[0] = shell.isVisible();
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   140
				}
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   141
			});
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   142
		}
961
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   143
		
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   144
		Runnable runnable = new Runnable() {
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   145
			public void run() {
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   146
				try {
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   147
					WorkbenchUtils.getView(CONNECTIONS_VIEW_ID);
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   148
				} catch (PartInitException e) {
848
679300bad088 Show connections view when new connection is added
dadubrow
parents: 770
diff changeset
   149
				}
961
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   150
			}
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   151
		};
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   152
		
962
239e8d35ac54 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 961
diff changeset
   153
		if (!isVisible[0]) {
961
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   154
			RunRunnableWhenWorkbenchVisibleJob.start(runnable);
924
657e34ac671f Fix deadlock when the Select Connection dialog is up, user plugs in a device, and the Remote Connections view is shown
Ed Swartz <ed.swartz@nokia.com>
parents: 848
diff changeset
   155
		} else {
961
8c95e3acb374 Fix bug 10725 -- jam more UI code into syncExec
Ed Swartz <ed.swartz@nokia.com>
parents: 924
diff changeset
   156
			Display.getDefault().asyncExec(runnable);
924
657e34ac671f Fix deadlock when the Select Connection dialog is up, user plugs in a device, and the Remote Connections view is shown
Ed Swartz <ed.swartz@nokia.com>
parents: 848
diff changeset
   157
		}
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   158
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   159
	
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   160
	private void reconcileAsCurrent(IConnection connection) {
764
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
   161
		if (canBeSetToCurrent(connection)) {
770
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   162
			if (isReady(connection)) { // set as current
764
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
   163
				reconcilerSetCurrentConnection = connection;
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
   164
				manager.setCurrentConnection(connection);
770
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   165
			} else if (isNotReady(connection) && connection.equals(manager.getCurrentConnection())) { 
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   166
				// unset current or set something else current
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   167
				if (isDynamic(connection) && userSetCurrentConnection != null) {
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   168
					manager.setCurrentConnection(userSetCurrentConnection);
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   169
				}
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   170
				else {
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   171
					// look for some other existing connection that is ready
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   172
					for (IConnection c : manager.getConnections()) {
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   173
						if (canBeSetToCurrent(c) && isReady(c)) {
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   174
							reconcilerSetCurrentConnection = connection;
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   175
							manager.setCurrentConnection(connection);
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   176
							return;
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   177
						}
764
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
   178
					}
770
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   179
					// set to no current connection
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   180
					manager.setCurrentConnection(null);
764
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
   181
				}
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
   182
			}
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   183
		}
758
c3cf3704d340 Make setting default part of reconciler responsibility
dadubrow
parents: 752
diff changeset
   184
	}
c3cf3704d340 Make setting default part of reconciler responsibility
dadubrow
parents: 752
diff changeset
   185
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   186
	private boolean isReady(IConnection connection) {
770
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   187
		return equalsConnectionStatus(connection, EConnectionStatus.READY);
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   188
	}
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   189
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   190
	private boolean isNotReady(IConnection connection) {
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   191
		return equalsConnectionStatus(connection, EConnectionStatus.NOT_READY);
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   192
	}
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   193
	
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   194
	private boolean equalsConnectionStatus(IConnection connection, EConnectionStatus status) {
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   195
		if (connection instanceof IConnection2) {
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   196
			IConnectionStatus connectionStatus = ((IConnection2) connection).getStatus();
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   197
			if (connectionStatus != null)
770
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   198
				return connectionStatus.getEConnectionStatus().equals(status);
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   199
		}
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   200
		return false;
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   201
	}
770
cb7e68ca1ef4 don't unset current when in-use
dadubrow
parents: 764
diff changeset
   202
	
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   203
	private boolean canBeSetToCurrent(IConnection connection) {
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   204
		// USB connections for now
1559
cc9cfb62406b Remove temporary USB (TCF) connection and move TCF-related services into Carbide EDC
Ed Swartz <ed.swartz@nokia.com>
parents: 1416
diff changeset
   205
		return USBConnectionType.ID.equals(connection.getConnectionType().getIdentifier());
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   206
	}
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   207
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   208
	private void reconcileStatus(IConnection connection) {
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   209
		if (!isDynamic(connection)) // don't set status for user generated connections
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   210
			return;
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   211
		
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   212
		boolean isSysTRK = false;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   213
		EStatus trkStatus = EStatus.UNKNOWN;
1851
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   214
		EStatus tcfTRKStatus = EStatus.UNKNOWN;
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   215
		for (IConnectedService service : manager.getConnectedServices(connection)) {
1968
3482df86a51d Remove TRK service and replace with TCF TRK service. Remove wildcard service check used as an interim when TCF TRK and TRK were both options.
Ed Swartz <ed.swartz@nokia.com>
parents: 1851
diff changeset
   216
			/* C3TCF
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   217
			if (service instanceof TRKConnectedService) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   218
				isSysTRK = isSysTRK((TRKConnectedService) service);
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   219
				trkStatus = service.getStatus().getEStatus();
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   220
			}
1968
3482df86a51d Remove TRK service and replace with TCF TRK service. Remove wildcard service check used as an interim when TCF TRK and TRK were both options.
Ed Swartz <ed.swartz@nokia.com>
parents: 1851
diff changeset
   221
			*/
1851
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   222
			if (isTCFTRKService(service)) { //$NON-NLS-1$
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   223
				tcfTRKStatus = service.getStatus().getEStatus();
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   224
			}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   225
		}
1851
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   226
		setConnectionStatus((IConnection2) connection, isSysTRK, trkStatus, tcfTRKStatus);
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   227
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   228
1851
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   229
	private boolean isTCFTRKService(IConnectedService service) {
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   230
		return service.getService().getIdentifier().equals("com.nokia.carbide.cpp.edc.TCFTRKService");
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   231
	}
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   232
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   233
	private void setConnectionStatus(IConnection2 connection, boolean isSysTRK, EStatus trkStatus, EStatus tcfTRKStatus) {
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   234
		EStatus serviceStatus = tcfTRKStatus;
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   235
		EConnectionStatus connectionStatus = service2ConnectionStatus(serviceStatus);
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   236
		if (!connectionStatus.equals(EConnectionStatus.READY)) {
2032
a503dd2537d9 Bug 12027, don't look at old trk status
dadubrow
parents: 1968
diff changeset
   237
			serviceStatus = tcfTRKStatus; // C3TCF !!!!!!!!!!!!!
1851
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   238
			connectionStatus = service2ConnectionStatus(serviceStatus);
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   239
		}
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   240
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   241
		String shortDesc = getShortDescriptionForStatus(connectionStatus);
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   242
		StringBuilder longDesc = new StringBuilder(Messages.getString("ConnectionStatusReconciler_TRKServicePrefix")); //$NON-NLS-1$
1851
1abb98459179 Bug 11791 - add tcf trk to connection status reconcilation
dadubrow
parents: 1559
diff changeset
   243
		longDesc.append(getServiceStatusString(serviceStatus));
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   244
		
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   245
		connection.setStatus(new ConnectionStatus(connectionStatus, shortDesc, longDesc.toString()));
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   246
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   247
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   248
	private String getShortDescriptionForStatus(EConnectionStatus connectionStatus) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   249
		switch (connectionStatus) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   250
			case READY:
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   251
				return Messages.getString("ConnectionStatusReconciler_ReadyLabel"); //$NON-NLS-1$
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   252
			case NOT_READY:
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   253
				return Messages.getString("ConnectionStatusReconciler_NotReadyLabel"); //$NON-NLS-1$
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   254
			case IN_USE:
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   255
				return Messages.getString("ConnectionStatusReconciler_InUseLabel"); //$NON-NLS-1$
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   256
			case IN_USE_DISCONNECTED:
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   257
				return Messages.getString("ConnectionStatusReconciler_DisconnectedLabel"); //$NON-NLS-1$
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   258
			}
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   259
		return ""; //$NON-NLS-1$
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   260
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   261
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   262
	private String getServiceStatusString(EStatus status) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   263
		switch (status) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   264
			case UP:
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   265
				return Messages.getString("ConnectionStatusReconciler_availableLabel"); //$NON-NLS-1$
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   266
			case DOWN:
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   267
				return Messages.getString("ConnectionStatusReconciler_unavailableLabel"); //$NON-NLS-1$
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   268
			case IN_USE:
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   269
				return Messages.getString("ConnectionStatusReconciler_inUseLabel_lower"); //$NON-NLS-1$
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   270
		}
749
22f0d10fce10 Externalize strings
dadubrow
parents: 748
diff changeset
   271
		return ""; //$NON-NLS-1$
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   272
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   273
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   274
	private EConnectionStatus service2ConnectionStatus(EStatus serviceStatus) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   275
		switch (serviceStatus) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   276
			case UP:
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   277
				return EConnectionStatus.READY;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   278
			case DOWN:
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   279
				return EConnectionStatus.NOT_READY;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   280
			case IN_USE:
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   281
				return EConnectionStatus.IN_USE;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   282
		}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   283
		return EConnectionStatus.NONE;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   284
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   285
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   286
	private void removeConnection(IConnection connection) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   287
		handledConnections.remove(connection);
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   288
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   289
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   290
	private IConnection findConnection(IConnectedService cs) {
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   291
		for (IConnection connection : handledConnections) {
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   292
			for (IConnectedService connectedService : manager.getConnectedServices(connection)) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   293
				if (cs.equals(connectedService))
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   294
					return connection;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   295
			}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   296
		}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   297
		return null;
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   298
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   299
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   300
	public void handleServiceStatusChange(IStatus status) {
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   301
		IConnectedService service = status.getConnectedService();
763
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   302
		IConnection connection = findConnection(service);
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   303
		if (connection instanceof IConnection2) {
751f5182b866 Refactor API and related from default connection to current + update heuristics
dadubrow
parents: 758
diff changeset
   304
			reconcileStatus((IConnection2) connection);
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   305
		}
764
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
   306
		if (connection != null)
603d6ca035e8 updated set and reset current depending on ready state
dadubrow
parents: 763
diff changeset
   307
			reconcileAsCurrent(connection);
748
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   308
	}
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   309
7bd40a2d0a18 Add connection status reconciliation + fixes + tweaks
dadubrow
parents:
diff changeset
   310
}