core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/SDKPreferencePage.java
author stechong
Tue, 31 Aug 2010 10:28:49 -0500
changeset 1928 cfa3a98b5df2
parent 1805 1d57e533b09e
child 1986 30130ea9becd
permissions -rw-r--r--
Fix for Bug 11967 [SDK pref - Error message not updated as soon as error fixed, have to click off and back again].
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
/*
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
     2
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
0
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
package com.nokia.carbide.cpp.internal.sdk.ui;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    18
1746
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    19
import java.io.File;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    20
import java.text.MessageFormat;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    21
import java.util.Iterator;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    22
import java.util.List;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    23
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    24
import org.eclipse.core.runtime.IPath;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    25
import org.eclipse.core.runtime.Path;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    26
import org.eclipse.jface.dialogs.MessageDialog;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    27
import org.eclipse.jface.preference.PreferencePage;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    28
import org.eclipse.jface.viewers.ArrayContentProvider;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    29
import org.eclipse.jface.viewers.CellEditor;
1746
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    30
import org.eclipse.jface.viewers.CheckboxTableViewer;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    31
import org.eclipse.jface.viewers.ColumnViewer;
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
    32
import org.eclipse.jface.viewers.ColumnViewerEditor;
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
    33
import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
    34
import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    35
import org.eclipse.jface.viewers.EditingSupport;
1746
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    36
import org.eclipse.jface.viewers.ISelectionChangedListener;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    37
import org.eclipse.jface.viewers.IStructuredSelection;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    38
import org.eclipse.jface.viewers.ITableColorProvider;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    39
import org.eclipse.jface.viewers.ITableLabelProvider;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    40
import org.eclipse.jface.viewers.LabelProvider;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    41
import org.eclipse.jface.viewers.SelectionChangedEvent;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    42
import org.eclipse.jface.viewers.StructuredSelection;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    43
import org.eclipse.jface.viewers.TableViewerColumn;
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
    44
import org.eclipse.jface.viewers.TableViewerEditor;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    45
import org.eclipse.jface.viewers.TextCellEditor;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    46
import org.eclipse.swt.SWT;
1746
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    47
import org.eclipse.swt.events.SelectionAdapter;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    48
import org.eclipse.swt.events.SelectionEvent;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    49
import org.eclipse.swt.events.SelectionListener;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    50
import org.eclipse.swt.graphics.Color;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    51
import org.eclipse.swt.graphics.Image;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    52
import org.eclipse.swt.layout.GridData;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    53
import org.eclipse.swt.layout.GridLayout;
1746
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    54
import org.eclipse.swt.widgets.Button;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    55
import org.eclipse.swt.widgets.Composite;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    56
import org.eclipse.swt.widgets.Control;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    57
import org.eclipse.swt.widgets.DirectoryDialog;
1746
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    58
import org.eclipse.swt.widgets.Label;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    59
import org.eclipse.swt.widgets.Shell;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    60
import org.eclipse.swt.widgets.Table;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    61
import org.eclipse.swt.widgets.Text;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    62
import org.eclipse.ui.ISharedImages;
1746
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    63
import org.eclipse.ui.IWorkbench;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    64
import org.eclipse.ui.IWorkbenchPreferencePage;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    65
import org.eclipse.ui.PlatformUI;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    66
743
78fd666a897a Fix filesystem caching performance as in bug #10318
Ed Swartz <ed.swartz@nokia.com>
parents: 608
diff changeset
    67
import com.nokia.carbide.cpp.internal.api.sdk.SymbianBuildContextDataCache;
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1431
diff changeset
    68
import com.nokia.carbide.cpp.internal.sdk.core.model.SymbianSDK;
1746
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    69
import com.nokia.carbide.cpp.sdk.core.ISDKManager;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    70
import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
9c38a34cfd42 change title + fix NPE
dadubrow
parents: 1734
diff changeset
    71
import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    72
import com.nokia.carbide.cpp.sdk.ui.shared.AddSDKDialog;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    73
import com.nokia.carbide.cpp.ui.TextAndDialogCellEditor;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    74
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
    75
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    76
public class SDKPreferencePage
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    77
	extends PreferencePage
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    78
	implements IWorkbenchPreferencePage {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    79
	
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
    80
	private class SDKLabelProvider extends LabelProvider implements ITableLabelProvider, ITableColorProvider {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    81
		public Image getColumnImage(Object element, int columnIndex) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    82
			return null;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    83
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    84
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    85
		public String getColumnText(Object element, int columnIndex) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    86
			ISymbianSDK sdk = (ISymbianSDK) element;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    87
			switch (columnIndex) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    88
			case 1:
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    89
				return sdk.getUniqueId();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    90
			case 2:
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    91
				return sdk.getEPOCROOT();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    92
			default:
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    93
				return "";
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    94
			}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    95
		}
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
    96
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
    97
		public Color getForeground(Object element, int columnIndex) {
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
    98
			ISymbianSDK sdk = (ISymbianSDK) element;
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
    99
			return updateSDKcolor(sdk);
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   100
		}
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   101
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   102
		public Color getBackground(Object element, int columnIndex) {
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   103
			return white;
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   104
		}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   105
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   106
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   107
	private class IdEditingSupport extends EditingSupport {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   108
		private TextCellEditor editor;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   109
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   110
		public IdEditingSupport(ColumnViewer viewer) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   111
			super(viewer);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   112
			editor = new TextCellEditor((Composite) viewer.getControl());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   113
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   114
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   115
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   116
		protected boolean canEdit(Object element) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   117
			if (element instanceof ISymbianSDK) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   118
				return true;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   119
			}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   120
			return false;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   121
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   122
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   123
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   124
		protected CellEditor getCellEditor(Object element) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   125
			return editor;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   126
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   127
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   128
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   129
		protected Object getValue(Object element) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   130
			ISymbianSDK sdk = (ISymbianSDK) element;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   131
			return sdk.getUniqueId();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   132
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   133
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   134
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   135
		protected void setValue(Object element, Object value) {
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   136
			String sdkID = value.toString();
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   137
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   138
			// check for spaces in ID
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   139
			if (sdkID.contains(" ")){ //$NON-NLS-1$
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   140
				MessageDialog.openError(getShell(), Messages.getString("AddSDKDialog.Invalid_SDK_ID"), Messages.getString("AddSDKDialog.SDK_ID_No_Spaces")); //$NON-NLS-1$ //$NON-NLS-2$
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   141
				return;
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   142
			}
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   143
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   144
			ISymbianSDK sdk = (ISymbianSDK) element;
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1431
diff changeset
   145
			((SymbianSDK)sdk).setUniqueId(sdkID);
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   146
			SDKCorePlugin.getSDKManager().updateSDK(sdk);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   147
			getViewer().refresh();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   148
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   149
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   150
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   151
	private class LocationEditingSupport extends EditingSupport {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   152
		private LocationCellEditor editor;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   153
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   154
		public LocationEditingSupport(ColumnViewer viewer) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   155
			super(viewer);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   156
			editor = new LocationCellEditor((Composite) viewer.getControl());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   157
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   158
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   159
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   160
		protected boolean canEdit(Object element) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   161
			if (element instanceof ISymbianSDK) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   162
				return true;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   163
			}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   164
			return false;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   165
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   166
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   167
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   168
		protected CellEditor getCellEditor(Object element) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   169
			return editor;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   170
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   171
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   172
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   173
		protected Object getValue(Object element) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   174
			ISymbianSDK sdk = (ISymbianSDK) element;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   175
			return sdk.getEPOCROOT();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   176
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   177
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   178
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   179
		protected void setValue(Object element, Object value) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   180
			ISymbianSDK sdk = (ISymbianSDK) element;
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1456
diff changeset
   181
			((SymbianSDK)sdk).setEPOCROOT(value.toString());
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   182
			SDKCorePlugin.getSDKManager().updateSDK(sdk);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   183
			getViewer().refresh();
1928
cfa3a98b5df2 Fix for Bug 11967 [SDK pref - Error message not updated as soon as error fixed, have to click off and back again].
stechong
parents: 1805
diff changeset
   184
			updateSDKStatus(sdk);
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   185
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   186
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   187
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   188
	private class LocationCellEditor extends TextAndDialogCellEditor {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   189
		private Button button;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   190
		private Text text;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   191
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   192
		public LocationCellEditor(Composite parent) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   193
			super(parent);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   194
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   195
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   196
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   197
		protected Control createContents(Composite parent) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   198
			text = (Text) super.createContents(parent);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   199
			return text;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   200
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   201
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   202
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   203
		protected Control createControl(Composite parent) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   204
			Control control = super.createControl(parent);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   205
			button = getButton();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   206
			button.setText(Messages.getString("SDKPreferencePage.Browse_Location_Label")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   207
			return control;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   208
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   209
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   210
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   211
		protected Object openDialogBox(Control cellEditorWindow) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   212
			DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.OPEN);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   213
			BrowseDialogUtils.initializeFrom(dialog, text);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   214
			return dialog.open();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   215
		}		
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   216
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   217
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   218
	private class SDKViewerStrategy extends ColumnViewerEditorActivationStrategy {
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   219
		public SDKViewerStrategy(ColumnViewer viewer) {
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   220
			super(viewer);
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   221
		}
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   222
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   223
		@Override
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   224
		protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   225
			return (event.eventType ==  ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION);
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   226
		}
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   227
	}
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   228
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   229
	private ISDKManager sdkMgr;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   230
	private List<ISymbianSDK> sdkList;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   231
	private CheckboxTableViewer sdkListTableViewer;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   232
	private Button addButton;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   233
	private Button deleteButton;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   234
	private Button propertiesButton;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   235
	private Button rescanButton;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   236
	private Label iconLabel;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   237
	private Label statusLabel;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   238
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   239
	private Color black;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   240
	private Color gray;
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   241
	private Color red;
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   242
	private Color white;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   243
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   244
	/**
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   245
	 * Constructor.
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   246
	 */
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   247
	public SDKPreferencePage() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   248
		super();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   249
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   250
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   251
	/*
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   252
	 * (non-Javadoc)
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   253
	 * @see org.eclipse.jface.preference.PreferencePage#createControl(org.eclipse.swt.widgets.Composite)
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   254
	 */
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   255
	public void createControl(Composite parent){
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   256
		if (sdkMgr == null) {
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   257
			sdkMgr = SDKCorePlugin.getSDKManager();
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   258
		}
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   259
		if (sdkMgr == null) {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   260
			return; 
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   261
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   262
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   263
		super.createControl(parent);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   264
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   265
		// Hide "Restore Defaults" button
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   266
		getDefaultsButton().setVisible(false);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   267
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   268
		PlatformUI.getWorkbench().getHelpSystem().setHelp(super.getControl(), SDKUIHelpIds.SDK_PREFERENCES_PAGE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   269
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   270
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   271
	/*
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   272
	 * (non-Javadoc)
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   273
	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   274
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   275
	public void init(IWorkbench workbench) {
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   276
		if (sdkMgr == null) {
1756
bd6f1436505a ensure sdk mgr for both pref page and portal layer
dadubrow
parents: 1753
diff changeset
   277
			sdkMgr = SDKCorePlugin.getSDKManager();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   278
		}
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   279
		if (sdkMgr != null) {
1743
b94a1c13f1e5 Merge from default.
stechong
parents: 1730 1734
diff changeset
   280
			sdkList = sdkMgr.getSDKList();
b94a1c13f1e5 Merge from default.
stechong
parents: 1730 1734
diff changeset
   281
		}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   282
	}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   283
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   284
	/*
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   285
	 * (non-Javadoc)
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   286
	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   287
	 */
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   288
	public boolean performOk() {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   289
		// Remember which SDK is enabled
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   290
		for (ISymbianSDK sdk : sdkMgr.getSDKList()) {
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1431
diff changeset
   291
			((SymbianSDK)sdk).setEnabled(false);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   292
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   293
		Object[] sdkObjects = sdkListTableViewer.getCheckedElements();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   294
		for (Object currObj : sdkObjects){
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   295
			if (currObj instanceof ISymbianSDK){
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   296
				ISymbianSDK sdk = (ISymbianSDK)currObj;
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1431
diff changeset
   297
				((SymbianSDK)sdk).setEnabled(true);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   298
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   299
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   300
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   301
		// Update cached SDK info
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   302
		sdkMgr.updateCarbideSDKCache();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   303
		return super.performOk();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   304
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   305
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   306
	/*
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   307
	 * (non-Javadoc)
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   308
	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   309
	 */
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   310
	@Override
1730
e0e324a4ef67 make createContents public so Carbide portal can access SDK Prefs to draw it.
timkelly
parents: 1700
diff changeset
   311
	public Control createContents(Composite parent) {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   312
		// Set up colors used in this preference page
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   313
		Shell shell = parent.getShell();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   314
		black = shell.getDisplay().getSystemColor(SWT.COLOR_BLACK);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   315
		gray = shell.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   316
		red = shell.getDisplay().getSystemColor(SWT.COLOR_RED);
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   317
		white = shell.getDisplay().getSystemColor(SWT.COLOR_WHITE);
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   318
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   319
		Composite content = new Composite(parent, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   320
		GridLayout gridLayout = new GridLayout();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   321
		gridLayout.numColumns = 2;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   322
		content.setLayout(gridLayout);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   323
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   324
		// SDK table
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   325
		sdkListTableViewer = CheckboxTableViewer.newCheckList(content, 
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   326
				SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   327
		createSDKTable();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   328
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   329
		// Buttons composite
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   330
		Composite composite1 = new Composite(content, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   331
		gridLayout = new GridLayout();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   332
		gridLayout.makeColumnsEqualWidth = true;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   333
		composite1.setLayout(gridLayout);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   334
		GridData gridData = new GridData(SWT.LEFT, SWT.TOP, true, false);
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   335
		composite1.setLayoutData(gridData);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   336
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   337
		// Add button
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   338
		addButton = new Button(composite1, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   339
		addButton.setLayoutData(gridData);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   340
		addButton.setText(Messages.getString("SDKPreferencePage.Add_Button_Label")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   341
		addButton.setToolTipText(Messages.getString("SDKPreferencePage.Add_Button_ToolTip")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   342
		addButtonListener(addButton);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   343
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   344
		// Delete button
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   345
		deleteButton = new Button(composite1, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   346
		deleteButton.setLayoutData(gridData);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   347
		deleteButton.setText(Messages.getString("SDKPreferencePage.Delete_Button_Label")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   348
		deleteButton.setToolTipText(Messages.getString("SDKPreferencePage.Delete_Button_ToolTip")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   349
		addButtonListener(deleteButton);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   350
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   351
		// Properties button
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   352
		propertiesButton = new Button(composite1, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   353
		propertiesButton.setLayoutData(gridData);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   354
		propertiesButton.setText(Messages.getString("SDKPreferencePage.Properties_Button_Label")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   355
		propertiesButton.setToolTipText(Messages.getString("SDKPreferencePage.Properties_Button_ToolTip")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   356
		addButtonListener(propertiesButton);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   357
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   358
		// Status and Rescan composite
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   359
		Composite composite2 = new Composite(content, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   360
		gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   361
		gridData.widthHint = 350;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   362
		gridData.heightHint = 50;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   363
		composite2.setLayoutData(gridData);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   364
		gridLayout = new GridLayout();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   365
		gridLayout.numColumns = 2;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   366
		composite2.setLayout(gridLayout);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   367
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   368
		// IStatus icon label
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   369
		iconLabel = new Label(composite2, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   370
		// IStatus text label
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   371
		statusLabel = new Label(composite2, SWT.WRAP);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   372
		gridData = new GridData(SWT.LEFT, SWT.TOP, true, false);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   373
		gridData.verticalSpan = 2;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   374
		statusLabel.setLayoutData(gridData);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   375
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   376
		new Label(content, SWT.WRAP); // filler
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   377
		
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   378
		// Rescan button
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   379
		rescanButton = new Button(content, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   380
		rescanButton.setToolTipText(Messages.getString("SDKPreferencePage.Rescan_Button_ToolTip")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   381
		rescanButton.setText(Messages.getString("SDKPreferencePage.Rescan_Button_Label")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   382
		addButtonListener(rescanButton);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   383
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   384
		// Populate SDK table
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   385
		addSDKComponentTableItems();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   386
		selectSDKEntry(0);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   387
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   388
		return content;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   389
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   390
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   391
	private void addButtonListener(final Button aButton) {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   392
		SelectionListener listener = new SelectionAdapter() {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   393
			public void widgetSelected(SelectionEvent e)  {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   394
				if (e.getSource().equals(addButton)) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   395
					handleAddButton();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   396
				} else if (e.getSource().equals(deleteButton)) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   397
					handleDeleteButton();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   398
				} else if (e.getSource().equals(propertiesButton)) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   399
					handlePropertiesButton();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   400
				} else if (e.getSource().equals(rescanButton)) {
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   401
					handleRescanButton(false);
0
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
		aButton.addSelectionListener(listener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   406
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   407
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   408
	private void addSDKComponentTableItems() {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   409
		sdkListTableViewer.setLabelProvider(new SDKLabelProvider());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   410
		sdkListTableViewer.setContentProvider(new ArrayContentProvider());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   411
		sdkList = sdkMgr.getSDKList();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   412
		sdkListTableViewer.setInput(sdkList.toArray());
1451
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   413
		Table table = sdkListTableViewer.getTable();
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   414
		int count = table.getItemCount();
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   415
		if (count < 10) {	// min. number of rows
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   416
			count = 10;
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   417
		} else 
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   418
		if (count > 20) {	// max. number of rows
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   419
			count = 20;
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   420
		}
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   421
		table.setToolTipText(Messages.getString("SDKPreferencePage.List_of_Available_SDKs_ToolTip")); //$NON-NLS-1$
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   422
		GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   423
		gridData.widthHint = 350;
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   424
		gridData.heightHint = table.getItemHeight() * (count + 2);
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   425
		table.setLayoutData(gridData);
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   426
		setCheckedElements();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   427
		addSDKTableViewerListeners();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   428
		if (sdkList == null || sdkList.size() == 0){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   429
			statusError(Messages.getString("SDKPreferencePage.No_SDKs_Available_Message")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   430
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   431
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   432
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   433
	private void addSDKTableViewerListeners(){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   434
		sdkListTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   435
			public void selectionChanged(SelectionChangedEvent event) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   436
				if(event.getSelection() instanceof IStructuredSelection) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   437
					IStructuredSelection selection = (IStructuredSelection)event.getSelection();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   438
					if (selection.size() == 1){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   439
						ISymbianSDK sdk = (ISymbianSDK)selection.getFirstElement();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   440
						deleteButton.setEnabled(true);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   441
						propertiesButton.setEnabled(true);		
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   442
						updateSDKStatus(sdk);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   443
					}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   444
					else {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   445
						deleteButton.setEnabled(false);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   446
						propertiesButton.setEnabled(false);			        	   
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   447
					}	
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   448
				}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   449
			}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   450
		});
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   451
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   452
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   453
	private void createSDKTable() {
1451
1d88f6209d70 Add SDK version info back to SDK properties dialog; more changes to make table in SDK preference page resizable.
stechong
parents: 1446
diff changeset
   454
		Table table = sdkListTableViewer.getTable();
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   455
		table.setHeaderVisible(true);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   456
		table.setLinesVisible(false);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   457
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   458
		SDKViewerStrategy strategy = new SDKViewerStrategy(sdkListTableViewer);
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   459
		TableViewerEditor.create(sdkListTableViewer, strategy, ColumnViewerEditor.DEFAULT);
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   460
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   461
		TableViewerColumn enabledCol = new TableViewerColumn(sdkListTableViewer, SWT.LEFT);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   462
		enabledCol.getColumn().setText(Messages.getString("SDKPreferencePage.SDK_Table_Enabled_Column_Label")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   463
		enabledCol.getColumn().setWidth(50);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   464
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   465
		TableViewerColumn idCol = new TableViewerColumn(sdkListTableViewer, SWT.LEFT);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   466
		idCol.setEditingSupport(new IdEditingSupport(sdkListTableViewer)); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   467
		idCol.getColumn().setText(Messages.getString("SDKPreferencePage.SDK_Table_ID_Column_Label"));
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   468
		idCol.getColumn().setWidth(160);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   469
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   470
		TableViewerColumn locationCol = new TableViewerColumn(sdkListTableViewer, SWT.LEFT);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   471
		locationCol.setEditingSupport(new LocationEditingSupport(sdkListTableViewer));
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   472
		locationCol.getColumn().setText(Messages.getString("SDKPreferencePage.SDK_Table_Location_Column_Label")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   473
		locationCol.getColumn().setWidth(170);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   474
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   475
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   476
	public void handleAddButton() {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   477
		AddSDKDialog dialog = new AddSDKDialog(getShell());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   478
		if (dialog.open() == AddSDKDialog.OK){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   479
			sdkList = sdkMgr.getSDKList();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   480
			sdkListTableViewer.setInput(sdkList.toArray());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   481
			setCheckedElements();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   482
			sdkListTableViewer.refresh();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   483
			selectSDKEntry(sdkList.size() - 1);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   484
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   485
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   486
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   487
	public void handleDeleteButton() {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   488
		ISymbianSDK sdk = (ISymbianSDK)((IStructuredSelection)sdkListTableViewer.getSelection()).getFirstElement();
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   489
		int index = sdkListTableViewer.getTable().getSelectionIndex();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   490
		if (sdk != null){
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   491
			if (sdkMgr.removeSDK(sdk.getUniqueId())){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   492
				sdkList = sdkMgr.getSDKList();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   493
				sdkListTableViewer.setInput(sdkList.toArray());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   494
				if (index > 0) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   495
					selectSDKEntry(index - 1);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   496
				} else {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   497
					selectSDKEntry(index);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   498
				}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   499
				sdkListTableViewer.refresh();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   500
			}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   501
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   502
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   503
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   504
	public void handlePropertiesButton() {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   505
		ISymbianSDK sdk = (ISymbianSDK)((IStructuredSelection)sdkListTableViewer.getSelection()).getFirstElement();
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   506
		int index = sdkListTableViewer.getTable().getSelectionIndex();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   507
		if (sdk != null){
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   508
			SDKPropertiesDialog sdkPropDlg = new SDKPropertiesDialog(getShell(), sdk);
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   509
			sdkPropDlg.open();
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   510
			selectSDKEntry(index);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   511
		} else {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   512
			MessageDialog.openError(getShell(), Messages.getString("SDKPreferencePage.No_SDK_Selected"), Messages.getString("SDKPreferencePage.No_selected_SDK_detected")); //$NON-NLS-1$ //$NON-NLS-2$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   513
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   514
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   515
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   516
	public void handleRescanButton(boolean fromPortalPage) {
743
78fd666a897a Fix filesystem caching performance as in bug #10318
Ed Swartz <ed.swartz@nokia.com>
parents: 608
diff changeset
   517
		// forcible rescan; dump cache
78fd666a897a Fix filesystem caching performance as in bug #10318
Ed Swartz <ed.swartz@nokia.com>
parents: 608
diff changeset
   518
		SymbianBuildContextDataCache.refreshForSDKs(null);
1456
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   519
		startRescanning();
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   520
		sdkMgr.scanSDKs();
1456
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   521
		finishRescanning();
483
34f888c29813 Fix Bug 9787 - Carbide gets its SDK list out of sync with devices.xml
timkelly
parents: 335
diff changeset
   522
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   523
1456
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   524
	private void startRescanning() {
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   525
		rescanButton.setText(Messages.getString("SDKPreferencePage.Rescanning_Button_Label")); //$NON-NLS-1$
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   526
		rescanButton.setEnabled(false);
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   527
	}
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   528
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   529
	private void finishRescanning(){
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   530
		sdkListTableViewer.getTable().clearAll();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   531
		sdkListTableViewer.refresh();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   532
		sdkList.clear();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   533
		sdkList = sdkMgr.getSDKList();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   534
		addSDKComponentTableItems();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   535
		sdkListTableViewer.refresh();
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   536
		selectSDKEntry(0);
1456
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   537
		rescanButton.setText(Messages.getString("SDKPreferencePage.Rescan_Button_Label")); //$NON-NLS-1$
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   538
		rescanButton.setEnabled(true);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   539
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   540
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   541
	public void selectSDKEntry(int index) {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   542
		ISymbianSDK sdk = (ISymbianSDK)sdkListTableViewer.getElementAt(index);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   543
		if (sdk != null){
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   544
			sdkListTableViewer.setSelection(new StructuredSelection(sdk), true);
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   545
			sdkListTableViewer.getTable().setFocus();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   546
		}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   547
		updateSDKStatus(sdk);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   548
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   549
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   550
	private void setCheckedElements() {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   551
		Iterator<ISymbianSDK> iterator = sdkList.iterator();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   552
		while (iterator.hasNext()) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   553
			ISymbianSDK sdk = iterator.next();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   554
			sdkListTableViewer.setChecked(sdk, sdk.isEnabled());
483
34f888c29813 Fix Bug 9787 - Carbide gets its SDK list out of sync with devices.xml
timkelly
parents: 335
diff changeset
   555
		}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   556
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   557
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   558
	private void statusClear() {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   559
		iconLabel.setImage(null);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   560
		statusLabel.setText("");
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   561
	}
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   562
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   563
	private void statusError(String msg) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   564
		String errorMsg = "Error : " + msg;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   565
		iconLabel.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK));
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   566
		statusLabel.setText(errorMsg);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   567
		statusLabel.setForeground(red);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   568
		statusLabel.setBackground(gray);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   569
		statusLabel.update();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   570
		statusLabel.getParent().layout(true);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   571
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   572
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   573
	private void statusWarning(String msg) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   574
		String warningMsg = "Warning : " + msg; //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   575
		iconLabel.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK));
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   576
		statusLabel.setText(warningMsg);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   577
		statusLabel.setForeground(black);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   578
		statusLabel.setBackground(gray);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   579
		statusLabel.update();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   580
		statusLabel.getParent().layout(true);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   581
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   582
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   583
	private void statusInfo(String msg) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   584
		String infoMsg = "Info : " + msg; //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   585
		iconLabel.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_INFO_TSK));
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   586
		statusLabel.setText(infoMsg);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   587
		statusLabel.setForeground(black);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   588
		statusLabel.setBackground(gray);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   589
		statusLabel.update();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   590
		statusLabel.getParent().layout(true);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   591
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   592
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   593
	private Color updateSDKcolor(ISymbianSDK sdk){
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   594
		Color color = black;
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   595
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   596
		// Check SDK EPOCROOT
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   597
		String epocRootStr = sdk.getEPOCROOT();
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   598
		IPath epocRoot = new Path(epocRootStr);
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   599
		epocRoot = epocRoot.append("epoc32");
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   600
		File epocRootFile = epocRoot.toFile();
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   601
		if (!epocRootFile.exists()) {
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   602
			color = red;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   603
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   604
		
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   605
		// Check SDK OS Version
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   606
		if ((sdk.getOSVersion().getMajor() < 9 ||
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   607
			(sdk.getOSVersion().getMajor() == 9 && sdk.getOSVersion().getMinor() < 4))) {
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   608
			color = red;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   609
		}
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   610
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   611
		return color;
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   612
	}
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   613
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   614
	private void updateSDKStatus(ISymbianSDK sdk){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   615
		// No SDK selected
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   616
		if (sdk == null) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   617
			statusWarning(Messages.getString("SDKPreferencePage.No_SDKs_Available_Message")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   618
			return;
1350
653fc45456c4 Remove ABLD support (and support for OS 9.4 and less)
timkelly
parents: 743
diff changeset
   619
		} else {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   620
			// Check SDK EPOCROOT
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   621
			String epocRootStr = sdk.getEPOCROOT();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   622
			IPath epocRoot = new Path(epocRootStr);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   623
			epocRoot = epocRoot.append("epoc32");
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   624
			File epocRootFile = epocRoot.toFile();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   625
			if (!epocRootFile.exists()) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   626
				statusError(Messages.getString("SDKPreferencePage.Invalid_Location_Message")); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   627
				return;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   628
			}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   629
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   630
			// Check SDK OS Version
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   631
			if ((sdk.getOSVersion().getMajor() < 9 ||
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   632
				(sdk.getOSVersion().getMajor() == 9 && sdk.getOSVersion().getMinor() < 4))) {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   633
				statusError(MessageFormat.format(
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   634
						Messages.getString("SDKPreferencePage.Invalid_SDK_Message"),  //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   635
						sdk.getOSVersion().toString())); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   636
				return;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   637
			}			
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   638
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   639
			// No error
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   640
			statusClear();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   641
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   642
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   643
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   644
	public void updateForPortalLayer() {
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   645
		addButton.setVisible(false);
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   646
		deleteButton.setVisible(false);
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   647
		propertiesButton.setVisible(false);
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   648
		rescanButton.setVisible(false);
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   649
		getApplyButton().setVisible(false);
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   650
		GridLayout gridLayout = new GridLayout();
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   651
		sdkListTableViewer.getTable().getParent().setLayout(gridLayout);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   652
	}
1761
bd89f0317b13 Updated SDK preference page to make it more portal friendly.
stechong
parents: 1743
diff changeset
   653
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   654
}