core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/sdk/ui/shared/BuildTargetsPage.java
author timkelly
Mon, 28 Jun 2010 10:14:24 -0500
branchC3_BUILDER_WORK
changeset 1553 a0d518fc91ea
parent 1460 26f585ac8a88
child 1670 f1324e4c3588
permissions -rw-r--r--
Add Symbian SDKs link for import/project creation.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     1
/*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     3
* All rights reserved.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     8
*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    11
*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    12
* Contributors:
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    13
*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    14
* Description: 
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    15
*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    16
*/
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    17
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    18
package com.nokia.carbide.cpp.sdk.ui.shared;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    19
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    20
import java.text.MessageFormat;
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    21
import java.util.ArrayList;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    22
import java.util.Collections;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    23
import java.util.List;
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    24
import java.util.Map;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    25
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    26
import org.eclipse.core.runtime.IPath;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    27
import org.eclipse.core.runtime.Path;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    28
import org.eclipse.jface.dialogs.DialogPage;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    29
import org.eclipse.jface.dialogs.IDialogPage;
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    30
import org.eclipse.jface.viewers.CheckStateChangedEvent;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    31
import org.eclipse.jface.viewers.ICheckStateListener;
1460
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
    32
import org.eclipse.jface.viewers.IColorProvider;
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    33
import org.eclipse.jface.viewers.IFilter;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    34
import org.eclipse.jface.viewers.ITreeContentProvider;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    35
import org.eclipse.jface.viewers.LabelProvider;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    36
import org.eclipse.jface.viewers.TreeNode;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    37
import org.eclipse.jface.viewers.TreeNodeContentProvider;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    38
import org.eclipse.jface.viewers.Viewer;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    39
import org.eclipse.jface.window.Window;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    40
import org.eclipse.jface.wizard.WizardPage;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    41
import org.eclipse.swt.SWT;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    42
import org.eclipse.swt.events.SelectionAdapter;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    43
import org.eclipse.swt.events.SelectionEvent;
1460
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
    44
import org.eclipse.swt.graphics.Color;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    45
import org.eclipse.swt.graphics.Font;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    46
import org.eclipse.swt.layout.GridData;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    47
import org.eclipse.swt.layout.GridLayout;
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    48
import org.eclipse.swt.widgets.Button;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    49
import org.eclipse.swt.widgets.Composite;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    50
import org.eclipse.swt.widgets.Label;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    51
import org.eclipse.swt.widgets.Link;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    52
import org.eclipse.swt.widgets.TreeItem;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    53
import org.eclipse.ui.PlatformUI;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    54
import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer;
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
    55
import org.eclipse.ui.dialogs.PreferencesUtil;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    56
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    57
import com.nokia.carbide.cpp.internal.api.sdk.ui.TemplateUtils;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    58
import com.nokia.carbide.cpp.internal.sdk.ui.Messages;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    59
import com.nokia.carbide.cpp.internal.sdk.ui.SDKUIHelpIds;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    60
import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    61
import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    62
import com.nokia.carbide.internal.api.templatewizard.ui.IWizardDataPage;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    63
import com.nokia.carbide.template.engine.ITemplate;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    64
import com.nokia.cpp.internal.api.utils.core.Check;
610
bfb3ab3f70f2 Initial round of Unix portability fixes (using HostOS class), and fixes to EPOC engine unit tests.
Ed Swartz <ed.swartz@nokia.com>
parents: 356
diff changeset
    65
import com.nokia.cpp.internal.api.utils.core.HostOS;
1460
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
    66
import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    67
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    68
/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    69
 * Wizard page used to select a list of Carbide.c++ build configurations.  Currently used
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    70
 * by the new project and import bld.inf wizards, but can be used by any wizard that needs
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    71
 * to get a list of build configs.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    72
 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    73
