connectivity/com.nokia.carbide.remoteConnections/src/com/nokia/carbide/remoteconnections/settings/ui/ConnectionSettingsPage.java
author dadubrow
Fri, 16 Jul 2010 08:47:34 -0500
changeset 1622 f2409b13f0f8
parent 1230 71146ed4b8a1
child 1702 c2c8b7393fe7
permissions -rw-r--r--
multiple changes to remote agent installer code: + augment xml file structure with optional ordering info for sdk family and versions (ordering not yet implemented) + do not require sdk version to be parseable version string + encode xml file into the server.properties entry rather than providing only dir and adding file name with code + remove unneeded tracing packages entry
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.settings.ui;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    20
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    21
import java.io.File;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    22
import java.io.InputStream;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    23
import java.text.MessageFormat;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    24
import java.util.ArrayList;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    25
import java.util.Arrays;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    26
import java.util.Collection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    27
import java.util.Collections;
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
    28
import java.util.Iterator;
1197
214c435e2d15 bug 11035 - mike's ui tweaks for installer tab
dadubrow
parents: 1166
diff changeset
    29
import java.util.LinkedHashMap;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    30
import java.util.List;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    31
import java.util.Map;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    32
import java.util.Set;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    33
import java.util.TreeSet;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    34
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    35
import org.eclipse.core.runtime.IPath;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    36
import org.eclipse.core.runtime.Path;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    37
import org.eclipse.jface.dialogs.IDialogConstants;
735
c0e4fa3c3e8a Fix bug 7888
Ed Swartz <ed.swartz@nokia.com>
parents: 699
diff changeset
    38
import org.eclipse.jface.layout.GridDataFactory;
c0e4fa3c3e8a Fix bug 7888
Ed Swartz <ed.swartz@nokia.com>
parents: 699
diff changeset
    39
import org.eclipse.jface.layout.GridLayoutFactory;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    40
import org.eclipse.jface.viewers.ArrayContentProvider;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    41
import org.eclipse.jface.viewers.ComboViewer;
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
    42
import org.eclipse.jface.viewers.DoubleClickEvent;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
    43
import org.eclipse.jface.viewers.IDoubleClickListener;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    44
import org.eclipse.jface.viewers.ISelectionChangedListener;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    45
import org.eclipse.jface.viewers.IStructuredSelection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    46
import org.eclipse.jface.viewers.LabelProvider;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    47
import org.eclipse.jface.viewers.ListViewer;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    48
import org.eclipse.jface.viewers.SelectionChangedEvent;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    49
import org.eclipse.jface.viewers.StructuredSelection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    50
import org.eclipse.jface.viewers.TreeNode;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    51
import org.eclipse.jface.viewers.TreeNodeContentProvider;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    52
import org.eclipse.jface.viewers.TreeViewer;
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
    53
import org.eclipse.jface.viewers.Viewer;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
    54
import org.eclipse.jface.viewers.ViewerSorter;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    55
import org.eclipse.jface.wizard.IWizardContainer2;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    56
import org.eclipse.jface.wizard.WizardPage;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    57
import org.eclipse.swt.SWT;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    58
import org.eclipse.swt.custom.CLabel;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    59
import org.eclipse.swt.custom.SashForm;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    60
import org.eclipse.swt.events.FocusAdapter;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    61
import org.eclipse.swt.events.FocusEvent;
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
    62
import org.eclipse.swt.events.ModifyEvent;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
    63
import org.eclipse.swt.events.ModifyListener;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    64
import org.eclipse.swt.events.SelectionAdapter;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    65
import org.eclipse.swt.events.SelectionEvent;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    66
import org.eclipse.swt.graphics.Image;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    67
import org.eclipse.swt.graphics.Point;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    68
import org.eclipse.swt.layout.GridData;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    69
import org.eclipse.swt.layout.GridLayout;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    70
import org.eclipse.swt.program.Program;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    71
import org.eclipse.swt.widgets.Button;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    72
import org.eclipse.swt.widgets.Composite;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    73
import org.eclipse.swt.widgets.Control;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    74
import org.eclipse.swt.widgets.Display;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    75
import org.eclipse.swt.widgets.FileDialog;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    76
import org.eclipse.swt.widgets.Group;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    77
import org.eclipse.swt.widgets.Label;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    78
import org.eclipse.swt.widgets.Shell;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    79
import org.eclipse.swt.widgets.TabFolder;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    80
import org.eclipse.swt.widgets.TabItem;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    81
import org.eclipse.swt.widgets.Text;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    82
import org.eclipse.ui.ISharedImages;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    83
import org.eclipse.ui.PlatformUI;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    84
import org.osgi.framework.Version;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    85
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    86
import com.nokia.carbide.remoteconnections.Messages;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    87
import com.nokia.carbide.remoteconnections.RemoteConnectionsActivator;
894
48b544aebc83 bug 10493 - only test one service for each physical connection
dadubrow
parents: 735
diff changeset
    88
import com.nokia.carbide.remoteconnections.interfaces.AbstractConnectedService2;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    89
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService;
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
    90
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatus;
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
    91
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatus.EStatus;
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
    92
import com.nokia.carbide.remoteconnections.interfaces.IConnectedService.IStatusChangedListener;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    93
import com.nokia.carbide.remoteconnections.interfaces.IConnection;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    94
import com.nokia.carbide.remoteconnections.interfaces.IConnectionFactory;
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
    95
import com.nokia.carbide.remoteconnections.interfaces.IConnectionFactory.IValidationErrorReporter;
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
    96
import com.nokia.carbide.remoteconnections.interfaces.IConnectionFactory2;
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
    97
import com.nokia.carbide.remoteconnections.interfaces.IConnectionFactory2.ISettingsChangedListener;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    98
import com.nokia.carbide.remoteconnections.interfaces.IConnectionType;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
    99
import com.nokia.carbide.remoteconnections.interfaces.IConnectionTypeProvider;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   100
import com.nokia.carbide.remoteconnections.interfaces.IRemoteAgentInstallerProvider;
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   101
import com.nokia.carbide.remoteconnections.interfaces.IRemoteAgentInstallerProvider.IRemoteAgentInstaller;
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   102
import com.nokia.carbide.remoteconnections.interfaces.IRemoteAgentInstallerProvider.IRemoteAgentInstaller.IPackageContents;
1197
214c435e2d15 bug 11035 - mike's ui tweaks for installer tab
dadubrow
parents: 1166
diff changeset
   103
import com.nokia.carbide.remoteconnections.interfaces.IService;
214c435e2d15 bug 11035 - mike's ui tweaks for installer tab
dadubrow
parents: 1166
diff changeset
   104
import com.nokia.carbide.remoteconnections.interfaces.IService2;
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   105
import com.nokia.carbide.remoteconnections.internal.api.IConnectedService2;
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 678
diff changeset
   106
import com.nokia.carbide.remoteconnections.internal.registry.Registry;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   107
import com.nokia.cpp.internal.api.utils.core.Check;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   108
import com.nokia.cpp.internal.api.utils.core.FileUtils;
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   109
import com.nokia.cpp.internal.api.utils.core.HostOS;
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   110
import com.nokia.cpp.internal.api.utils.core.ObjectUtils;
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   111
import com.nokia.cpp.internal.api.utils.core.Pair;
677
d13345e153e8 More bug #10363 fixes
Ed Swartz <ed.swartz@nokia.com>
parents: 465
diff changeset
   112
