core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/SDKPreferencePage.java
author stechong
Tue, 27 Jul 2010 15:03:22 -0500
branchC3_BUILDER_WORK
changeset 1700 aa833f2c99b6
parent 1699 0cfa8e449823
child 1730 e0e324a4ef67
permissions -rw-r--r--
Removed scanJobListener since it's no logner used.
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
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    19
import java.io.File;
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;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    30
import org.eclipse.jface.viewers.CheckboxTableViewer;
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;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    36
import org.eclipse.jface.viewers.ISelectionChangedListener;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    37
import org.eclipse.jface.viewers.IStructuredSelection;
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
    38
import org.eclipse.jface.viewers.ITableColorProvider;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    39
import org.eclipse.jface.viewers.ITableLabelProvider;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    40
import org.eclipse.jface.viewers.LabelProvider;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    41
import org.eclipse.jface.viewers.SelectionChangedEvent;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    42
import org.eclipse.jface.viewers.StructuredSelection;
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;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    47
import org.eclipse.swt.events.SelectionAdapter;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    48
import org.eclipse.swt.events.SelectionEvent;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
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;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    54
import org.eclipse.swt.widgets.Button;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    55
import org.eclipse.swt.widgets.Composite;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    56
import org.eclipse.swt.widgets.Control;
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;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    58
import org.eclipse.swt.widgets.Label;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    59
import org.eclipse.swt.widgets.Shell;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    60
import org.eclipse.swt.widgets.Table;
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;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    63
import org.eclipse.ui.IWorkbench;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    64
import org.eclipse.ui.IWorkbenchPreferencePage;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
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;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    69
import com.nokia.carbide.cpp.sdk.core.ISDKManager;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
    70
