diff options
author | Tom Schindl | 2011-09-14 15:15:24 +0000 |
---|---|---|
committer | Tom Schindl | 2011-09-14 15:15:24 +0000 |
commit | b3f6f4d4d311e7b7b588b6bae9912197e037e479 (patch) | |
tree | a23117eb5d867ad7b93dfff18fe4eaf950366e81 | |
parent | c963b2293f11c216aeefd96651d6ce2f6e984ff8 (diff) | |
download | org.eclipse.e4.tools-b3f6f4d4d311e7b7b588b6bae9912197e037e479.tar.gz org.eclipse.e4.tools-b3f6f4d4d311e7b7b588b6bae9912197e037e479.tar.xz org.eclipse.e4.tools-b3f6f4d4d311e7b7b588b6bae9912197e037e479.zip |
Bug 357634 - Application.e4xmi missing entries when created by
New>e4>Model>New Application Model
4 files changed, 67 insertions, 1 deletions
diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/BaseApplicationModelWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/BaseApplicationModelWizard.java index d6b56991..72f84636 100644 --- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/BaseApplicationModelWizard.java +++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/BaseApplicationModelWizard.java @@ -33,6 +33,7 @@ import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.wizard.Wizard; +import org.eclipse.jface.wizard.WizardPage; import org.eclipse.ui.INewWizard; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPage; @@ -63,10 +64,12 @@ public abstract class BaseApplicationModelWizard extends Wizard implements INewW */ public void addPages() { - page = new NewModelFilePage(selection,getDefaultFileName()); + page = createWizardPage(selection); addPage(page); } + protected abstract NewModelFilePage createWizardPage(ISelection selection); + public abstract String getDefaultFileName(); @Override diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewApplicationModelWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewApplicationModelWizard.java index 7b625052..8e030bb6 100644 --- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewApplicationModelWizard.java +++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewApplicationModelWizard.java @@ -11,9 +11,15 @@ package org.eclipse.e4.internal.tools.wizards.model; import org.eclipse.core.runtime.CoreException; +import org.eclipse.e4.ui.model.application.MAddon; import org.eclipse.e4.ui.model.application.MApplication; import org.eclipse.e4.ui.model.application.MApplicationFactory; import org.eclipse.emf.ecore.EObject; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; public class NewApplicationModelWizard extends BaseApplicationModelWizard { @@ -27,10 +33,53 @@ public class NewApplicationModelWizard extends BaseApplicationModelWizard { MApplication application = MApplicationFactory.INSTANCE.createApplication(); try { application.setElementId(getModelFile().getProject().getName() + ".application"); + if( ((ModelFilePageImpl)getPages()[0]).includeDefaultAddons.getSelection() ) { + String[][] addons = { + { "org.eclipse.e4.core.commands.service", "platform:/plugin/org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon" }, + { "org.eclipse.e4.ui.contexts.service", "platform:/plugin/org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon" }, + { "org.eclipse.e4.ui.bindings.service", "platform:/plugin/org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon" }, + { "org.eclipse.e4.ui.workbench.commands.model", "platform:/plugin/org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon" }, + { "org.eclipse.e4.ui.workbench.contexts.model", "platform:/plugin/org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon" }, + { "org.eclipse.e4.ui.workbench.bindings.model", "platform:/plugin/org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon" } + + }; + + for( String[] a : addons ) { + MAddon addon = MApplicationFactory.INSTANCE.createAddon(); + addon.setElementId(a[0]); + addon.setContributionURI(a[1]); + application.getAddons().add(addon); + } + } } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } return (EObject) application; } + + @Override + protected NewModelFilePage createWizardPage(ISelection selection) { + return new ModelFilePageImpl(selection,getDefaultFileName()); + } + + static class ModelFilePageImpl extends NewModelFilePage { + + private Button includeDefaultAddons; + + public ModelFilePageImpl(ISelection selection, String defaultFilename) { + super(selection, defaultFilename); + } + + @Override + protected void createAdditionalControls(Composite parent) { + super.createAdditionalControls(parent); + + new Label(parent, SWT.NONE); + + includeDefaultAddons = new Button(parent, SWT.CHECK); + includeDefaultAddons.setText("Include default addons"); + includeDefaultAddons.setSelection(true); + } + } }
\ No newline at end of file diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewContributionModelWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewContributionModelWizard.java index 04d252f6..3c9873e6 100644 --- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewContributionModelWizard.java +++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewContributionModelWizard.java @@ -12,6 +12,7 @@ package org.eclipse.e4.internal.tools.wizards.model; import org.eclipse.e4.ui.model.fragment.MFragmentFactory; import org.eclipse.emf.ecore.EObject; +import org.eclipse.jface.viewers.ISelection; public class NewContributionModelWizard extends BaseApplicationModelWizard { @@ -24,4 +25,9 @@ public class NewContributionModelWizard extends BaseApplicationModelWizard { protected EObject createInitialModel() { return (EObject) MFragmentFactory.INSTANCE.createModelFragments(); } + + @Override + protected NewModelFilePage createWizardPage(ISelection selection) { + return new NewModelFilePage(selection,getDefaultFileName()); + } }
\ No newline at end of file diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewModelFilePage.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewModelFilePage.java index 4cb85960..634ea30c 100644 --- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewModelFilePage.java +++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewModelFilePage.java @@ -98,11 +98,19 @@ public class NewModelFilePage extends WizardPage { dialogChanged(); } }); + + new Label(container, SWT.NONE); + + createAdditionalControls(container); initialize(); dialogChanged(); setControl(container); } + protected void createAdditionalControls(Composite parent) { + + } + /** * Tests if the current workbench selection is a suitable container to use. */ |