added an action to configure experimental scr builder
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF b/modeling/plugins/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF
index d8b3d38..ce9f369 100644
--- a/modeling/plugins/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF
@@ -16,7 +16,8 @@
org.eclipse.wst.xml.core;bundle-version="1.1.400";resolution:=optional,
org.eclipse.wst.xml.ui;bundle-version="1.1.0";resolution:=optional,
org.eclipse.jface.text;bundle-version="3.5.0",
- org.eclipse.ui.ide;bundle-version="3.5.0"
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.ui
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Localization: plugin
@@ -26,7 +27,8 @@
org.eclipse.pde.ds.ui.internal.editor.detailpart.properties;x-internal:=true,
org.eclipse.pde.ds.ui.internal.editor.detailpart.services;x-internal:=true,
org.eclipse.pde.ds.ui.internal.editor.masterdetail;x-internal:=true,
- org.eclipse.pde.ds.ui.internal.editor.wizard;x-internal:=true
+ org.eclipse.pde.ds.ui.internal.editor.wizard;x-internal:=true,
+ org.eclipse.pde.ds.ui.internal.handlers;x-internal:=true
Import-Package: org.eclipse.core.databinding,
org.eclipse.core.databinding.observable,
org.eclipse.core.databinding.observable.value,
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/plugin.properties b/modeling/plugins/org.eclipse.pde.ds.ui/plugin.properties
index dac6ed4..42be1ff 100644
--- a/modeling/plugins/org.eclipse.pde.ds.ui/plugin.properties
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/plugin.properties
@@ -7,9 +7,10 @@
# Contributors:
# Anyware Technologies - initial API and implementation
#
-# $Id: plugin.properties,v 1.1 2009/02/13 13:26:26 bcabe Exp $
+# $Id: plugin.properties,v 1.2 2009/07/18 20:10:11 bcabe Exp $
pluginName = Declarative Services 1.1 Editor
providerName = Eclipse.org
-editor.name = Component Definition Editor (experimental)
\ No newline at end of file
+editor.name = Component Definition Editor (experimental)
+command.configureDSBuilder.name = Configure experimental DS Builder
\ No newline at end of file
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/plugin.xml b/modeling/plugins/org.eclipse.pde.ds.ui/plugin.xml
index c101919..1d113f7 100644
--- a/modeling/plugins/org.eclipse.pde.ds.ui/plugin.xml
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/plugin.xml
@@ -17,4 +17,28 @@
</contentTypeBinding>
</editor>
</extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ defaultHandler="org.eclipse.pde.ds.ui.internal.handlers.AddScrBuilderHandler"
+ id="org.eclipse.pde.ds.ui.experimental.commands.addScrBuilder"
+ name="%command.configureDSBuilder.name"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:org.eclipse.ui.popup.any">
+ <command
+ commandId="org.eclipse.pde.ds.ui.experimental.commands.addScrBuilder"
+ style="push">
+ <visibleWhen
+ checkEnabled="false">
+ <iterate>
+ <adapt
+ type="org.eclipse.core.resources.IProject">
+ </adapt></iterate>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
</plugin>
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/handlers/AddScrBuilderHandler.java b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/handlers/AddScrBuilderHandler.java
new file mode 100644
index 0000000..c727c97
--- /dev/null
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/handlers/AddScrBuilderHandler.java
@@ -0,0 +1,58 @@
+package org.eclipse.pde.ds.ui.internal.handlers;
+
+import org.eclipse.core.commands.*;
+import org.eclipse.core.resources.*;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+/**
+ * Our sample handler extends AbstractHandler, an IHandler base class.
+ * @see org.eclipse.core.commands.IHandler
+ * @see org.eclipse.core.commands.AbstractHandler
+ */
+public class AddScrBuilderHandler extends AbstractHandler {
+ /**
+ * The constructor.
+ */
+ public AddScrBuilderHandler() {
+ }
+
+ /**
+ * the command has been executed, so extract extract the needed information
+ * from the application context.
+ */
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ ISelection sel = HandlerUtil.getCurrentSelection(event);
+ if (!sel.isEmpty()) {
+ if (sel instanceof IStructuredSelection) {
+ IProject project = (IProject) ((IStructuredSelection) sel).getFirstElement();
+
+ IProjectDescription projectDescription = null;
+ try {
+ projectDescription = project.getDescription();
+ } catch (CoreException e) {
+ // TODO handle exception ...
+ }
+
+ ICommand[] buildCommands = projectDescription.getBuildSpec();
+ ICommand[] newBuildCommands = new ICommand[buildCommands.length + 1];
+ System.arraycopy(buildCommands, 0, newBuildCommands, 0, buildCommands.length);
+ ICommand buildCommand = projectDescription.newCommand();
+ buildCommand.setBuilderName("org.eclipse.pde.ds.builder.scrBuilder"); //$NON-NLS-1$
+ newBuildCommands[buildCommands.length] = buildCommand; //$NON-NLS-1$
+ projectDescription.setBuildSpec(newBuildCommands);
+
+ try {
+ project.setDescription(projectDescription, IResource.FORCE, null);
+ project.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
+ } catch (CoreException e) {
+ // TODO handle exception ...
+ }
+ }
+ }
+ return null;
+ }
+}