public class BuildTargetsPage extends WizardPage implements IWizardDataPage {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    74
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    75
	protected static final String UID = ".uid"; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    76
	protected static final String SELECTED_BUILD_CONFIGS_VALUE_KEY = "selectedBuildConfigs"; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    77
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    78
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    79
	 * @since 1.4
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    80
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    81
	public static final String SBSV2BUILDER = "useSBSv2Builder"; //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    82
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    83
	protected static class FilteringContentProviderWrapper implements ITreeContentProvider {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    84
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    85
		protected ITreeContentProvider wrappedProvider;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    86
		protected IFilter filter;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    87
		protected IFilter configFilter;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    88
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    89
		public FilteringContentProviderWrapper(ITreeContentProvider wrappedProvider) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    90
			super();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    91
			Check.checkArg(wrappedProvider);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    92
			this.wrappedProvider = wrappedProvider;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    93
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    94
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    95
		public Object[] getElements(Object inputElement) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    96
			List<Object> filteredElements = new ArrayList<Object>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    97
			Object[] elements = wrappedProvider.getElements(inputElement);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    98
			for (int i = 0; i < elements.length; i++) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    99
				Object object = elements[i];
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   100
				if (filter == null || filter.select(object))
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   101
					filteredElements.add(object);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   102
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   103
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   104
			return filteredElements.toArray();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   105
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   106
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   107
		public void dispose() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   108
			wrappedProvider.dispose();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   109
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   110
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   111
		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   112
			wrappedProvider.inputChanged(viewer, oldInput, newInput);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   113
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   114
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   115
		public Object[] getChildren(Object parentElement) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   116
			List<Object> filteredElements = new ArrayList<Object>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   117
			Object[] elements = wrappedProvider.getChildren(parentElement);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   118
			if (elements != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   119
				for (int i = 0; i < elements.length; i++) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   120
					Object object = elements[i];
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   121
					if (configFilter == null || configFilter.select(object))
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   122
						filteredElements.add(object);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   123
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   124
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   125
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   126
			return filteredElements.toArray();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   127
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   128
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   129
		public Object getParent(Object element) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   130
			return wrappedProvider.getParent(element);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   131
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   132
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   133
		public boolean hasChildren(Object element) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   134
			return wrappedProvider.hasChildren(element);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   135
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   136
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   137
		public void setFilter(IFilter filter) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   138
			this.filter = filter;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   139
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   140
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   141
		public void setConfigFilter(IFilter filter) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   142
			this.configFilter = filter;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   143
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   144
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   145
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   146
	static class TemplateSDKFilter implements IFilter {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   147
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   148
		private ITemplate template;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   149
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   150
		public void setTemplate(ITemplate template) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   151
			this.template = template;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   152
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   153
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   154
		public boolean select(Object toTest) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   155
			if (template == null)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   156
				return true;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   157
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   158
			Check.checkArg(toTest instanceof BuildTargetTreeNode);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   159
			ISymbianSDK symbianSDK = ((BuildTargetTreeNode) toTest).getSymbianSDK();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   160
			return TemplateUtils.sdkMatchesTemplate(symbianSDK, template);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   161
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   162
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   163
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   164
	private Button filterCheckbox;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   165
	protected ContainerCheckedTreeViewer viewer;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   166
	private Label configLabel;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   167
	private boolean hideFilterCheckbox;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   168
	protected FilteringContentProviderWrapper filteringContentProviderWrapper;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   169
	private TemplateSDKFilter templateFilter;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   170
	private boolean inited;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   171
	private boolean useSBSv2Builder;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   172
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   173
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   174
	 * Default constructor
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   175
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   176
	public BuildTargetsPage() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   177
		super(Messages.getString("BuildTargetsPage.BuildTargetsTitle")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   178
		setTitle(Messages.getString("BuildTargetsPage.SymbianSDKS")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   179
		setDescription(Messages.getString("BuildTargetsPage.BuildTargetsDescription")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   180
		templateFilter = new TemplateSDKFilter();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   181
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   182
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   183
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   184
	 * see {@link IDialogPage#createControl(Composite)}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   185
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   186
	public void createControl(Composite parent) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   187
		setPageComplete(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   188
		setErrorMessage(null);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   189
		setMessage(null);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   190
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   191
		initializeDialogUnits(parent);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   192
        
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   193
        Composite composite = new Composite(parent, SWT.NONE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   194
        composite.setLayout(new GridLayout());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   195
        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   196
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   197
		createControls(composite);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   198
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   199
		setControl(composite);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   200
 
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   201
		getControl().setData(UID, "BuildTargetsPage"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   202
		getControl().setData("WizardPage", this); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   203
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   204
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   205
	private void createControls(Composite parent) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   206
		Font font = parent.getFont();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   207
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   208
		configLabel = new Label(parent, SWT.LEFT);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   209
		configLabel.setFont(font);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   210
		configLabel.setText(Messages.getString("BuildTargetsPage.BuildConfigsLabel")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   211
		configLabel.setToolTipText(Messages.getString("BuildTargetsPage.BuildConfigsToolTip")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   212
		
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   213
        drawSDKConfigView(parent);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   214
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   215
        filterCheckbox = new Button(parent, SWT.CHECK);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   216
        filterCheckbox.setText(Messages.getString("BuildTargetsPage.FilterText")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   217
        filterCheckbox.setSelection(true); // default to checked
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   218
        if (hideFilterCheckbox)
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   219
        	filterCheckbox.setVisible(false);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   220
        else
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   221
        	filteringContentProviderWrapper.setFilter(templateFilter);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   222
		filterCheckbox.addSelectionListener(new SelectionAdapter() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   223
			public void widgetSelected(SelectionEvent e) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   224
				TemplateSDKFilter filter = filterCheckbox.getSelection() ? templateFilter : null;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   225
				filteringContentProviderWrapper.setFilter(filter);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   226
				viewer.refresh();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   227
				setPageComplete(validatePage());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   228
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   229
        });
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   230
		filterCheckbox.setData(UID, "filterCheckbox"); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   231
1302
012040f34296 fix bug 11186
timkelly
parents: 1270
diff changeset
   232
		addOtherControls(parent);
012040f34296 fix bug 11186
timkelly
parents: 1270
diff changeset
   233
		
1553
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   234
		Link fConfigPrefsLink = new Link(parent, SWT.WRAP);
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   235
		fConfigPrefsLink.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   236
		fConfigPrefsLink.setText(Messages.getString("BuildTargetsPage.Select_Filtering_Prefs_Link")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   237
		fConfigPrefsLink.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   238
		fConfigPrefsLink.addSelectionListener(new SelectionAdapter() {
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   239
			public void widgetSelected(SelectionEvent e) {
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   240
				// I don't see a way to open it to a specific tab, only the page
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   241
				if (Window.OK == PreferencesUtil.createPreferenceDialogOn(getShell(), "com.nokia.carbide.cpp.sdk.ui.preferences.BuildPlatformFilterPage", null, null, 0).open()){ //$NON-NLS-1$
1553
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   242
					inited = false;
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   243
					setVisible(true);
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   244
					TemplateSDKFilter filter = filterCheckbox.getSelection() ? templateFilter : null;
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   245
					filteringContentProviderWrapper.setFilter(filter);
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   246
					viewer.getTree().clearAll(true);
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   247
					viewer.refresh();
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   248
					setPageComplete(validatePage());
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   249
				}
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   250
			}
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   251
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   252
		});
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   253
		
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   254
		Link fSDKLink = new Link(parent, SWT.WRAP);
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   255
		fSDKLink.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   256
		fSDKLink.setText(Messages.getString("BuildTargetsPage.Select_SymbianSDKs_Prefs_Link")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   257
		fSDKLink.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   258
		fSDKLink.addSelectionListener(new SelectionAdapter() {
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   259
			public void widgetSelected(SelectionEvent e) {
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   260
				// I don't see a way to open it to a specific tab, only the page
a0d518fc91ea Add Symbian SDKs link for import/project creation.
timkelly
parents: 1460
diff changeset
   261
				if (Window.OK == PreferencesUtil.createPreferenceDialogOn(getShell(), "com.nokia.carbide.cpp.sdk.ui.preferences.SDKPreferences", null, null, 0).open()){ //$NON-NLS-1$
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   262
					inited = false;
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   263
					setVisible(true);
1417
8e6d57a444fc copy default branch to C3_BUILDER_WORK branch so they are equal
cawthron
parents: 1302
diff changeset
   264
					TemplateSDKFilter filter = filterCheckbox.getSelection() ? templateFilter : null;
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   265
					filteringContentProviderWrapper.setFilter(filter);
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   266
					viewer.getTree().clearAll(true);
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   267
					viewer.refresh();
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   268
					setPageComplete(validatePage());
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   269
				}
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   270
			}
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   271
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   272
		});
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   273
		
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   274
		setPageComplete(validatePage());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   275
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   276
	
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   277
	private void drawSDKConfigView(Composite parent) {
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   278
		
1417
8e6d57a444fc copy default branch to C3_BUILDER_WORK branch so they are equal
cawthron
parents: 1302
diff changeset
   279
		viewer = new ContainerCheckedTreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
8e6d57a444fc copy default branch to C3_BUILDER_WORK branch so they are equal
cawthron
parents: 1302
diff changeset
   280
		viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
1460
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   281
		class SDKNodeLabelProvider extends LabelProvider implements IColorProvider {
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   282
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   283
			public Color getForeground(Object element) {
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   284
				if (element instanceof BuildTargetTreeNode){
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   285
					BuildTargetTreeNode treeNode = (BuildTargetTreeNode)element;
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   286
					if (treeNode.getValue() instanceof ISymbianSDK){
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   287
						if (treeNode.toString().contains(BuildTargetTreeNode.SDK_NODE_ERROR_EPOCROOT_INVALID)){
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   288
							return WorkbenchUtils.getSafeShell().getDisplay().getSystemColor(SWT.COLOR_RED);
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   289
						}
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   290
					}
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   291
				}
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   292
				
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   293
				return null;
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   294
			}
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   295
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   296
			public Color getBackground(Object element) {
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   297
				return null;
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   298
			}
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   299
		}
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   300
		
26f585ac8a88 For IColorProvider on the SDK/Config tree LabelProvider, only check for existence of EPOCROOT in the data provider.
timkelly
parents: 1417
diff changeset
   301
		viewer.setLabelProvider(new SDKNodeLabelProvider());
1417
8e6d57a444fc copy default branch to C3_BUILDER_WORK branch so they are equal
cawthron
parents: 1302
diff changeset
   302
		
1270
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   303
		TreeNodeContentProvider treeNodeContentProvider = new TreeNodeContentProvider();
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   304
		filteringContentProviderWrapper = 
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   305
			new FilteringContentProviderWrapper(treeNodeContentProvider);
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   306
		viewer.setContentProvider(filteringContentProviderWrapper);
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   307
		viewer.addCheckStateListener(new ICheckStateListener() {
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   308
			public void checkStateChanged(CheckStateChangedEvent event) {
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   309
				setPageComplete(validatePage());
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   310
			}
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   311
		});
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   312
		viewer.getControl().setData(UID, "buildConfigsTree"); //$NON-NLS-1$
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   313
		viewer.getControl().setData("viewer", viewer); //$NON-NLS-1$
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   314
		
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   315
	}
ad41cb5ef65f fix bug 11077 and bug 11033
timkelly
parents: 610
diff changeset
   316
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   317
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   318
	 * Add more controls after the tree and filter checkbox.  Allows subclasses to add
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   319
	 * more controls.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   320
	 * @since 1.4
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   321
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   322
	protected void addOtherControls(Composite parent) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   323
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   324
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   325
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   326
	 * If using the template filter checkbox, this allows you to set the
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   327
	 * template to filter on.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   328
	 * @param template the template to filter on
356
c9e7d55745c8 Added missing @since tags; fix for Bug 9220.
stechong
parents: 0
diff changeset
   329
	 * @since 1.4
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   330
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   331
	public void setSelectedTemplate(ITemplate template) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   332
		this.templateFilter.setTemplate(template);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   333
		
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   334
		// need to init again if they select another template
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   335
		inited = false;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   336
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   337
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   338
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   339
	 * Hides the "Filter SDKs based on selected template" checkbox
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   340
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   341
	public void setHideFilterCheckbox() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   342
		hideFilterCheckbox = true;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   343
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   344
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   345
	protected boolean validatePage() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   346
		boolean isValid = false;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   347
		if (viewer.getTree().getItemCount() == 0) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   348
			if (filterCheckbox.getSelection())
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   349
				setErrorMessage(Messages.getString("BuildTargetsPage.NoMatchingSDKsError")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   350
			else
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   351
				setErrorMessage(Messages.getString("BuildTargetsPage.NoSDKsError")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   352
		} else if ((viewer.getCheckedElements()).length > 1) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   353
			setErrorMessage(null);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   354
			isValid = true;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   355
		} else {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   356
			setErrorMessage(Messages.getString("BuildTargetsPage.NoBuildConfigsSelectedError")); //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   357
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   358
		return isValid;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   359
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   360
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   361
	protected void checkPathWithSDKs(IPath path) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   362
		setMessage(null);
610
bfb3ab3f70f2 Initial round of Unix portability fixes (using HostOS class), and fixes to EPOC engine unit tests.
Ed Swartz <ed.swartz@nokia.com>
parents: 356
diff changeset
   363
		
bfb3ab3f70f2 Initial round of Unix portability fixes (using HostOS class), and fixes to EPOC engine unit tests.
Ed Swartz <ed.swartz@nokia.com>
parents: 356
diff changeset
   364
		// drives are relevant in Windows only
bfb3ab3f70f2 Initial round of Unix portability fixes (using HostOS class), and fixes to EPOC engine unit tests.
Ed Swartz <ed.swartz@nokia.com>
parents: 356
diff changeset
   365
		if (!HostOS.IS_WIN32)
bfb3ab3f70f2 Initial round of Unix portability fixes (using HostOS class), and fixes to EPOC engine unit tests.
Ed Swartz <ed.swartz@nokia.com>
parents: 356
diff changeset
   366
			return;
bfb3ab3f70f2 Initial round of Unix portability fixes (using HostOS class), and fixes to EPOC engine unit tests.
Ed Swartz <ed.swartz@nokia.com>
parents: 356
diff changeset
   367
		
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   368
		for (ISymbianBuildContext context : getSelectedBuildConfigs()) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   369
			Path sdkPath = new Path(context.getSDK().getEPOCROOT());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   370
			if (sdkPath.getDevice() != null) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   371
				if (!useSBSv2Builder) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   372
					if (!sdkPath.getDevice().equalsIgnoreCase(path.getDevice())) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   373
						// there are no warnings so set the error message but return true so
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   374
						// the user can continue if they choose to ignore our warning.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   375
						String warning = MessageFormat.format(
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   376
								Messages.getString("BuildTargetsPage.DifferentDrivesError"),  //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   377
								new Object[] { context.getSDK().getUniqueId() });
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   378
						setMessage(warning, DialogPage.WARNING);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   379
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   380
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   381
			} else {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   382
				// else devices.xml 'epocroot' has no drive spec, so it will use the implicit epocroot
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   383
				String warning = MessageFormat.format(
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   384
						Messages.getString("BuildTargetsPage.NoDriveSpecWarning"),  //$NON-NLS-1$
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   385
						new Object[] { context.getSDK().getUniqueId() });
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   386
				setMessage(warning, DialogPage.WARNING);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   387
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   388
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   389
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   390
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   391
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   392
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   393
	 * Returns the list of build configs selected in this page to template wizards.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   394
	 * @return the map of values for this page - 
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   395
	 * a singleton map containing the list of selected build configs mapped to the key "selectedBuildConfigs". 
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
	public Map<String, Object> getPageValues() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   398
		return Collections.singletonMap(SELECTED_BUILD_CONFIGS_VALUE_KEY, (Object)getSelectedBuildConfigs());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   399
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   400
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   401
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   402
	 * Gets the list of build configs selected in this page
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   403
	 * @return the list of build configs checked in the tree viewer
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   404
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   405
	public List<ISymbianBuildContext> getSelectedBuildConfigs() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   406
		List<ISymbianBuildContext> selectedConfigs = new ArrayList<ISymbianBuildContext>();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   407
		Object[] items = viewer.getCheckedElements();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   408
		for (int i=0; i<items.length; i++) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   409
			TreeNode node = (TreeNode)items[i];
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   410
			if (node.getValue() instanceof ISymbianBuildContext) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   411
				selectedConfigs.add((ISymbianBuildContext)node.getValue());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   412
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   413
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   414
		return selectedConfigs;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   415
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   416
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   417
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   418
	 * See {@link IDialogPage#setVisible(boolean)}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   419
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   420
	@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   421
	public void setVisible(boolean visible) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   422
		super.setVisible(visible);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   423
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   424
		if (visible) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   425
			// set the viewer input when the page becomes visible, but only do it once
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   426
			// unless the builder has changed.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   427
			boolean setInput = true;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   428
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   429
			Object value = getShell().getData(SBSV2BUILDER);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   430
			if (value != null && value instanceof Boolean) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   431
				boolean sbsv2 = ((Boolean)value).booleanValue();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   432
				if (sbsv2 == useSBSv2Builder) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   433
					if (inited) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   434
						setInput = false;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   435
					}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   436
				} else {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   437
					useSBSv2Builder = sbsv2;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   438
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   439
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   440
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   441
			if (setInput) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   442
		        viewer.setInput(BuildTargetTreeNode.getTreeViewerInput(useSBSv2Builder));
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   443
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   444
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   445
			if (!inited) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   446
				inited = true;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   447
				TreeItem[] items = viewer.getTree().getItems();
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   448
				if (items != null && items.length == 1) {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   449
					viewer.setChecked(items[0].getData(), true);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   450
				}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   451
			}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   452
			
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   453
			setPageComplete(validatePage());
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   454
		}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   455
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   456
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   457
	@Override
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   458
	public void performHelp() {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   459
        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl().getShell(), SDKUIHelpIds.BUILD_TARGETS_PAGE);
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   460
	}
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   461
}