diff options
author | Doug Schaefer | 2012-02-08 22:03:38 +0000 |
---|---|---|
committer | Doug Schaefer | 2012-02-08 22:04:01 +0000 |
commit | e683d197ac8c35be9e86a5fa9976e2e2432d77a4 (patch) | |
tree | 913a71fbb1288bf9db5205c552b97a2221b20d3a /build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder | |
parent | 1dbaf3c1baad7a1fd713b8b2c211f13d442eda7a (diff) | |
download | org.eclipse.cdt-e683d197ac8c35be9e86a5fa9976e2e2432d77a4.tar.gz org.eclipse.cdt-e683d197ac8c35be9e86a5fa9976e2e2432d77a4.tar.xz org.eclipse.cdt-e683d197ac8c35be9e86a5fa9976e2e2432d77a4.zip |
Added ability to select toolchains for templates that have multiple.
Diffstat (limited to 'build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder')
3 files changed, 104 insertions, 0 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java index 94f8c37d3f6..9a53359c5c2 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java @@ -279,6 +279,8 @@ public class Messages extends NLS { public static String WizardDefaultsTab_0; public static String WizardDefaultsTab_1; public static String RefreshPolicyTab_resourcesTreeLabel; + public static String ToolChainSelectionPage_Description; + public static String ToolChainSelectionPage_Title; static { // Initialize resource bundle. diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties index 3fdd4bfe8fb..6501855af3d 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties @@ -300,3 +300,5 @@ NewCfgDialog_3=-- not selected -- NewCfgDialog_4=Import from projects NewCfgDialog_5=Import predefined +ToolChainSelectionPage_Description=Select the initial toolchain for this project. +ToolChainSelectionPage_Title=Select Tool Chain diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/ToolChainSelectionPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/ToolChainSelectionPage.java new file mode 100644 index 00000000000..5c0079ff92c --- /dev/null +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/ToolChainSelectionPage.java @@ -0,0 +1,100 @@ +/*******************************************************************************
+ * Copyright (c) 2012 Doug Schaefer and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Doug Schaefer - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.ui.wizards;
+
+import org.eclipse.cdt.managedbuilder.core.IToolChain;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.managedbuilder.internal.ui.Messages;
+import org.eclipse.cdt.ui.templateengine.Template;
+import org.eclipse.cdt.ui.wizards.ProjectTypePage;
+import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.List;
+
+/**
+ * @since 8.1
+ *
+ */
+public class ToolChainSelectionPage extends WizardPage implements ProjectTypePage {
+
+ private IWizardPage nextPage;
+ private String[] toolChainIds;
+ private String selectedToolChainId;
+ private List toolChainList;
+
+ public ToolChainSelectionPage() {
+ super("ToolChainSelectionPage"); //$NON-NLS-1$
+ setTitle(Messages.ToolChainSelectionPage_Title);
+ setDescription(Messages.ToolChainSelectionPage_Description);
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+ Composite comp = new Composite(parent, SWT.NONE);
+ comp.setLayout(new GridLayout(1, true));
+
+ toolChainList = new List(comp, SWT.BORDER | SWT.SINGLE);
+ toolChainList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ for (String toolChainId : toolChainIds) {
+ IToolChain toolChain = ManagedBuildManager.getExtensionToolChain(toolChainId);
+ if (toolChain != null)
+ toolChainList.add(toolChain.getName());
+ }
+
+ toolChainList.addSelectionListener(new SelectionListener() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ if (toolChainList.getSelectionCount() == 0)
+ selectedToolChainId = null;
+ else
+ selectedToolChainId = toolChainIds[toolChainList.getSelectionIndex()];
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ widgetSelected(e);
+ }
+ });
+
+ setControl(comp);
+ }
+
+ @Override
+ public boolean init(Template template, IWizard wizard, IWizardPage nextPage) {
+ this.nextPage = nextPage;
+ setWizard(wizard);
+ toolChainIds = template.getTemplateInfo().getToolChainIds();
+
+ // only need this page if there are multiple toolChains to select from.
+ return toolChainIds != null && toolChainIds.length > 1;
+ }
+
+ @Override
+ public IWizardPage getNextPage() {
+ if (nextPage != null)
+ return nextPage;
+ return super.getNextPage();
+ }
+
+ @Override
+ public boolean isPageComplete() {
+ return selectedToolChainId != null;
+ }
+
+}
|