Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kucera2009-04-30 19:53:45 +0000
committerMike Kucera2009-04-30 19:53:45 +0000
commit436a3e5dd34c53f78c7ffd89b8f9ed3ee0a2b4d0 (patch)
treea71bd16c35efd697b3083c0c8d700b500d018fa3 /xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards
parent9605de728a742f7187cebd3a46addc890cb6bb58 (diff)
downloadorg.eclipse.cdt-436a3e5dd34c53f78c7ffd89b8f9ed3ee0a2b4d0.tar.gz
org.eclipse.cdt-436a3e5dd34c53f78c7ffd89b8f9ed3ee0a2b4d0.tar.xz
org.eclipse.cdt-436a3e5dd34c53f78c7ffd89b8f9ed3ee0a2b4d0.zip
[261232] initial commit of UPC new project wizard and UPC toolchain
Diffstat (limited to 'xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards')
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/UpcProjectWizard.java95
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardPage.java40
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardRunnable.java77
3 files changed, 212 insertions, 0 deletions
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/UpcProjectWizard.java b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/UpcProjectWizard.java
new file mode 100644
index 00000000000..ff20c19e940
--- /dev/null
+++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/UpcProjectWizard.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation 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:
+ * IBM - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.xlupc.ui.wizards;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.cdt.core.CProjectNature;
+import org.eclipse.cdt.managedbuilder.xlupc.ui.Messages;
+import org.eclipse.cdt.ui.wizards.CDTCommonProjectWizard;
+import org.eclipse.cdt.ui.wizards.CDTMainWizardPage;
+import org.eclipse.cdt.ui.wizards.EntryDescriptor;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+
+@SuppressWarnings({ "nls", "serial" })
+public class UpcProjectWizard extends CDTCommonProjectWizard {
+
+ private static final String ARTIFACT_TYPE_UPC_EXE = "org.eclipse.cdt.build.core.buildArtefactType.xlupc.exe";
+ private static final String ARTIFACT_TYPE_UPC_EXE_DEFAULT = ARTIFACT_TYPE_UPC_EXE + ".default";
+
+ private static final String ARTIFACT_TYPE_UPC_SO = "org.eclipse.cdt.build.core.buildArtefactType.xlupc.sharedLib";
+ private static final String ARTIFACT_TYPE_UPC_SO_DEFAULT = ARTIFACT_TYPE_UPC_SO + ".default";
+
+ private static final String ARTIFACT_TYPE_UPC_LIB = "org.eclipse.cdt.build.core.buildArtefactType.xlupc.staticLib";
+ private static final String ARTIFACT_TYPE_UPC_LIB_DEFAULT = ARTIFACT_TYPE_UPC_LIB + ".default";
+
+ private final static String PAGE_NAME = "org.eclipse.cdt.managedbuilder.xlupc.ui.mainpage";
+
+
+ private static final Set<String> ALL_TYPES = new HashSet<String>() {{
+ add(ARTIFACT_TYPE_UPC_EXE);
+ add(ARTIFACT_TYPE_UPC_EXE_DEFAULT);
+ add(ARTIFACT_TYPE_UPC_SO);
+ add(ARTIFACT_TYPE_UPC_SO_DEFAULT);
+ add(ARTIFACT_TYPE_UPC_LIB);
+ add(ARTIFACT_TYPE_UPC_LIB_DEFAULT);
+ }};
+
+
+
+ public UpcProjectWizard() {
+ super(Messages.UpcProjectWizard_0, Messages.UpcProjectWizard_1);
+ }
+
+
+ public void addPages() {
+ fMainPage = new CDTMainWizardPage(PAGE_NAME) {
+
+ @SuppressWarnings("unchecked")
+ public List filterItems(List items) {
+ // filter out all non-UPC project types
+ if (items != null) {
+ Iterator iter = items.iterator();
+ while (iter.hasNext()) {
+ EntryDescriptor entryDescriptor = (EntryDescriptor) iter.next();
+ if(!ALL_TYPES.contains(entryDescriptor.getId()))
+ iter.remove();
+ }
+ }
+ return items;
+ }
+ };
+
+ fMainPage.setTitle(Messages.UpcProjectWizard_0);
+ fMainPage.setDescription(Messages.UpcProjectWizard_1);
+ addPage(fMainPage);
+ }
+
+
+ protected IProject continueCreation(IProject prj) {
+ try {
+ CProjectNature.addCNature(prj, new NullProgressMonitor());
+ } catch (CoreException e) {}
+ return prj;
+ }
+
+
+ public String[] getNatures() {
+ return new String[] { CProjectNature.C_NATURE_ID/*, CCProjectNature.CC_NATURE_ID, RemoteNature.REMOTE_NATURE_ID*/};
+ }
+
+}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardPage.java b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardPage.java
new file mode 100644
index 00000000000..f379581c1d8
--- /dev/null
+++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardPage.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.xlupc.ui.wizards;
+
+import org.eclipse.cdt.managedbuilder.xlc.ui.wizards.XLCSettingsWizardPage;
+import org.eclipse.cdt.managedbuilder.xlupc.ui.Messages;
+
+/**
+ *
+ */
+public class XLUpcSettingsWizardPage extends XLCSettingsWizardPage {
+
+ public static final String PAGE_ID = "org.eclipse.cdt.managedbuilder.xlupc.ui.wizards.XLUpcSettingsWizardPage"; //$NON-NLS-1$
+
+ public XLUpcSettingsWizardPage(String pageID) {
+ super(pageID);
+ }
+
+ public XLUpcSettingsWizardPage() {
+ super();
+ pageID = PAGE_ID;
+ }
+
+ public String getName() {
+ return Messages.XLUpcSettingsWizardPage_0;
+ }
+
+ public String getTitle() {
+ return Messages.XLUpcSettingsWizardPage_1;
+ }
+
+}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardRunnable.java b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardRunnable.java
new file mode 100644
index 00000000000..e3839093a84
--- /dev/null
+++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardRunnable.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.xlupc.ui.wizards;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.language.ProjectLanguageConfiguration;
+import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.LanguageManager;
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
+import org.eclipse.cdt.core.settings.model.ICProjectDescription;
+import org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPageManager;
+import org.eclipse.cdt.managedbuilder.xlc.ui.wizards.XLCSettingsWizardRunnable;
+import org.eclipse.cdt.ui.wizards.CDTCommonProjectWizard;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.core.runtime.content.IContentTypeManager;
+import org.eclipse.jface.wizard.IWizardPage;
+
+
+public class XLUpcSettingsWizardRunnable extends XLCSettingsWizardRunnable {
+
+
+ // now add UPC language mapping to the project
+ private static final String[] CONTENT_TYPE_IDS = { CCorePlugin.CONTENT_TYPE_CHEADER, CCorePlugin.CONTENT_TYPE_CSOURCE };
+
+ public XLUpcSettingsWizardRunnable() {
+ pageId = XLUpcSettingsWizardPage.PAGE_ID;
+ }
+
+ public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+ super.run(monitor);
+
+ // get a handle to the wizard
+ IWizardPage[] pages = MBSCustomPageManager.getPages();
+
+ if (pages != null && pages.length > 0) {
+
+ CDTCommonProjectWizard wizard = (CDTCommonProjectWizard) pages[0].getWizard();
+ IProject project = wizard.getLastProject();
+ LanguageManager langManager = LanguageManager.getInstance();
+
+ try {
+ ProjectLanguageConfiguration langConfig = langManager.getLanguageConfiguration(project);
+
+ ICProjectDescription projectDescription = CoreModel.getDefault().getProjectDescription(project, false);
+ ICConfigurationDescription configDescription = projectDescription.getActiveConfiguration();
+
+ IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
+
+ for(String id : CONTENT_TYPE_IDS) {
+ if(contentTypeManager.getContentType(id) != null) {
+ langConfig.addContentTypeMapping(configDescription, id, UPCLanguage.ID);
+ }
+ }
+
+ langManager.storeLanguageMappingConfiguration(project, new IContentType[0]);
+
+ } catch (CoreException e) {
+ CCorePlugin.log(e);
+ }
+ }
+ }
+}

Back to the top