import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
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();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   184
		}
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
	private class LocationCellEditor extends TextAndDialogCellEditor {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   188
		private Button button;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   189
		private Text text;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   190
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   191
		public LocationCellEditor(Composite parent) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   192
			super(parent);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   193
		}
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
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   196
		protected Control createContents(Composite parent) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   197
			text = (Text) super.createContents(parent);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   198
			return text;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   199
		}
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
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   202
		protected Control createControl(Composite parent) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   203
			Control control = super.createControl(parent);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   204
			button = getButton();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   205
			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
   206
			return control;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   207
		}
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
		@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   210
		protected Object openDialogBox(Control cellEditorWindow) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   211
			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
   212
			BrowseDialogUtils.initializeFrom(dialog, text);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   213
			return dialog.open();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   214
		}		
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
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   217
	private class SDKViewerStrategy extends ColumnViewerEditorActivationStrategy {
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   218
		public SDKViewerStrategy(ColumnViewer viewer) {
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   219
			super(viewer);
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   220
		}
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
		@Override
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   223
		protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   224
			return (event.eventType ==  ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION);
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   225
		}
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
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   228
	private ISDKManager sdkMgr;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   229
	private List<ISymbianSDK> sdkList;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   230
	private CheckboxTableViewer sdkListTableViewer;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   231
	private Button addButton;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   232
	private Button deleteButton;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   233
	private Button propertiesButton;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   234
	private Button rescanButton;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   235
	private Label iconLabel;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   236
	private Label statusLabel;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   237
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   238
	private Color black;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   239
	private Color gray;
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   240
	private Color red;
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   241
	private Color white;
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   242
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
	 * Constructor.
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   245
	 */
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   246
	public SDKPreferencePage() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   247
		super();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   248
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   249
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   250
	/*
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   251
	 * (non-Javadoc)
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   252
	 * @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
   253
	 */
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   254
	public void createControl(Composite parent){
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   255
		sdkMgr = SDKCorePlugin.getSDKManager();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   256
		if (sdkMgr == null){
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   257
			return; 
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   258
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   259
		sdkList = sdkMgr.getSDKList();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   260
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   261
		super.createControl(parent);
0
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
		// Hide "Restore Defaults" button
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   264
		getDefaultsButton().setVisible(false);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   265
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   266
		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
   267
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   268
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   269
	/*
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   270
	 * (non-Javadoc)
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   271
	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   272
	 */
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   273
	public void init(IWorkbench arg0) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   274
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   275
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   276
	/*
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   277
	 * (non-Javadoc)
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   278
	 * @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
   279
	 */
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   280
	public boolean performOk() {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   281
		// Remember which SDK is enabled
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   282
		for (ISymbianSDK sdk : sdkMgr.getSDKList()){
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1431
diff changeset
   283
			((SymbianSDK)sdk).setEnabled(false);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   284
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   285
		Object[] sdkObjects = sdkListTableViewer.getCheckedElements();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   286
		for (Object currObj : sdkObjects){
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   287
			if (currObj instanceof ISymbianSDK){
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   288
				ISymbianSDK sdk = (ISymbianSDK)currObj;
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1431
diff changeset
   289
				((SymbianSDK)sdk).setEnabled(true);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   290
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   291
		}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   292
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   293
		// Update cached SDK info
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   294
		sdkMgr.updateCarbideSDKCache();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   295
		return super.performOk();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   296
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   297
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   298
	/*
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   299
	 * (non-Javadoc)
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   300
	 * @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
   301
	 */
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   302
	@Override
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   303
	protected Control createContents(Composite parent) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   304
		// 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
   305
		Shell shell = parent.getShell();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   306
		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
   307
		gray = shell.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   308
		red = shell.getDisplay().getSystemColor(SWT.COLOR_RED);
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   309
		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
   310
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   311
		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
   312
		GridLayout gridLayout = new GridLayout();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   313
		gridLayout.numColumns = 2;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   314
		content.setLayout(gridLayout);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   315
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   316
		// SDK table
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   317
		sdkListTableViewer = CheckboxTableViewer.newCheckList(content, 
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   318
				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
   319
		createSDKTable();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   320
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   321
		// Buttons composite
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   322
		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
   323
		gridLayout = new GridLayout();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   324
		gridLayout.makeColumnsEqualWidth = true;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   325
		composite1.setLayout(gridLayout);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   326
		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
   327
		composite1.setLayoutData(gridData);
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
		// Add button
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   330
		addButton = new Button(composite1, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   331
		addButton.setLayoutData(gridData);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   332
		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
   333
		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
   334
		addButtonListener(addButton);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   335
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   336
		// Delete button
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   337
		deleteButton = new Button(composite1, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   338
		deleteButton.setLayoutData(gridData);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   339
		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
   340
		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
   341
		addButtonListener(deleteButton);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   342
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   343
		// Properties button
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   344
		propertiesButton = new Button(composite1, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   345
		propertiesButton.setLayoutData(gridData);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   346
		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
   347
		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
   348
		addButtonListener(propertiesButton);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   349
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   350
		// Status and Rescan composite
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   351
		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
   352
		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
   353
		gridData.widthHint = 350;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   354
		gridData.heightHint = 50;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   355
		composite2.setLayoutData(gridData);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   356
		gridLayout = new GridLayout();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   357
		gridLayout.numColumns = 2;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   358
		composite2.setLayout(gridLayout);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   359
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   360
		// IStatus icon label
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   361
		iconLabel = new Label(composite2, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   362
		// IStatus text label
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   363
		statusLabel = new Label(composite2, SWT.WRAP);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   364
		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
   365
		gridData.verticalSpan = 2;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   366
		statusLabel.setLayoutData(gridData);
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
		new Label(content, SWT.WRAP); // filler
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   369
		
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   370
		// Rescan button
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   371
		rescanButton = new Button(content, SWT.NONE);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   372
		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
   373
		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
   374
		addButtonListener(rescanButton);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   375
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   376
		// Populate SDK table
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   377
		addSDKComponentTableItems();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   378
		selectSDKEntry(0);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   379
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   380
		return content;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   381
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   382
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   383
	private void addButtonListener(final Button aButton) {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   384
		SelectionListener listener = new SelectionAdapter() {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   385
			public void widgetSelected(SelectionEvent e)  {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   386
				if (e.getSource().equals(addButton)) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   387
					handleAddButton();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   388
				} else if (e.getSource().equals(deleteButton)) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   389
					handleDeleteButton();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   390
				} else if (e.getSource().equals(propertiesButton)) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   391
					handlePropertiesButton();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   392
				} else if (e.getSource().equals(rescanButton)) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   393
					handleRescanButton();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   394
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   395
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   396
		};
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   397
		aButton.addSelectionListener(listener);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   398
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   399
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   400
	private void addSDKComponentTableItems() {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   401
		sdkListTableViewer.setLabelProvider(new SDKLabelProvider());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   402
		sdkListTableViewer.setContentProvider(new ArrayContentProvider());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   403
		sdkList = sdkMgr.getSDKList();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   404
		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
   405
		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
   406
		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
   407
		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
   408
			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
   409
		} 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
   410
		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
   411
			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
   412
		}
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.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
   414
		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
   415
		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
   416
		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
   417
		table.setLayoutData(gridData);
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   418
		setCheckedElements();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   419
		addSDKTableViewerListeners();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   420
		if (sdkList == null || sdkList.size() == 0){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   421
			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
   422
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   423
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   424
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   425
	private void addSDKTableViewerListeners(){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   426
		sdkListTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   427
			public void selectionChanged(SelectionChangedEvent event) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   428
				if(event.getSelection() instanceof IStructuredSelection) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   429
					IStructuredSelection selection = (IStructuredSelection)event.getSelection();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   430
					if (selection.size() == 1){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   431
						ISymbianSDK sdk = (ISymbianSDK)selection.getFirstElement();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   432
						deleteButton.setEnabled(true);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   433
						propertiesButton.setEnabled(true);		
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   434
						updateSDKStatus(sdk);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   435
					}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   436
					else {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   437
						deleteButton.setEnabled(false);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   438
						propertiesButton.setEnabled(false);			        	   
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   439
					}	
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   440
				}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   441
			}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   442
		});
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
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   445
	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
   446
		Table table = sdkListTableViewer.getTable();
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   447
		table.setHeaderVisible(true);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   448
		table.setLinesVisible(false);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   449
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   450
		SDKViewerStrategy strategy = new SDKViewerStrategy(sdkListTableViewer);
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   451
		TableViewerEditor.create(sdkListTableViewer, strategy, ColumnViewerEditor.DEFAULT);
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   452
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   453
		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
   454
		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
   455
		enabledCol.getColumn().setWidth(50);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   456
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   457
		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
   458
		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
   459
		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
   460
		idCol.getColumn().setWidth(160);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   461
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   462
		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
   463
		locationCol.setEditingSupport(new LocationEditingSupport(sdkListTableViewer));
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   464
		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
   465
		locationCol.getColumn().setWidth(170);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   466
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   467
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   468
	private void handleAddButton() {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   469
		AddSDKDialog dialog = new AddSDKDialog(getShell());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   470
		if (dialog.open() == AddSDKDialog.OK){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   471
			sdkList = sdkMgr.getSDKList();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   472
			sdkListTableViewer.setInput(sdkList.toArray());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   473
			setCheckedElements();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   474
			sdkListTableViewer.refresh();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   475
			selectSDKEntry(sdkList.size() - 1);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   476
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   477
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   478
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   479
	private void handleDeleteButton() {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   480
		ISymbianSDK sdk = (ISymbianSDK)((IStructuredSelection)sdkListTableViewer.getSelection()).getFirstElement();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   481
		int index = sdkListTableViewer.getTable().getSelectionIndex();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   482
		if (sdk != null){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   483
			if (sdkMgr.removeSDK(sdk.getUniqueId())){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   484
				sdkList = sdkMgr.getSDKList();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   485
				sdkListTableViewer.setInput(sdkList.toArray());
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   486
				if (index > 0) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   487
					selectSDKEntry(index - 1);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   488
				} else {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   489
					selectSDKEntry(index);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   490
				}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   491
				sdkListTableViewer.refresh();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   492
			}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   493
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   494
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   495
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   496
	private void handlePropertiesButton() {
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   497
		ISymbianSDK sdk = (ISymbianSDK)((IStructuredSelection)sdkListTableViewer.getSelection()).getFirstElement();
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   498
		int index = sdkListTableViewer.getTable().getSelectionIndex();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   499
		if (sdk != null){
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   500
			SDKPropertiesDialog sdkPropDlg = new SDKPropertiesDialog(getShell(), sdk);
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   501
			sdkPropDlg.open();
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   502
			selectSDKEntry(index);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   503
		} else {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   504
			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
   505
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   506
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   507
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   508
	private void handleRescanButton() {
743
78fd666a897a Fix filesystem caching performance as in bug #10318
Ed Swartz <ed.swartz@nokia.com>
parents: 608
diff changeset
   509
		// forcible rescan; dump cache
78fd666a897a Fix filesystem caching performance as in bug #10318
Ed Swartz <ed.swartz@nokia.com>
parents: 608
diff changeset
   510
		SymbianBuildContextDataCache.refreshForSDKs(null);
1456
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   511
		startRescanning();
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   512
		sdkMgr.scanSDKs();
1456
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   513
		finishRescanning();
483
34f888c29813 Fix Bug 9787 - Carbide gets its SDK list out of sync with devices.xml
timkelly
parents: 335
diff changeset
   514
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   515
1456
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   516
	private void startRescanning() {
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   517
		rescanButton.setText(Messages.getString("SDKPreferencePage.Rescanning_Button_Label")); //$NON-NLS-1$
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   518
		rescanButton.setEnabled(false);
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   519
	}
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   520
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   521
	private void finishRescanning(){
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   522
		sdkListTableViewer.getTable().clearAll();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   523
		sdkListTableViewer.refresh();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   524
		sdkList.clear();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   525
		sdkList = sdkMgr.getSDKList();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   526
		addSDKComponentTableItems();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   527
		sdkListTableViewer.refresh();
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   528
		selectSDKEntry(0);
1456
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   529
		rescanButton.setText(Messages.getString("SDKPreferencePage.Rescan_Button_Label")); //$NON-NLS-1$
5c87471d6f91 Disable rescan button during SDK scanning.
stechong
parents: 1451
diff changeset
   530
		rescanButton.setEnabled(true);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   531
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   532
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   533
	private void selectSDKEntry(int index) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   534
		ISymbianSDK sdk = (ISymbianSDK)sdkListTableViewer.getElementAt(index);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   535
		if (sdk != null){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   536
			sdkListTableViewer.setSelection(new StructuredSelection(sdk), true);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   537
			sdkListTableViewer.getTable().setFocus();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   538
		}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   539
		updateSDKStatus(sdk);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   540
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   541
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   542
	private void setCheckedElements() {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   543
		Iterator<ISymbianSDK> iterator = sdkList.iterator();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   544
		while (iterator.hasNext()) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   545
			ISymbianSDK sdk = iterator.next();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   546
			sdkListTableViewer.setChecked(sdk, sdk.isEnabled());
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   547
		}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   548
	}
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 statusClear() {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   551
		iconLabel.setImage(null);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   552
		statusLabel.setText("");
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   553
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   554
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   555
	private void statusError(String msg) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   556
		String errorMsg = "Error : " + msg;
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   557
		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
   558
		statusLabel.setText(errorMsg);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   559
		statusLabel.setForeground(red);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   560
		statusLabel.setBackground(gray);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   561
		statusLabel.update();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   562
		statusLabel.getParent().layout(true);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   563
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   564
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   565
	private void statusWarning(String msg) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   566
		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
   567
		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
   568
		statusLabel.setText(warningMsg);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   569
		statusLabel.setForeground(black);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   570
		statusLabel.setBackground(gray);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   571
		statusLabel.update();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   572
		statusLabel.getParent().layout(true);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   573
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   574
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   575
	private void statusInfo(String msg) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   576
		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
   577
		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
   578
		statusLabel.setText(infoMsg);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   579
		statusLabel.setForeground(black);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   580
		statusLabel.setBackground(gray);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   581
		statusLabel.update();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   582
		statusLabel.getParent().layout(true);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   583
	}
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   584
1495
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   585
	private Color updateSDKcolor(ISymbianSDK sdk){
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   586
		Color color = black;
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   587
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   588
		// Check SDK EPOCROOT
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   589
		String epocRootStr = sdk.getEPOCROOT();
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   590
		IPath epocRoot = new Path(epocRootStr);
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   591
		epocRoot = epocRoot.append("epoc32");
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   592
		File epocRootFile = epocRoot.toFile();
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   593
		if (!epocRootFile.exists()) {
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   594
			color = red;
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
		
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   597
		// Check SDK OS Version
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   598
		if ((sdk.getOSVersion().getMajor() < 9 ||
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   599
			(sdk.getOSVersion().getMajor() == 9 && sdk.getOSVersion().getMinor() < 4))) {
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   600
			color = red;
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   601
		}
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   602
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   603
		return color;
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   604
	}
331f6e2aa39c Display SDKs with errors in red.
stechong
parents: 1462
diff changeset
   605
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   606
	private void updateSDKStatus(ISymbianSDK sdk){
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   607
		// No SDK selected
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   608
		if (sdk == null) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   609
			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
   610
			return;
1350
653fc45456c4 Remove ABLD support (and support for OS 9.4 and less)
timkelly
parents: 743
diff changeset
   611
		} else {
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   612
			// Check SDK EPOCROOT
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   613
			String epocRootStr = sdk.getEPOCROOT();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   614
			IPath epocRoot = new Path(epocRootStr);
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   615
			epocRoot = epocRoot.append("epoc32");
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   616
			File epocRootFile = epocRoot.toFile();
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   617
			if (!epocRootFile.exists()) {
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   618
				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
   619
				return;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   620
			}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   621
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   622
			// Check SDK OS Version
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   623
			if ((sdk.getOSVersion().getMajor() < 9 ||
1431
536cdcdc768b Fixed various issues in new SDK preference page.
stechong
parents: 1421
diff changeset
   624
				(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
   625
				statusError(MessageFormat.format(
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   626
						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
   627
						sdk.getOSVersion().toString())); //$NON-NLS-1$
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   628
				return;
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
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   631
			// No error
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   632
			statusClear();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   633
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   634
	}
1421
587da7cb64b7 New SDK preference page and SDK scanning mechanism; fix for Bug 10634.
stechong
parents: 1352
diff changeset
   635
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   636
}