import com.nokia.cpp.internal.api.utils.ui.BrowseDialogUtils;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   113
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   114
public class ConnectionSettingsPage extends WizardPage implements ISettingsChangedListener {
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   115
	
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   116
	public final class Tester extends Thread {
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   117
		@Override
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   118
		public void run() {
894
48b544aebc83 bug 10493 - only test one service for each physical connection
dadubrow
parents: 735
diff changeset
   119
			((AbstractConnectedService2) connectedService).setExternalTesting();
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   120
			for (int i = 0; i < 3 && connectedService != null; i++) {
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   121
				connectedService.testStatus();
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   122
				try {
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   123
					if (i < 2)
894
48b544aebc83 bug 10493 - only test one service for each physical connection
dadubrow
parents: 735
diff changeset
   124
						sleep(AbstractConnectedService2.TIMEOUT);
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   125
				} catch (InterruptedException e) {
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   126
					break;
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   127
				}
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   128
			}
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   129
			resetServiceTesting(false);
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   130
		}
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   131
	}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   132
1166
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
   133
	private static final TreeNode LOADING_CONTENT_TREENODE = 
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   134
		new TreeNode(Messages.getString("ConnectionSettingsPage.GettingDataMessage")); //$NON-NLS-1$
460
903fa36d4afb fix some thread synchronization problems caused when proxy is incorrect
dadubrow
parents: 163
diff changeset
   135
	private static final TreeNode[] LOADING_CONTENT_INPUT = new TreeNode[] { LOADING_CONTENT_TREENODE };
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   136
	private static final String STATUS_NOT_TESTED = 
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   137
		Messages.getString("ConnectionSettingsPage.NotTestedStatusString"); //$NON-NLS-1$
1166
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
   138
	private static final Image FOLDER_ICON_IMG = 
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   139
		PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   140
				ISharedImages.IMG_OBJ_FOLDER).createImage();
