From 436a3e5dd34c53f78c7ffd89b8f9ed3ee0a2b4d0 Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Thu, 30 Apr 2009 19:53:45 +0000 Subject: [261232] initial commit of UPC new project wizard and UPC toolchain --- .../.classpath | 7 + .../.project | 28 ++ .../.settings/org.eclipse.jdt.core.prefs | 64 ++++ .../META-INF/MANIFEST.MF | 23 ++ .../build.properties | 6 + .../icons/c-project.gif | Bin 0 -> 618 bytes .../plugin.properties | 23 ++ .../plugin.xml | 371 +++++++++++++++++++++ .../cdt/managedbuilder/xlupc/ui/Activator.java | 42 +++ .../cdt/managedbuilder/xlupc/ui/Messages.java | 30 ++ .../managedbuilder/xlupc/ui/messages.properties | 16 + .../xlupc/ui/wizards/UpcProjectWizard.java | 95 ++++++ .../xlupc/ui/wizards/XLUpcSettingsWizardPage.java | 40 +++ .../ui/wizards/XLUpcSettingsWizardRunnable.java | 77 +++++ 14 files changed, 822 insertions(+) create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.classpath create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.project create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.core.prefs create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/build.properties create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/icons/c-project.gif create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.properties create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.xml create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Activator.java create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Messages.java create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/messages.properties create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/UpcProjectWizard.java create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardPage.java create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardRunnable.java (limited to 'xlc') diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.classpath b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.classpath new file mode 100644 index 00000000000..2fbb7a23e12 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.project b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.project new file mode 100644 index 00000000000..92de6441e00 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.project @@ -0,0 +1,28 @@ + + + org.eclipse.cdt.managedbuilder.xlupc.ui + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.core.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..b9c91446870 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,64 @@ +#Thu Apr 30 10:33:45 EDT 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..4b37d798e53 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF @@ -0,0 +1,23 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %Bundle-Name.0 +Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.xlupc.ui;singleton:=true +Bundle-Version: 1.0.0 +Bundle-Activator: org.eclipse.cdt.managedbuilder.xlupc.ui.Activator +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.cdt.managedbuilder.core;bundle-version="5.0.1", + org.eclipse.cdt.core;bundle-version="5.0.2", + org.eclipse.core.resources;bundle-version="3.4.1", + org.eclipse.cdt.managedbuilder.ui;bundle-version="5.0.1", + org.eclipse.cdt.ui;bundle-version="5.0.2", + org.eclipse.ui.ide;bundle-version="3.4.1", + org.eclipse.core.variables;bundle-version="3.2.100", + org.eclipse.cdt.managedbuilder.xlc.ui;bundle-version="5.0.0", + org.eclipse.cdt.core.parser.upc;bundle-version="5.0.0" +Bundle-RequiredExecutionEnvironment: J2SE-1.4 +Bundle-ActivationPolicy: lazy +Bundle-Vendor: %Bundle-Vendor.0 +Export-Package: org.eclipse.cdt.managedbuilder.xlupc.ui, + org.eclipse.cdt.managedbuilder.xlupc.ui.wizards +Bundle-Localization: plugin diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/build.properties b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/build.properties new file mode 100644 index 00000000000..0dc34f7833b --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/build.properties @@ -0,0 +1,6 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + plugin.properties diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/icons/c-project.gif b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/icons/c-project.gif new file mode 100644 index 00000000000..0b693cb5f60 Binary files /dev/null and b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/icons/c-project.gif differ diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.properties b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.properties new file mode 100644 index 00000000000..755370966bb --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.properties @@ -0,0 +1,23 @@ +#Properties file for org.eclipse.cdt.managedbuilder.xlupc.ui +Bundle-Vendor.0 = provider??? +Bundle-Name.0 = name??? +category.name.1=UPC +wizard.name.1=UPC Project + +ToolName.compiler.xlupc = UPC Compiler + +TargetName.xlupc.exe=Executable (XL UPC) +TargetName.xlupc.so=Shared Library (XL UPC) +TargetName.xlupc.lib=Static Library(XL UPC) + +ToolChainName.Upc=UPC Tool Chain + +ConfigName.Dbg=Debug +ConfigName.Rel=Release + +PlatformName.Rel=Release Platform +PlatformName.Dbg=Debug Platform + +BuildProperty.type.name.xlupc.executable=Executable (UPC) +BuildProperty.type.name.xlupc.staticLibrary=Static Library (UPC) +BuildProperty.type.name.xlupc.sharedLibrary=Shared Library (UPC) diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.xml b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.xml new file mode 100644 index 00000000000..3abe93e484f --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.xml @@ -0,0 +1,371 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Activator.java b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Activator.java new file mode 100644 index 00000000000..459f613723e --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Activator.java @@ -0,0 +1,42 @@ +/******************************************************************************* + * 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; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + + +public class Activator extends AbstractUIPlugin { + + public static final String PLUGIN_ID = "org.eclipse.cdt.managedbuilder.xlupc.ui"; //$NON-NLS-1$ + + + private static Activator plugin; + + + public Activator() { + } + + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + public static Activator getDefault() { + return plugin; + } + +} diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Messages.java b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Messages.java new file mode 100644 index 00000000000..f78eeb59d8f --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Messages.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * 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; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + + private static final String BUNDLE_NAME = "org.eclipse.cdt.managedbuilder.xlupc.ui.messages"; //$NON-NLS-1$ + + static { + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() {} + + public static String UpcProjectWizard_0; + public static String UpcProjectWizard_1; + public static String XLUpcSettingsWizardPage_0; + public static String XLUpcSettingsWizardPage_1; +} diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/messages.properties b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/messages.properties new file mode 100644 index 00000000000..6c3ae1ca1b5 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/messages.properties @@ -0,0 +1,16 @@ +############################################################################### +# 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 +############################################################################### + +UpcProjectWizard_0=UPC Project +UpcProjectWizard_1=Create UPC project of selected type + +XLUpcSettingsWizardPage_0=XL UPC Settings +XLUpcSettingsWizardPage_1=XL Compiler Settings \ No newline at end of file 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 ALL_TYPES = new HashSet() {{ + 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); + } + } + } +} -- cgit v1.2.3