1166
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
   141
	private static final String CONNECTION_PREFIX = "connection"; //$NON-NLS-1$
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
   142
	private static final String INITIAL_NAME_FMT = "{0} {1}"; //$NON-NLS-1$
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   143
	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
   144
	private final SettingsWizard settingsWizard;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   145
	private IConnectionType connectionType;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   146
	private ComboViewer deviceOSComboViewer;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   147
	private Group settingsGroup;
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   148
	private Composite setupTabComposite;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   149
	private ComboViewer connectionTypeViewer;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   150
	private Text nameText;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   151
	private boolean modifiedName;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   152
	private boolean initialized;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   153
	private Composite agentTestTabComposite;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   154
	private ListViewer servicesListViewer;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   155
	private Text serviceTestInfo;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   156
	private Button serviceTestButton;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   157
	private boolean isTesting;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   158
	private Label statusLabel;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   159
	private Text statusText;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   160
	private IConnectionFactory connectionFactory;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   161
	private IConnection connection;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   162
	private IService service;
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   163
	private volatile IConnectedService connectedService;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   164
	private IStatusChangedListener statusListener;
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   165
	private Tester tester;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   166
	private SashForm installerSashForm;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   167
	private TreeViewer installerTreeViewer;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   168
	private Text installerInfoText;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   169
	private Button installerSaveButton;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   170
	private Button installButton;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   171
	private String saveAsParent;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   172
	private List<IRemoteAgentInstallerProvider> installerProviders;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   173
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   174
	protected ConnectionSettingsPage(SettingsWizard settingsWizard) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   175
		super("settingspage"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   176
		this.settingsWizard = settingsWizard;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   177
	}
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
	/* (non-Javadoc)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   180
	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   181
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   182
	public void createControl(Composite parent) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   183
		final TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   184
		tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   185
		tabFolder.setData(UID, "ConnectionSettingsPage"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   186
		
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   187
		createSetupTabComposite(tabFolder);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   188
		createAgentTestTabComposite(tabFolder);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   189
		createInstallTabComposite(tabFolder);
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
		RemoteConnectionsActivator.setHelp(tabFolder, ".connection_settings_page"); //$NON-NLS-1$
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
		setControl(tabFolder);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   194
	}
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   195
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   196
	private void createSetupTabComposite(TabFolder tabFolder) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   197
		TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   198
		tabItem.setText(Messages.getString("ConnectionSettingsPage.SetupTabLabel")); //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   199
		tabItem.setData(UID, "setupTab"); //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   200
		setupTabComposite = new Composite(tabFolder, SWT.NONE);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   201
		setupTabComposite.setLayout(new GridLayout(2, false));
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   202
		tabItem.setControl(setupTabComposite);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   203
		
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   204
		boolean canEditConnection = !settingsWizard.isConnectionToEditDynamic();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   205
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   206
		Label viewerLabel = new Label(setupTabComposite, SWT.NONE);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   207
		viewerLabel.setText(Messages.getString("ConnectionTypePage.ViewerLabel")); //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   208
		
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   209
		connectionTypeViewer = new ComboViewer(setupTabComposite, SWT.READ_ONLY);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   210
		connectionTypeViewer.setLabelProvider(new LabelProvider() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   211
			@Override
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   212
			public String getText(Object element) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   213
				Check.checkState(element instanceof IConnectionType);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   214
				IConnectionType connectionType = (IConnectionType) element;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   215
				return connectionType.getDisplayName() + " (" + getServicesString(connectionType) + ")"; //$NON-NLS-1$ //$NON-NLS-2$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   216
			}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   217
		});
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   218
		connectionTypeViewer.setContentProvider(new ArrayContentProvider());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   219
		connectionTypeViewer.setInput(getConnectionTypes());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   220
		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   221
		connectionTypeViewer.getControl().setLayoutData(gd);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   222
		connectionTypeViewer.getControl().setData(UID, "viewer"); //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   223
		connectionTypeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   224
			private IConnectionType previousSelection;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   225
			public void selectionChanged(SelectionChangedEvent event) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   226
				Object currentSelection = ((IStructuredSelection) event.getSelection()).getFirstElement();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   227
				if (!currentSelection.equals(previousSelection)) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   228
					settingsWizard.connectionTypeChanged();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   229
					previousSelection = (IConnectionType) currentSelection;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   230
				}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   231
			}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   232
		});
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   233
		connectionTypeViewer.addDoubleClickListener(new IDoubleClickListener() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   234
			public void doubleClick(DoubleClickEvent event) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   235
				getWizard().getContainer().showPage(getNextPage());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   236
			}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   237
		});
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   238
		connectionTypeViewer.setSorter(new ViewerSorter() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   239
			@Override
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   240
			public int compare(Viewer viewer, Object e1, Object e2) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   241
				IConnectionType t1 = (IConnectionType) e1;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   242
				IConnectionType t2 = (IConnectionType) e2;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   243
				return t1.getDisplayName().compareToIgnoreCase(t2.getDisplayName());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   244
			}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   245
		});
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   246
		connectionTypeViewer.getCombo().select(getCurrentTypeIndex());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   247
		connectionTypeViewer.getCombo().setEnabled(canEditConnection);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   248
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   249
		Label nameLabel = new Label(setupTabComposite, SWT.NONE);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   250
		nameLabel.setText(Messages.getString("ConnectionTypePage.NameLabel")); //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   251
		nameText = new Text(setupTabComposite, SWT.BORDER);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   252
		gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   253
		nameText.setLayoutData(gd);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   254
		nameText.setToolTipText(Messages.getString("ConnectionTypePage.NameTextToolTip")); //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   255
		nameText.setData(UID, "nameText"); //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   256
		nameText.setText(getInitialNameText());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   257
		nameText.selectAll();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   258
		nameText.addModifyListener(new ModifyListener() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   259
			public void modifyText(ModifyEvent e) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   260
				modifiedName = true;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   261
				setPageComplete(validatePage());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   262
			}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   263
		});
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   264
		nameText.setEnabled(canEditConnection);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   265
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   266
		createSettingsGroup(setupTabComposite);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   267
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   268
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   269
	private void createAgentTestTabComposite(TabFolder tabFolder) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   270
		TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   271
		tabItem.setText(Messages.getString("ConnectionSettingsPage.AgentTestTabLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   272
		tabItem.setData(UID, "testTab"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   273
		agentTestTabComposite = new Composite(tabFolder, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   274
		GridLayout gridLayout = new GridLayout();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   275
		gridLayout.numColumns = 2;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   276
		agentTestTabComposite.setLayout(gridLayout);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   277
		tabItem.setControl(agentTestTabComposite);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   278
		
735
c0e4fa3c3e8a Fix bug 7888
Ed Swartz <ed.swartz@nokia.com>
parents: 699
diff changeset
   279
		Group group = new Group(agentTestTabComposite, SWT.NONE);
c0e4fa3c3e8a Fix bug 7888
Ed Swartz <ed.swartz@nokia.com>
parents: 699
diff changeset
   280
		group.setText(Messages.getString("ConnectionSettingsPage.ConnectionTestingLabel")); //$NON-NLS-1$
c0e4fa3c3e8a Fix bug 7888
Ed Swartz <ed.swartz@nokia.com>
parents: 699
diff changeset
   281
		GridLayoutFactory.fillDefaults().numColumns(2).applyTo(group);
c0e4fa3c3e8a Fix bug 7888
Ed Swartz <ed.swartz@nokia.com>
parents: 699
diff changeset
   282
		GridDataFactory.fillDefaults().span(2, 1).grab(true, true).applyTo(group);
c0e4fa3c3e8a Fix bug 7888
Ed Swartz <ed.swartz@nokia.com>
parents: 699
diff changeset
   283
		
c0e4fa3c3e8a Fix bug 7888
Ed Swartz <ed.swartz@nokia.com>
parents: 699
diff changeset
   284
		createDeviceOSCombo(group);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   285
735
c0e4fa3c3e8a Fix bug 7888
Ed Swartz <ed.swartz@nokia.com>
parents: 699
diff changeset
   286
		createServiceTestComposite(group);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   287
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   288
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   289
	private void createDeviceOSCombo(Composite parent) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   290
		Composite comboComposite = new Composite(parent, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   291
		GridData gd_composite = new GridData(SWT.FILL, SWT.CENTER, true, false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   292
		gd_composite.horizontalSpan = 2;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   293
		comboComposite.setLayoutData(gd_composite);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   294
		GridLayout gridLayout = new GridLayout();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   295
		gridLayout.numColumns = 2;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   296
		comboComposite.setLayout(gridLayout);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   297
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   298
		Label deviceOSLabel = new Label(comboComposite, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   299
		GridData gd_sdkLabel = new GridData();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   300
		deviceOSLabel.setLayoutData(gd_sdkLabel);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   301
		deviceOSLabel.setText(Messages.getString("ConnectionSettingsPage.DeviceOSLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   302
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   303
		deviceOSComboViewer = new ComboViewer(comboComposite, SWT.READ_ONLY);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   304
		GridData gd_sdkcombo = new GridData(SWT.LEFT, SWT.CENTER, true, false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   305
		gd_sdkcombo.widthHint = 150;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   306
		deviceOSComboViewer.getCombo().setLayoutData(gd_sdkcombo);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   307
		deviceOSComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
678
557efa279676 Fixes for #10354 (Linux & remote connections). Provide appropriate status for TRK/Tracing when remote connection not impemented. Do not provide installer data for now either.
Ed Swartz <ed.swartz@nokia.com>
parents: 677
diff changeset
   308
			@SuppressWarnings("unchecked")
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   309
			public void selectionChanged(SelectionChangedEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   310
				IStructuredSelection selection = (IStructuredSelection) deviceOSComboViewer.getSelection();
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   311
				Pair<String, String> pair = (Pair<String, String>) selection.getFirstElement();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   312
				setSelectionToInstallComposite(pair);
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   313
				if (connectedService instanceof IConnectedService2)
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   314
					((IConnectedService2) connectedService).setDeviceOS(pair.first, pair.second);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   315
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   316
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   317
		deviceOSComboViewer.setContentProvider(new ArrayContentProvider());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   318
		deviceOSComboViewer.setLabelProvider(new LabelProvider() {
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   319
			@SuppressWarnings({ "unchecked", "rawtypes" })
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   320
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   321
			public String getText(Object element) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   322
				Check.checkState(element instanceof Pair);
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   323
				Pair<String, Version> pair = (Pair) element;
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   324
				return MessageFormat.format("{0} {1}", pair.first, pair.second); //$NON-NLS-1$
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   325
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   326
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   327
		deviceOSComboViewer.getControl().setToolTipText(Messages.getString("ConnectionSettingsPage.DeviceOSComboToolTip")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   328
		deviceOSComboViewer.getControl().setData(UID, "deviceOSComboViewer"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   329
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   330
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   331
	private void createSettingsGroup(Composite parent) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   332
		settingsGroup = new Group(parent, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   333
		GridLayout settingsLayout = new GridLayout();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   334
		settingsGroup.setLayout(settingsLayout);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   335
		GridData gd_settings = new GridData(GridData.FILL_HORIZONTAL);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   336
		gd_settings.horizontalSpan = 2;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   337
		settingsGroup.setLayoutData(gd_settings);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   338
		settingsGroup.setText(Messages.getString("ConnectionSettingsPage.ConnectionSettingsGroupLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   339
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   340
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   341
	private void createServiceTestComposite(Composite parent) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   342
		Composite serviceSelectionComposite = new Composite(parent, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   343
		serviceSelectionComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   344
		serviceSelectionComposite.setLayout(new GridLayout());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   345
		Label label = new Label(serviceSelectionComposite, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   346
		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   347
		label.setText(Messages.getString("ConnectionSettingsPage.ServicesListLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   348
		servicesListViewer = new ListViewer(serviceSelectionComposite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   349
		GridData gd_viewer = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   350
		servicesListViewer.getControl().setLayoutData(gd_viewer);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   351
		servicesListViewer.setContentProvider(new ArrayContentProvider());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   352
		servicesListViewer.setLabelProvider(new LabelProvider() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   353
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   354
			public String getText(Object element) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   355
				if (element instanceof IService)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   356
					return ((IService) element).getDisplayName();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   357
				return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   358
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   359
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   360
		servicesListViewer.addSelectionChangedListener(new ISelectionChangedListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   361
			public void selectionChanged(SelectionChangedEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   362
				IStructuredSelection selection = (IStructuredSelection) servicesListViewer.getSelection();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   363
				IService curService = (IService) selection.getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   364
				if (!curService.equals(service)) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   365
					service = curService;
163
b25acbfc406a [Bug 9085] Add new TCP/IP connection type with port mappings and new service interface to optionally provide defaults.
dadubrow
parents: 55
diff changeset
   366
					serviceTestButton.setEnabled(service.isTestable()); 
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   367
					resetServiceTesting(true);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   368
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   369
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   370
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   371
		servicesListViewer.getControl().setToolTipText(Messages.getString("ConnectionSettingsPage.ServicesListToolTip")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   372
		servicesListViewer.getControl().setData(UID, "servicesListViewer"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   373
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   374
		Composite testButtonComposite = new Composite(parent, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   375
		testButtonComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   376
		testButtonComposite.setLayout(new GridLayout());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   377
		serviceTestInfo = new Text(testButtonComposite, SWT.READ_ONLY | SWT.WRAP);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   378
		serviceTestButton = new Button(testButtonComposite, SWT.PUSH);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   379
		GridData gd_button = new GridData(SWT.CENTER, SWT.CENTER, false, false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   380
		int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   381
		serviceTestButton.setText(Messages.getString("ConnectionSettingsPage.StartServiceTestButtonLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   382
		Point minSize = serviceTestButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   383
		gd_button.widthHint = Math.max(widthHint, minSize.x);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   384
		GridData gd_text = new GridData(SWT.CENTER, SWT.FILL, true, true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   385
		gd_text.widthHint = gd_button.widthHint;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   386
		serviceTestInfo.setLayoutData(gd_text);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   387
		serviceTestInfo.setData(UID, "serviceTestInfo"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   388
		serviceTestButton.setLayoutData(gd_button);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   389
		serviceTestButton.setToolTipText(Messages.getString("ConnectionSettingsPage.ServiceTestButtonToolTip")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   390
		serviceTestButton.setData(UID, "serviceTestButton"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   391
		serviceTestButton.addSelectionListener(new SelectionAdapter() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   392
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   393
			public void widgetSelected(SelectionEvent e) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   394
				if (isTesting) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   395
					serviceTestButton.setText(Messages.getString("ConnectionSettingsPage.StartServiceTestButtonLabel")); //$NON-NLS-1$
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   396
					resetServiceTesting(true);
0
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
				else {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   399
					serviceTestButton.setText(Messages.getString("ConnectionSettingsPage.StopServiceTestButtonLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   400
					testService();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   401
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   402
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   403
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   404
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   405
		Composite statusComposite = new Composite(parent, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   406
		statusComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   407
		statusComposite.setLayout(new GridLayout());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   408
		statusLabel = new Label(statusComposite, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   409
		statusLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   410
		statusLabel.setText(Messages.getString("ConnectionSettingsPage.StatusLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   411
		statusText = new Text(statusComposite, SWT.MULTI | SWT.READ_ONLY | SWT.BORDER | SWT.WRAP);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   412
		statusText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   413
		statusText.setText(STATUS_NOT_TESTED);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   414
		statusText.setData(UID, "statusText"); //$NON-NLS-1$
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 void createInstallTabComposite(TabFolder tabFolder) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   418
		TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   419
		tabItem.setText(Messages.getString("ConnectionSettingsPage.InstallTabLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   420
		tabItem.setData(UID, "installTab"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   421
		Composite composite = new Composite(tabFolder, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   422
		GridLayout gridLayout = new GridLayout();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   423
		composite.setLayout(gridLayout);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   424
		tabItem.setControl(composite);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   425
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   426
		Composite installDebugAgentComposite = new Composite(tabFolder, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   427
		installDebugAgentComposite.setLayout(new GridLayout(1, false));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   428
		tabItem.setControl(installDebugAgentComposite);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   429
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   430
		installerSashForm = new SashForm(installDebugAgentComposite, SWT.HORIZONTAL);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   431
		GridData gd_sash = new GridData(SWT.FILL, SWT.FILL, true, true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   432
		gd_sash.widthHint = 420;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   433
		gd_sash.heightHint = 280;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   434
		installerSashForm.setLayoutData(gd_sash);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   435
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   436
		installerTreeViewer = new TreeViewer(installerSashForm, SWT.BORDER);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   437
		GridData gd_tree = new GridData(SWT.CENTER, SWT.CENTER, false, false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   438
		installerTreeViewer.getTree().setLayoutData(gd_tree);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   439
		installerTreeViewer.getControl().setData(UID, "installerTreeViewer"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   440
		installerTreeViewer.setContentProvider(new TreeNodeContentProvider());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   441
		installerTreeViewer.setLabelProvider(new LabelProvider() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   442
			@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   443
			public String getText(Object element) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   444
				TreeNode node = (TreeNode) element;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   445
				Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   446
				if (value instanceof IRemoteAgentInstaller) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   447
					String label = ((IRemoteAgentInstaller) value).getLabel();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   448
					return label == null ? Messages.getString("ConnectionSettingsPage.UnlabeledPackageLabel") : label; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   449
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   450
				return value.toString();
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 Image getImage(Object element) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   455
				if (element.equals(LOADING_CONTENT_TREENODE))
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   456
					return null;
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
				TreeNode node = (TreeNode) element;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   459
				Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   460
				if (value instanceof IRemoteAgentInstaller)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   461
					return ((IRemoteAgentInstaller) value).getImage();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   462
				
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   463
				return FOLDER_ICON_IMG;
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
		installerTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   467
			public void selectionChanged(SelectionChangedEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   468
				TreeNode node = (TreeNode) ((StructuredSelection) event.getSelection()).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   469
				if (node == null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   470
					return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   471
				Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   472
				boolean isPackage = value instanceof IRemoteAgentInstaller;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   473
				boolean installable = false;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   474
				String information = null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   475
				if (isPackage) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   476
					IRemoteAgentInstaller installer = (IRemoteAgentInstaller) value;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   477
					installable = installer.fileSupportsInstall();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   478
					information = installer.getInformation();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   479
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   480
				if (information != null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   481
					installerInfoText.setText(information);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   482
				else
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   483
					installerInfoText.setText(""); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   484
				installButton.setEnabled(isPackage && installable);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   485
				installerSaveButton.setEnabled(isPackage);
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
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   488
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   489
		installerInfoText = new Text(installerSashForm, SWT.READ_ONLY | SWT.BORDER | SWT.WRAP);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   490
		String errorText = Messages.getString("ConnectionSettingsPage.NoInstallerDataInfoString"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   491
		errorText += "\n" + Messages.getString("ConnectionSettingsPage.NoInstallerDataInfoString2"); //$NON-NLS-1$ //$NON-NLS-2$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   492
		installerInfoText.setText(errorText);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   493
		installerInfoText.setData(UID, "installerInfoText"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   494
		installerSashForm.setWeights(new int[] {160, 100 });
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   495
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   496
		Composite buttonsArea = new Composite(installDebugAgentComposite, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   497
		buttonsArea.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   498
		gridLayout = new GridLayout();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   499
		gridLayout.numColumns = 2;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   500
		buttonsArea.setLayout(gridLayout);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   501
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   502
		installerSaveButton = new Button(buttonsArea, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   503
		final GridData gd_saveButton = new GridData(SWT.RIGHT, SWT.CENTER, false, false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   504
		gd_saveButton.widthHint = 125;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   505
		installerSaveButton.setLayoutData(gd_saveButton);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   506
		installerSaveButton.setText(Messages.getString("ConnectionSettingsPage.SaveButtonLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   507
		installerSaveButton.setEnabled(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   508
		installerSaveButton.setToolTipText(Messages.getString("ConnectionSettingsPage.SaveButtonToolTip")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   509
		installerSaveButton.setData(UID, "installerSaveButton"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   510
		installerSaveButton.addSelectionListener(new SelectionAdapter() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   511
			public void widgetSelected(SelectionEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   512
				Display.getDefault().syncExec(new Runnable() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   513
					public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   514
						try {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   515
							IRemoteAgentInstaller installer = getCurrentInstaller();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   516
							saveAs(installer.getPackageContents(getContainer()));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   517
						}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   518
						catch (Exception e) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   519
							RemoteConnectionsActivator.logError(e);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   520
						}
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
				});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   523
			}
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
		installButton = new Button(buttonsArea, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   527
		final GridData gd_installButton = new GridData(SWT.RIGHT, SWT.CENTER, false, false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   528
		gd_installButton.widthHint = 125;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   529
		installButton.setLayoutData(gd_installButton);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   530
		installButton.setText(Messages.getString("ConnectionSettingsPage.InstallButtonLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   531
		installButton.setEnabled(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   532
		installButton.setToolTipText(Messages.getString("ConnectionSettingsPage.InstallButtonToolTip")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   533
		installButton.setData(UID, "installButton"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   534
		installButton.addSelectionListener(new SelectionAdapter() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   535
			public void widgetSelected(SelectionEvent event) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   536
				Display.getDefault().syncExec(new Runnable() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   537
					public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   538
						try {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   539
							IRemoteAgentInstaller installer = getCurrentInstaller();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   540
							attemptInstall(installer.getPackageContents(getContainer()));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   541
						}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   542
						catch (Exception e) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   543
							RemoteConnectionsActivator.logError(e);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   544
						}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   545
					}
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
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   552
	public void setVisible(boolean visible) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   553
		super.setVisible(visible);
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   554
		if (visible) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   555
			if (!initialized) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   556
				initialized = true;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   557
				connectionTypeViewer.setSelection(connectionTypeViewer.getSelection());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   558
			}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   559
			settingsWizard.connectionTypeChanged();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   560
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   561
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   562
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   563
	public void updateDynamicUI() {
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   564
		IConnectionType currentConnectionType = getConnectionType();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   565
		if (currentConnectionType != null && !currentConnectionType.equals(connectionType)) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   566
			setErrorMessage(null);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   567
			setPageComplete(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   568
			String buttonLabel = Messages.getString("ConnectionSettingsPage.StartServiceTestButtonLabel"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   569
			serviceTestButton.setText(buttonLabel);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   570
			connectionType = currentConnectionType;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   571
			setTitle(MessageFormat.format(Messages.getString("ConnectionSettingsPage.PageTitleFmt"), connectionType.getDisplayName())); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   572
			setDescription(connectionType.getDescription());
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
			// update settings editing UI
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   575
			Control[] settingsUI = settingsGroup.getChildren();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   576
			if (settingsUI.length > 0) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   577
				for (Control control : settingsUI) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   578
					control.dispose();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   579
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   580
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   581
			connectionFactory = connectionType.getConnectionFactory();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   582
			Map<String, String> initialSettings = null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   583
			IConnection connectionToEdit = settingsWizard.getConnectionToEdit();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   584
			if (connectionToEdit != null && connectionToEdit.getConnectionType().equals(connectionType)) // show existing settings
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   585
				initialSettings = connectionToEdit.getSettings();
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   586
			IValidationErrorReporter errorReporter = new IValidationErrorReporter() {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   587
				public void setErrorMessage(String newMessage) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   588
					ConnectionSettingsPage.this.setErrorMessage(newMessage);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   589
					boolean noError = newMessage == null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   590
					setPageComplete(noError);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   591
					String buttonLabel = Messages.getString("ConnectionSettingsPage.StartServiceTestButtonLabel"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   592
					serviceTestButton.setText(buttonLabel);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   593
				}
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   594
			};
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   595
			if (connectionFactory instanceof IConnectionFactory2) {
1230
71146ed4b8a1 Simplify new IConnectionFactory2
dadubrow
parents: 1220
diff changeset
   596
				((IConnectionFactory2)connectionFactory).createEditingUI(
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   597
						settingsGroup, errorReporter, initialSettings, this);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   598
				settingsChanged();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   599
			}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   600
			else {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   601
				connectionFactory.createEditingUI(settingsGroup, errorReporter, initialSettings);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   602
				if (!modifiedName) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   603
					nameText.setText(getInitialNameText());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   604
					modifiedName = false;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   605
				}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   606
			}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   607
			settingsUI = settingsGroup.getChildren();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   608
			if (settingsUI.length == 0) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   609
				CLabel label = new CLabel(settingsGroup, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   610
				label.setText(MessageFormat.format(Messages.getString("ConnectionSettingsPage.NoSettingsString"), connectionType.getDisplayName())); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   611
				GridData gd = new GridData(SWT.LEFT, SWT.TOP, true, true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   612
				label.setLayoutData(gd);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   613
			}
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   614
			else if (settingsWizard.isConnectionToEditDynamic()) {
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   615
				disableControls(settingsUI);
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   616
			}
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   617
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   618
			// update services list
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   619
			Collection<IService> compatibleServices = 
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 678
diff changeset
   620
				Registry.instance().getCompatibleServices(connectionType);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   621
			servicesListViewer.setInput(compatibleServices);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   622
			if (!compatibleServices.isEmpty()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   623
				servicesListViewer.getList().select(0);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   624
				servicesListViewer.setSelection(servicesListViewer.getSelection());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   625
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   626
			servicesListViewer.getList().addFocusListener(new FocusAdapter() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   627
				public void focusGained(FocusEvent e) {
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   628
					resetServiceTesting(true);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   629
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   630
			});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   631
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   632
			Thread t = new Thread() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   633
				@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   634
				public void run() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   635
					initializeInstallerData();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   636
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   637
			};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   638
			t.start();
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
		
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   641
		if (getControl().isVisible()) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   642
			setupTabComposite.layout(true, true);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   643
			agentTestTabComposite.layout(true, true);
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   644
		}
0
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
		if (getControl().isVisible())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   647
			((IWizardContainer2) getWizard().getContainer()).updateSize();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   648
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   649
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   650
	public void settingsChanged() {
1166
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
   651
		if (!modifiedName) {
1230
71146ed4b8a1 Simplify new IConnectionFactory2
dadubrow
parents: 1220
diff changeset
   652
			String preferredName = connectionFactory.getSettingsFromUI().get(IConnectionFactory2.PREFERRED_CONNECTION_NAME);
71146ed4b8a1 Simplify new IConnectionFactory2
dadubrow
parents: 1220
diff changeset
   653
			if (preferredName != null) {
71146ed4b8a1 Simplify new IConnectionFactory2
dadubrow
parents: 1220
diff changeset
   654
				nameText.setText(ensureUniquePreferredName(preferredName));
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   655
			}
1230
71146ed4b8a1 Simplify new IConnectionFactory2
dadubrow
parents: 1220
diff changeset
   656
			else {
71146ed4b8a1 Simplify new IConnectionFactory2
dadubrow
parents: 1220
diff changeset
   657
				nameText.setText(getInitialNameText());
71146ed4b8a1 Simplify new IConnectionFactory2
dadubrow
parents: 1220
diff changeset
   658
			}
1166
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
   659
			modifiedName = false;
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   660
		}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   661
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   662
699
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   663
	private void disableControls(Control[] controls) {
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   664
		for (Control control : controls) {
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   665
			if (control instanceof Composite)
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   666
				disableControls(((Composite) control).getChildren());
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   667
			control.setEnabled(false);
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   668
		}
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   669
	}
fe13162b76cf Add support for dynamic connections
dadubrow
parents: 687
diff changeset
   670
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   671
	private synchronized void initializeInstallerData() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   672
		Display.getDefault().asyncExec(new Runnable() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   673
			public void run() {
465
53630b3cab85 additional checks to avoid swt exceptions when early finish wizard and proxy set incorrectly
dadubrow
parents: 460
diff changeset
   674
				Control control = installerTreeViewer.getControl();
53630b3cab85 additional checks to avoid swt exceptions when early finish wizard and proxy set incorrectly
dadubrow
parents: 460
diff changeset
   675
				if (control == null || control.isDisposed())
53630b3cab85 additional checks to avoid swt exceptions when early finish wizard and proxy set incorrectly
dadubrow
parents: 460
diff changeset
   676
					return;
53630b3cab85 additional checks to avoid swt exceptions when early finish wizard and proxy set incorrectly
dadubrow
parents: 460
diff changeset
   677
				
460
903fa36d4afb fix some thread synchronization problems caused when proxy is incorrect
dadubrow
parents: 163
diff changeset
   678
				if (installerTreeViewer.getContentProvider() == null)
903fa36d4afb fix some thread synchronization problems caused when proxy is incorrect
dadubrow
parents: 163
diff changeset
   679
					installerTreeViewer.setContentProvider(new TreeNodeContentProvider());
903fa36d4afb fix some thread synchronization problems caused when proxy is incorrect
dadubrow
parents: 163
diff changeset
   680
				installerTreeViewer.setInput(LOADING_CONTENT_INPUT);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   681
				installerInfoText.setText(""); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   682
				deviceOSComboViewer.setInput(Collections.EMPTY_LIST);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   683
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   684
		});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   685
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   686
		IConnectionTypeProvider connectionTypeProvider = RemoteConnectionsActivator.getConnectionTypeProvider();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   687
		Collection<IService> services = connectionTypeProvider.getCompatibleServices(connectionType);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   688
		getInstallerProviders(services);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   689
		final TreeNode[] treeNodes = createTreeNodes(); // gets actual data from server
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   690
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   691
		Display.getDefault().asyncExec(new Runnable() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   692
			public void run() {
465
53630b3cab85 additional checks to avoid swt exceptions when early finish wizard and proxy set incorrectly
dadubrow
parents: 460
diff changeset
   693
				Control control = installerTreeViewer.getControl();
53630b3cab85 additional checks to avoid swt exceptions when early finish wizard and proxy set incorrectly
dadubrow
parents: 460
diff changeset
   694
				if (control == null || control.isDisposed())
53630b3cab85 additional checks to avoid swt exceptions when early finish wizard and proxy set incorrectly
dadubrow
parents: 460
diff changeset
   695
					return;
53630b3cab85 additional checks to avoid swt exceptions when early finish wizard and proxy set incorrectly
dadubrow
parents: 460
diff changeset
   696
				
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   697
				// update installer tree
465
53630b3cab85 additional checks to avoid swt exceptions when early finish wizard and proxy set incorrectly
dadubrow
parents: 460
diff changeset
   698
				if (installerTreeViewer.getContentProvider() == null)
53630b3cab85 additional checks to avoid swt exceptions when early finish wizard and proxy set incorrectly
dadubrow
parents: 460
diff changeset
   699
					installerTreeViewer.setContentProvider(new TreeNodeContentProvider());
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   700
				installerTreeViewer.setInput(treeNodes);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   701
				installerTreeViewer.refresh(true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   702
				
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   703
				if (treeNodes.length == 0) {
678
557efa279676 Fixes for #10354 (Linux & remote connections). Provide appropriate status for TRK/Tracing when remote connection not impemented. Do not provide installer data for now either.
Ed Swartz <ed.swartz@nokia.com>
parents: 677
diff changeset
   704
					String errorText;
557efa279676 Fixes for #10354 (Linux & remote connections). Provide appropriate status for TRK/Tracing when remote connection not impemented. Do not provide installer data for now either.
Ed Swartz <ed.swartz@nokia.com>
parents: 677
diff changeset
   705
					// TODO: the actual error condition needs to be recorded... 
557efa279676 Fixes for #10354 (Linux & remote connections). Provide appropriate status for TRK/Tracing when remote connection not impemented. Do not provide installer data for now either.
Ed Swartz <ed.swartz@nokia.com>
parents: 677
diff changeset
   706
					if (HostOS.IS_UNIX) {
557efa279676 Fixes for #10354 (Linux & remote connections). Provide appropriate status for TRK/Tracing when remote connection not impemented. Do not provide installer data for now either.
Ed Swartz <ed.swartz@nokia.com>
parents: 677
diff changeset
   707
						errorText = Messages.getString("ConnectionSettingsPage.NoInstallerSupport"); //$NON-NLS-1$
557efa279676 Fixes for #10354 (Linux & remote connections). Provide appropriate status for TRK/Tracing when remote connection not impemented. Do not provide installer data for now either.
Ed Swartz <ed.swartz@nokia.com>
parents: 677
diff changeset
   708
					} else {
557efa279676 Fixes for #10354 (Linux & remote connections). Provide appropriate status for TRK/Tracing when remote connection not impemented. Do not provide installer data for now either.
Ed Swartz <ed.swartz@nokia.com>
parents: 677
diff changeset
   709
						errorText = Messages.getString("ConnectionSettingsPage.NoInstallerDataInfoString"); //$NON-NLS-1$
557efa279676 Fixes for #10354 (Linux & remote connections). Provide appropriate status for TRK/Tracing when remote connection not impemented. Do not provide installer data for now either.
Ed Swartz <ed.swartz@nokia.com>
parents: 677
diff changeset
   710
						errorText += "\n" + Messages.getString("ConnectionSettingsPage.NoInstallerDataInfoString2"); //$NON-NLS-1$ //$NON-NLS-2$
557efa279676 Fixes for #10354 (Linux & remote connections). Provide appropriate status for TRK/Tracing when remote connection not impemented. Do not provide installer data for now either.
Ed Swartz <ed.swartz@nokia.com>
parents: 677
diff changeset
   711
					}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   712
					installerInfoText.setText(errorText);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   713
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   714
				
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   715
				// update sdk combo
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   716
				List<Pair<String, String>> deviceOSPairs = createDeviceOSPairs();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   717
				deviceOSComboViewer.setInput(deviceOSPairs);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   718
				if (!deviceOSPairs.isEmpty()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   719
					deviceOSComboViewer.getCombo().select(0);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   720
					deviceOSComboViewer.setSelection(deviceOSComboViewer.getSelection());		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   721
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   722
				else {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   723
					String errorLabel = Messages.getString("ConnectionSettingsPage.NoInstallerDataInfoString"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   724
					deviceOSComboViewer.getCombo().setItems(new String[] {errorLabel});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   725
					deviceOSComboViewer.getCombo().select(0);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   726
					deviceOSComboViewer.getCombo().setEnabled(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   727
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   728
				deviceOSComboViewer.getCombo().addFocusListener(new FocusAdapter() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   729
					public void focusGained(FocusEvent e) {
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   730
						resetServiceTesting(true);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   731
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   732
				});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   733
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   734
		});
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
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   738
	protected void setSelectionToInstallComposite(Pair<String, String> pair) {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   739
		Object input = installerTreeViewer.getInput();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   740
		if (input instanceof TreeNode[]) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   741
			TreeNode node = findTreeNodeForPair((TreeNode[]) input, pair);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   742
			if (node != null) {
1197
214c435e2d15 bug 11035 - mike's ui tweaks for installer tab
dadubrow
parents: 1166
diff changeset
   743
				installerTreeViewer.collapseAll();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   744
				installerTreeViewer.setSelection(new StructuredSelection(node));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   745
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   746
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   747
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   748
	
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   749
	private TreeNode findTreeNodeForPair(TreeNode[] treeNodes, Pair<String, String> pair) {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   750
		for (TreeNode treeNode : treeNodes) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   751
			Object value = treeNode.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   752
			if (value instanceof IRemoteAgentInstaller) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   753
				TreeNode versionNode = treeNode.getParent();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   754
				TreeNode familyNode = versionNode.getParent();
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   755
				if (ObjectUtils.equals(pair.first, familyNode.getValue()) && 
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   756
						ObjectUtils.equals(pair.second, versionNode.getValue()))
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   757
					return treeNode;
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
			TreeNode[] children = treeNode.getChildren();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   760
			if (children != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   761
				TreeNode treeNodeFromChildren = findTreeNodeForPair(children, pair);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   762
				if (treeNodeFromChildren != null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   763
					return treeNodeFromChildren;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   764
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   765
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   766
		return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   767
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   768
678
557efa279676 Fixes for #10354 (Linux & remote connections). Provide appropriate status for TRK/Tracing when remote connection not impemented. Do not provide installer data for now either.
Ed Swartz <ed.swartz@nokia.com>
parents: 677
diff changeset
   769
	@SuppressWarnings("unchecked")
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   770
	protected void testService() {
1230
71146ed4b8a1 Simplify new IConnectionFactory2
dadubrow
parents: 1220
diff changeset
   771
		Map<String, String> settings = connectionFactory.getSettingsFromUI();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   772
		boolean newConnection = connection == null || !connectionType.equals(connection.getConnectionType());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   773
		if (newConnection) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   774
			if (connection != null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   775
				connection.dispose();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   776
			connection = connectionFactory.createConnection(settings);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   777
			connection.setDisplayName("TestConnection:"+connectionType.getDisplayName()); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   778
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   779
		else {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   780
			connection.updateSettings(settings);
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
		if (newConnection || connectedService == null || !connectedService.getService().equals(service)) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   783
			disposeConnectedService();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   784
			connectedService = 
687
593d05f9d5ca Changes to remote connections
dadubrow
parents: 678
diff changeset
   785
				Registry.instance().createConnectedService(service, connection);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   786
			IStructuredSelection selection = (IStructuredSelection) deviceOSComboViewer.getSelection();
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   787
			Pair<String, String> pair = (Pair<String, String>) selection.getFirstElement();
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   788
			if (pair != null && connectedService instanceof IConnectedService2) {
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   789
				((IConnectedService2) connectedService).setDeviceOS(pair.first, pair.second);
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   790
			}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   791
			connectedService.addStatusChangedListener(statusListener = new IStatusChangedListener() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   792
				public void statusChanged(final IStatus status) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   793
					Display.getDefault().asyncExec(new Runnable() {
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
							if (!statusText.isDisposed())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   796
								statusText.setText(status.getLongDescription());
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   797
							if (status.getEStatus().equals(EStatus.UP))
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   798
								resetServiceTesting(false);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   799
						}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   800
					});
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   801
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   802
			});
894
48b544aebc83 bug 10493 - only test one service for each physical connection
dadubrow
parents: 735
diff changeset
   803
			if (connectedService instanceof AbstractConnectedService2) {
48b544aebc83 bug 10493 - only test one service for each physical connection
dadubrow
parents: 735
diff changeset
   804
				((AbstractConnectedService2) connectedService).setRunnableContext(getContainer());
163
b25acbfc406a [Bug 9085] Add new TCP/IP connection type with port mappings and new service interface to optionally provide defaults.
dadubrow
parents: 55
diff changeset
   805
				tester = new Tester();
b25acbfc406a [Bug 9085] Add new TCP/IP connection type with port mappings and new service interface to optionally provide defaults.
dadubrow
parents: 55
diff changeset
   806
				tester.start();
b25acbfc406a [Bug 9085] Add new TCP/IP connection type with port mappings and new service interface to optionally provide defaults.
dadubrow
parents: 55
diff changeset
   807
			}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   808
			isTesting = true;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   809
		}
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
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   812
	@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   813
	public void dispose() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   814
		disposeInstallerProviders();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   815
		disposeConnectedService();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   816
		if (connection != null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   817
			connection.dispose();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   818
		super.dispose();
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
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   821
	private void disposeConnectedService() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   822
		if (connectedService != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   823
			connectedService.removeStatusChangedListener(statusListener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   824
			connectedService.dispose();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   825
			connectedService = 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
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   829
	public Map<String, String> getSettings() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   830
		if (connectionFactory == null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   831
			IConnection connectionToEdit = settingsWizard.getConnectionToEdit();
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
   832
			if (connectionToEdit == null || !connectionToEdit.getConnectionType().equals(getConnectionType())) {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   833
				return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   834
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   835
			return connectionToEdit.getSettings();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   836
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   837
		return connectionFactory.getSettingsFromUI();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   838
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   839
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   840
	private void saveAs(IPackageContents packageContents) throws Exception {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   841
		InputStream is = packageContents.getInputStream();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   842
		if (is != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   843
			Shell shell = getShell();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   844
			FileDialog dialog =  new FileDialog(shell, SWT.SAVE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   845
			dialog.setText(Messages.getString("ConnectionSettingsPage.SaveAsDialogTitle"));  //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   846
			if (saveAsParent == null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   847
				saveAsParent = System.getProperty("user.home");  //$NON-NLS-1$
677
d13345e153e8 More bug #10363 fixes
Ed Swartz <ed.swartz@nokia.com>
parents: 465
diff changeset
   848
			BrowseDialogUtils.initializeFrom(dialog, new Path(saveAsParent).append(packageContents.getDefaultNameFileName()));
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   849
			dialog.setOverwrite(true); // prompt for overwrite
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   850
			String path = dialog.open();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   851
			if (path != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   852
				IPath saveAsPath = new Path(path);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   853
				saveAsParent = saveAsPath.removeLastSegments(1).toString();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   854
				File file = saveAsPath.toFile();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   855
				FileUtils.copyFile(is, file);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   856
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   857
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   858
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   859
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   860
	private void attemptInstall(IPackageContents packageContents) throws Exception {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   861
		File tempDir = FileUtils.getTemporaryDirectory();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   862
		IPath path = new Path(tempDir.getAbsolutePath());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   863
		IPath tempFilePath = path.append(packageContents.getDefaultNameFileName());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   864
		File tempFile = tempFilePath.toFile();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   865
		if (tempFile.exists())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   866
			tempFile.delete();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   867
		InputStream is = packageContents.getInputStream();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   868
		if (is != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   869
			FileUtils.copyFile(is, tempFile);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   870
			Program.launch(tempFile.getAbsolutePath());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   871
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   872
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   873
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   874
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   875
	private IRemoteAgentInstaller getCurrentInstaller() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   876
		TreeNode node = (TreeNode) ((StructuredSelection) installerTreeViewer.getSelection()).getFirstElement();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   877
		if (node != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   878
			Object value = node.getValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   879
			if (value instanceof IRemoteAgentInstaller)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   880
				return (IRemoteAgentInstaller) value;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   881
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   882
		return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   883
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   884
	
460
903fa36d4afb fix some thread synchronization problems caused when proxy is incorrect
dadubrow
parents: 163
diff changeset
   885
	private synchronized TreeNode[] createTreeNodes() {
1197
214c435e2d15 bug 11035 - mike's ui tweaks for installer tab
dadubrow
parents: 1166
diff changeset
   886
		Map<String, TreeNode> sdkFamilyToNodes = new LinkedHashMap<String, TreeNode>();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   887
		for (IRemoteAgentInstallerProvider installerProvider : installerProviders) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   888
			List<String> familyNames = installerProvider.getSDKFamilyNames(null);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   889
			for (String familyName : familyNames) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   890
				if (!sdkFamilyToNodes.containsKey(familyName))
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   891
					sdkFamilyToNodes.put(familyName, new TreeNode(familyName));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   892
				TreeNode familyNode = sdkFamilyToNodes.get(familyName);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   893
				createFamilySubNodes(familyNode, installerProvider);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   894
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   895
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   896
		return (TreeNode[]) sdkFamilyToNodes.values().toArray(new TreeNode[sdkFamilyToNodes.values().size()]);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   897
	}
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
	private void createFamilySubNodes(TreeNode familyNode, IRemoteAgentInstallerProvider installerProvider) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   900
		String familyName = familyNode.getValue().toString();
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   901
		List<String> versions = installerProvider.getVersions(familyName);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   902
		List<TreeNode> childList = new ArrayList<TreeNode>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   903
		TreeNode[] children = familyNode.getChildren();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   904
		if (children != null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   905
			childList.addAll(Arrays.asList(children));
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   906
		for (String version : versions) {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   907
			TreeNode versionNode = getVersionNode(familyNode, version);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   908
			if (versionNode == null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   909
				versionNode = new TreeNode(version);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   910
				versionNode.setParent(familyNode);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   911
				childList.add(versionNode);
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
			createInstallerNodes(versionNode, installerProvider);
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
		familyNode.setChildren((TreeNode[]) childList.toArray(new TreeNode[childList.size()]));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   916
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   917
	
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   918
	private TreeNode getVersionNode(TreeNode familyNode, String version) {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   919
		TreeNode[] children = familyNode.getChildren();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   920
		if (children != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   921
			for (TreeNode node : children) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   922
				if (node.getValue().equals(version))
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   923
					return node;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   924
			}
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
		return null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   927
	}	
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
	private void createInstallerNodes(TreeNode versionNode, IRemoteAgentInstallerProvider installerProvider) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   930
		String familyName = versionNode.getParent().getValue().toString();
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   931
		String version = versionNode.getValue().toString();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   932
		List<IRemoteAgentInstaller> installers = 
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   933
			installerProvider.getRemoteAgentInstallers(familyName, version);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   934
		List<TreeNode> childList = new ArrayList<TreeNode>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   935
		TreeNode[] children = versionNode.getChildren();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   936
		if (children != null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   937
			childList.addAll(Arrays.asList(children));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   938
		for (IRemoteAgentInstaller installer : installers) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   939
			TreeNode installerNode = new TreeNode(installer);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   940
			installerNode.setParent(versionNode);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   941
			childList.add(installerNode);
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
		versionNode.setChildren((TreeNode[]) childList.toArray(new TreeNode[childList.size()]));
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
	
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   946
	private synchronized List<Pair<String, String>> createDeviceOSPairs() {
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   947
		List<Pair<String, String>> deviceOSPairs = new ArrayList<Pair<String, String>>();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   948
		for (IRemoteAgentInstallerProvider installerProvider : installerProviders) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   949
			List<String> familyNames = installerProvider.getSDKFamilyNames(null);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   950
			for (String familyName : familyNames) {
1622
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   951
				List<String> versions = installerProvider.getVersions(familyName);
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   952
				for (String version : versions) {
f2409b13f0f8 multiple changes to remote agent installer code:
dadubrow
parents: 1230
diff changeset
   953
					Pair<String, String> pair = new Pair<String, String>(familyName, version);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   954
					if (!deviceOSPairs.contains(pair))
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   955
						deviceOSPairs.add(pair);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   956
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   957
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   958
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   959
		return deviceOSPairs;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   960
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   961
	
460
903fa36d4afb fix some thread synchronization problems caused when proxy is incorrect
dadubrow
parents: 163
diff changeset
   962
	private synchronized void getInstallerProviders(Collection<IService> services) {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   963
		if (installerProviders != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   964
			// check to see if we already have this set of installer providers
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   965
			Set<String> serviceIds = new TreeSet<String>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   966
			for (IService service : services) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   967
				if (service.getInstallerProvider() != null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   968
					serviceIds.add(service.getIdentifier());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   969
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   970
			Set<String> existingServiceIds = new TreeSet<String>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   971
			for (IRemoteAgentInstallerProvider installerProvider : installerProviders) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   972
				existingServiceIds.add(installerProvider.getService().getIdentifier());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   973
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   974
			if (serviceIds.equals(existingServiceIds))
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   975
				return;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   976
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   977
		disposeInstallerProviders();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   978
		installerProviders = new ArrayList<IRemoteAgentInstallerProvider>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   979
		for (IService service : services) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   980
			IRemoteAgentInstallerProvider installerProvider = service.getInstallerProvider();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   981
			if (installerProvider != null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   982
				installerProviders.add(installerProvider);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   983
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   984
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   985
460
903fa36d4afb fix some thread synchronization problems caused when proxy is incorrect
dadubrow
parents: 163
diff changeset
   986
	private synchronized void disposeInstallerProviders() {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   987
		if (installerProviders != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   988
			for (IRemoteAgentInstallerProvider installerProvider : installerProviders) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   989
				installerProvider.dispose();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   990
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   991
			installerProviders.clear();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   992
			installerProviders = null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   993
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   994
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   995
	
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
   996
	private void resetServiceTesting(final boolean resetAll) {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   997
		isTesting = false;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   998
		if (service == null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   999
			return;
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1000
		// may be called from a test thread
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1001
		Display.getDefault().syncExec(new Runnable() {
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1002
			public void run() {
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1003
				if (resetAll) {
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1004
					statusText.setText(STATUS_NOT_TESTED);
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1005
					serviceTestInfo.setText(service.getAdditionalServiceInfo());
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1006
					agentTestTabComposite.layout(true, true);
163
b25acbfc406a [Bug 9085] Add new TCP/IP connection type with port mappings and new service interface to optionally provide defaults.
dadubrow
parents: 55
diff changeset
  1007
					boolean wantsDeviceOS = service.getInstallerProvider() != null;
b25acbfc406a [Bug 9085] Add new TCP/IP connection type with port mappings and new service interface to optionally provide defaults.
dadubrow
parents: 55
diff changeset
  1008
					if (service instanceof IService2)
b25acbfc406a [Bug 9085] Add new TCP/IP connection type with port mappings and new service interface to optionally provide defaults.
dadubrow
parents: 55
diff changeset
  1009
						wantsDeviceOS &= ((IService2) service).wantsDeviceOS();
b25acbfc406a [Bug 9085] Add new TCP/IP connection type with port mappings and new service interface to optionally provide defaults.
dadubrow
parents: 55
diff changeset
  1010
					deviceOSComboViewer.getCombo().setEnabled(wantsDeviceOS);
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1011
				}
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1012
				disposeConnectedService();
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: 44
diff changeset
  1013
				if (!serviceTestButton.isDisposed()) {
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: 44
diff changeset
  1014
					String buttonLabel = Messages.getString("ConnectionSettingsPage.StartServiceTestButtonLabel"); //$NON-NLS-1$
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: 44
diff changeset
  1015
					serviceTestButton.setText(buttonLabel);
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: 44
diff changeset
  1016
				}
44
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1017
			}
e4eb00aa1a3f Modifying autotest behavior from connection settings page such that for each time the user request testing, test at most 3 times with success ending autotesting
dadubrow
parents: 0
diff changeset
  1018
		});
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
  1019
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
  1020
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1021
	public IConnectionType getConnectionType() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1022
		return (IConnectionType) ((IStructuredSelection) connectionTypeViewer.getSelection()).getFirstElement();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1023
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1024
	
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1025
	public String getName() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1026
		return nameText.getText().trim();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1027
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1028
	
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1029
	@SuppressWarnings("unchecked")
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1030
	private int getCurrentTypeIndex() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1031
		IConnection connectionToEdit = settingsWizard.getConnectionToEdit();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1032
		if (connectionToEdit != null) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1033
			Object input = connectionTypeViewer.getInput();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1034
			if (input != null) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1035
				Collection<IConnectionType> connectionTypes = (Collection<IConnectionType>) input;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1036
				for (int i = 0; i < connectionTypes.size(); i++) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1037
					IConnectionType connectionType = (IConnectionType) connectionTypeViewer.getElementAt(i);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1038
					if (connectionToEdit.getConnectionType().equals(connectionType))
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1039
						return i;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1040
				}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1041
			}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1042
		}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1043
		return 0;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1044
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1045
	
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1046
	private Collection<IConnectionType> getConnectionTypes() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1047
		Collection<IConnectionType> connectionTypes = getValidConnectionTypes();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1048
		IService serviceToRestrict = settingsWizard.getServiceToRestrict();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1049
		if (serviceToRestrict != null) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1050
			List<IConnectionType> restrictedConnectionTypes = new ArrayList<IConnectionType>();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1051
			Collection<String> compatibleConnectionTypeIds = 
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1052
				Registry.instance().getCompatibleConnectionTypeIds(serviceToRestrict);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1053
			for (String connectionTypeId : compatibleConnectionTypeIds) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1054
				IConnectionType connectionType = 
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1055
					Registry.instance().getConnectionType(connectionTypeId);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1056
				if (connectionTypes.contains(connectionType))
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1057
					restrictedConnectionTypes.add(connectionType);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1058
			}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1059
			return restrictedConnectionTypes;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1060
		}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1061
		
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1062
		return connectionTypes;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1063
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1064
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1065
	private String getInitialNameText() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1066
		IConnection connectionToEdit = settingsWizard.getConnectionToEdit();
1166
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1067
		if (connectionToEdit != null) {
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1068
			return connectionToEdit.getDisplayName();
1166
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1069
		}
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1070
		
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1071
		long i = 1;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1072
		while (true) {
1166
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1073
			String name = MessageFormat.format(INITIAL_NAME_FMT, CONNECTION_PREFIX, Long.toString(i++));
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1074
			if (isNameUnique(name)) {
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1075
				return name;
1166
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1076
			}
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1077
		}
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1078
	}
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1079
1230
71146ed4b8a1 Simplify new IConnectionFactory2
dadubrow
parents: 1220
diff changeset
  1080
	private String ensureUniquePreferredName(String preferredName) {
1166
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1081
		if (isNameUnique(preferredName)) {
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1082
			return preferredName;
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1083
		}
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1084
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1085
		long i = 1;
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1086
		while (true) {
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1087
			String name = MessageFormat.format(INITIAL_NAME_FMT, preferredName, Long.toString(i++));
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1088
			if (isNameUnique(name)) {
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1089
				return name;
4e2ef6f4eab3 Improved handling of auto-generated connection name in remote connections wizard.
stechong
parents: 1161
diff changeset
  1090
			}
1161
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1091
		}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1092
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1093
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1094
	private String getServicesString(IConnectionType connectionType) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1095
		StringBuilder servicesString = new StringBuilder();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1096
		Collection<IService> services = 
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1097
			Registry.instance().getCompatibleServices(connectionType);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1098
		if (services == null || services.isEmpty())
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1099
			return ""; //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1100
		for (Iterator<IService> iterator = services.iterator(); iterator.hasNext();) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1101
			servicesString.append(iterator.next().getDisplayName());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1102
			if (iterator.hasNext())
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1103
				servicesString.append(", "); //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1104
		}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1105
		
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1106
		return MessageFormat.format(Messages.getString("ConnectionTypePage.SupportedServicesLabel"), new Object[] { servicesString.toString() }); //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1107
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1108
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1109
	private Collection<IConnectionType> getValidConnectionTypes() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1110
		// valid connection types have at least one compatible service, or are the actual connection type of the connection being edited
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1111
		IConnection connectionToEdit = settingsWizard.getConnectionToEdit();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1112
		IConnectionType connectionTypeToEdit = connectionToEdit != null ? connectionToEdit.getConnectionType() : null;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1113
		Collection<IConnectionType> allConnectionTypes = 
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1114
		Registry.instance().getConnectionTypes();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1115
		Collection<IConnectionType> connectionTypes = new ArrayList<IConnectionType>();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1116
		for (IConnectionType connectionType : allConnectionTypes) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1117
			if (!Registry.instance().getCompatibleServices(connectionType).isEmpty() ||
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1118
					connectionType.equals(connectionTypeToEdit))
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1119
				connectionTypes.add(connectionType);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1120
		}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1121
		return connectionTypes;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1122
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1123
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1124
	private boolean isNameUnique(String name) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1125
		boolean inUse = Registry.instance().connectionNameInUse(name);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1126
		IConnection connectionToEdit = settingsWizard.getConnectionToEdit();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1127
		if (connectionToEdit != null && inUse)
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1128
			inUse = !name.equals(connectionToEdit.getDisplayName());
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1129
		
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1130
		return !inUse;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1131
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1132
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1133
	private boolean validatePage() {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1134
		setErrorMessage(null);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1135
		String name = getName();
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1136
		boolean isValid = isNameUnique(name);
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1137
		if (!isValid) {
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1138
			setErrorMessage(MessageFormat.format(Messages.getString("ConnectionTypePage.ConnectionNameInUseError"), new Object[] { name } )); //$NON-NLS-1$
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1139
		}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1140
		
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1141
		return isValid;
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1142
	}
b028057ccaf8 Updated remote connections wizard.
stechong
parents: 894
diff changeset
  1143
	
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
  1144
}