diff options
author | Olivier Prouvost | 2015-03-16 07:32:08 +0000 |
---|---|---|
committer | Vikas Chandra | 2015-03-24 10:26:29 +0000 |
commit | e1fa96c02a82a5a5f2a9e96c62f2f2fb6a8b13d3 (patch) | |
tree | 383e50a9e6b8ce317fa73d282376de5162787930 | |
parent | 6768c9c0feaef832009104c4554a8f0eb27298d6 (diff) | |
download | eclipse.pde.ui-e1fa96c02a82a5a5f2a9e96c62f2f2fb6a8b13d3.tar.gz eclipse.pde.ui-e1fa96c02a82a5a5f2a9e96c62f2f2fb6a8b13d3.tar.xz eclipse.pde.ui-e1fa96c02a82a5a5f2a9e96c62f2f2fb6a8b13d3.zip |
Bug 441331 - Integrate e4 project template into PDE I20150324-0800
Change-Id: Ia911a454f18b32252ea21bb1e00661f19fe69bc0
Signed-off-by: Olivier Prouvost <olivier.prouvost@opcoach.com>
22 files changed, 789 insertions, 2 deletions
diff --git a/ui/org.eclipse.pde.ui.templates/META-INF/MANIFEST.MF b/ui/org.eclipse.pde.ui.templates/META-INF/MANIFEST.MF index 5c18117257..a290450876 100644 --- a/ui/org.eclipse.pde.ui.templates/META-INF/MANIFEST.MF +++ b/ui/org.eclipse.pde.ui.templates/META-INF/MANIFEST.MF @@ -6,13 +6,15 @@ Bundle-Version: 3.4.800.qualifier Bundle-Vendor: %bundleVendor Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Export-Package: org.eclipse.pde.internal.ui.templates;x-internal:=true, + org.eclipse.pde.internal.ui.templates.e4;x-internal:=true, org.eclipse.pde.internal.ui.templates.ide;x-internal:=true, org.eclipse.pde.internal.ui.templates.osgi;x-internal:=true, org.eclipse.pde.internal.ui.templates.rcp;x-internal:=true Require-Bundle: org.eclipse.ui;bundle-version="[3.3.0,4.0.0)", org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)", org.eclipse.pde.ui;bundle-version="[3.3.0,4.0.0)", - org.eclipse.core.resources;bundle-version="[3.6.0,4.0.0)" + org.eclipse.core.resources;bundle-version="[3.6.0,4.0.0)", + org.eclipse.ui.ide;bundle-version="3.11.0" Bundle-Localization: plugin Eclipse-LazyStart: true Bundle-Activator: org.eclipse.pde.internal.ui.templates.Activator diff --git a/ui/org.eclipse.pde.ui.templates/plugin.properties b/ui/org.eclipse.pde.ui.templates/plugin.properties index dc1ce0ece5..9e0b04f05e 100644 --- a/ui/org.eclipse.pde.ui.templates/plugin.properties +++ b/ui/org.eclipse.pde.ui.templates/plugin.properties @@ -7,6 +7,7 @@ # # Contributors: # IBM Corporation - initial API and implementation +# Olivier Prouvost <olivier.prouvost@opcoach.com> - Bug 441331 ############################################################################### pluginContent.helloWorld.name = Hello, World pluginContent.helloWorld.description=\ @@ -351,3 +352,10 @@ pluginContent.OSGiEventAdminService.description=\ <p><b>Imports Used</b></p>\ <li>org.osgi.framework</li>\ <li>org.osgi.service.event</li> + +pluginContent.e4RCP.name = Eclipse 4 RCP application +pluginContent.e4RCP.description=\ +<p>This wizard creates a standalone Eclipse 4 RCP application with a sample part and the basic commands to quit the application. </p>\ +<p><b>Extensions Used</b></p>\ +<li>org.eclipse.core.runtime.products</li>\ + diff --git a/ui/org.eclipse.pde.ui.templates/plugin.xml b/ui/org.eclipse.pde.ui.templates/plugin.xml index 7063956e96..75b605e846 100644 --- a/ui/org.eclipse.pde.ui.templates/plugin.xml +++ b/ui/org.eclipse.pde.ui.templates/plugin.xml @@ -9,6 +9,7 @@ Contributors: IBM Corporation - initial API and implementation + Olivier Prouvost <olivier.prouvost@opcoach.com> - Bug 441331 --> <plugin> @@ -502,6 +503,19 @@ %pluginContent.OSGiEventAdminService.description </description> </wizard> + <wizard + class="org.eclipse.pde.internal.ui.templates.e4.E4ApplicationNewWizard" + icon="$nl$/icons/etool16/newexprj_wiz.gif" + id="org.eclipse.pde.ui.e4EmptyApplication" + java="true" + name="%pluginContent.e4RCP.name" + pureOSGi="false" + rcp="true" + ui-content="true"> + <description> + %pluginContent.e4RCP.description + </description> + </wizard> </extension> diff --git a/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/IHelpContextIds.java b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/IHelpContextIds.java index 44197eae63..55dc88e436 100644 --- a/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/IHelpContextIds.java +++ b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/IHelpContextIds.java @@ -25,6 +25,7 @@ public interface IHelpContextIds { public static final String TEMPLATE_VIEW = PREFIX + "template_view"; //$NON-NLS-1$ public static final String TEMPLATE_BUILDER = PREFIX + "template_builder"; //$NON-NLS-1$ public static final String TEMPLATE_RCP_MAIL = PREFIX + "rcp_mail"; //$NON-NLS-1$ + public static final String TEMPLATE_E4_APPLICATION = PREFIX + "e4Application"; //$NON-NLS-1$ public static final String TEMPLATE_UNIVERSAL_WELCOME = PREFIX + "template_universal_welcome"; //$NON-NLS-1$ // TODO: MP: SPLASH: Update help context ID public static final String TEMPLATE_SPLASH_HANDLERS = PREFIX + "splash_handlers"; //$NON-NLS-1$ diff --git a/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/PDETemplateMessages.java b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/PDETemplateMessages.java index 45d8c149a0..dc894fc40f 100644 --- a/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/PDETemplateMessages.java +++ b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/PDETemplateMessages.java @@ -94,6 +94,16 @@ public class PDETemplateMessages extends NLS { public static String ViewRCPTemplate_packageName; public static String ViewRCPTemplate_windowTitle; + public static String E4ApplicationNewWizard_title; + public static String E4ApplicationTemplate_title; + public static String E4ApplicationTemplate_desc; + public static String E4ApplicationTemplate_appClass; + public static String E4ApplicationTemplate_packageName; + public static String E4ApplicationTemplate_windowTitle; + public static String E4ApplicationTemplate_createSampleContent; + public static String E4ApplicationTemplate_createLifeCycle; + public static String E4ApplicationTemplate_lifeCycleClassname; + public static String MultiPageEditorNewWizard_wtitle; public static String MultiPageEditorTemplate_title; public static String MultiPageEditorTemplate_desc; diff --git a/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/e4/E4ApplicationNewWizard.java b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/e4/E4ApplicationNewWizard.java new file mode 100644 index 0000000000..dd0865dfde --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/e4/E4ApplicationNewWizard.java @@ -0,0 +1,111 @@ +/******************************************************************************* + * Copyright (c) 2015 OPCoach. + * 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: + * Olivier Prouvost <olivier.prouvost@opcoach.com> - initial API and implementation (bug #441331) + *******************************************************************************/ +package org.eclipse.pde.internal.ui.templates.e4; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.pde.core.plugin.*; +import org.eclipse.pde.internal.ui.templates.PDETemplateMessages; +import org.eclipse.pde.ui.IFieldData; +import org.eclipse.pde.ui.templates.*; +import org.eclipse.ui.*; +import org.eclipse.ui.part.FileEditorInput; + +public class E4ApplicationNewWizard extends NewPluginTemplateWizard { + + private static final String ORG_ECLIPSE_CORE_RUNTIME = "org.eclipse.core.runtime"; //$NON-NLS-1$ + private static final String ORG_ECLIPSE_UI = "org.eclipse.ui"; //$NON-NLS-1$ + private static final String MODEL_EDITOR_ID = "org.eclipse.e4.tools.emf.editor3x.e4wbm"; //$NON-NLS-1$ + + @Override + public void init(IFieldData data) { + super.init(data); + setWindowTitle(PDETemplateMessages.E4ApplicationNewWizard_title); + } + + @Override + public ITemplateSection[] createTemplateSections() { + return new ITemplateSection[] {new E4ApplicationTemplate()}; + } + + @Override + public boolean performFinish(IProject project, IPluginModelBase model, IProgressMonitor monitor) { + // Must do like ancestor + boolean result = super.performFinish(project, model, monitor); + + // but must then remove the "org.eclipse.ui" dependency which has been generated ! + // and core.runtime without any version (must remove it and readd it with good version) ! + IPluginBase pb = model.getPluginBase(); + IPluginImport ui = null, runtime = null; + String runtimeVersion = null; + + for (IPluginImport ii : pb.getImports()) { + if (ii.getId().equals(ORG_ECLIPSE_UI)) + ui = ii; + if (ii.getId().equals(ORG_ECLIPSE_CORE_RUNTIME)) { + // This plugin appears twice : with and without version (due to ancestor) + if (ii.getVersion() == null) + runtime = ii; + else + runtimeVersion = ii.getVersion(); + } + + } + + // Remove these two bad imports... + try { + if (ui != null) + pb.remove(ui); + if (runtime != null) { + // Remove the org.eclipse.core.runtime without any version + pb.remove(runtime); + + // And must re-add it with correct version + PluginReference pr = new PluginReference(ORG_ECLIPSE_CORE_RUNTIME, runtimeVersion, IMatchRules.GREATER_OR_EQUAL); + IPluginImport iimport = model.getPluginFactory().createImport(); + iimport.setId(pr.getId()); + iimport.setVersion(pr.getVersion()); + iimport.setMatch(pr.getMatch()); + pb.add(iimport); + + } + + } catch (CoreException e) { + // Not a so big problem if remove failed... + } + + try { + openEditorForApplicationModel(project); + } catch (PartInitException e) { + // Not a so big problem if editor does not open (may be e4 tools not present)... + } + + return result; + } + + /** + * Opens the model editor after the project was created. + * + * @throws PartInitException + */ + private void openEditorForApplicationModel(IProject project) throws PartInitException { + final IFile file = project.getFile(E4ApplicationTemplate.E4_MODEL_FILE); + if (file != null) { + final FileEditorInput input = new FileEditorInput(file); + final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + final IWorkbenchPage page = window.getActivePage(); + page.openEditor(input, MODEL_EDITOR_ID); + } + } + +} diff --git a/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/e4/E4ApplicationTemplate.java b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/e4/E4ApplicationTemplate.java new file mode 100644 index 0000000000..4a14e9d5ab --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/e4/E4ApplicationTemplate.java @@ -0,0 +1,201 @@ +/******************************************************************************* + * Copyright (c) 2015 OPCoach. + * 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: + * Olivier Prouvost <olivier.prouvost@opcoach.com> - initial API and implementation (bug #441331) + *******************************************************************************/ +package org.eclipse.pde.internal.ui.templates.e4; + +import java.io.File; +import java.util.ArrayList; +import org.eclipse.core.runtime.*; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.pde.core.plugin.*; +import org.eclipse.pde.internal.ui.templates.*; +import org.eclipse.pde.ui.templates.PluginReference; +import org.eclipse.pde.ui.templates.TemplateOption; +import org.osgi.framework.Bundle; +import org.osgi.framework.Version; + +public class E4ApplicationTemplate extends PDETemplateSection { + + private static final String E4_SWT_APPLICATION_ID = "org.eclipse.e4.ui.workbench.swt.E4Application"; //$NON-NLS-1$ + public static final String KEY_CREATE_SAMPLE_CONTENT = "createContent"; //$NON-NLS-1$ + public static final String KEY_CREATE_LIFE_CYCLE = "createLifeCycle"; //$NON-NLS-1$ + public static final String KEY_LIFE_CYCLE_CLASS_NAME = "lifeCycleClassName"; //$NON-NLS-1$ + public static final String KEY_WINDOW_TITLE = "windowTitle"; //$NON-NLS-1$ + + static final String E4_MODEL_FILE = "Application.e4xmi"; //$NON-NLS-1$ + private static final String EMPTY_E4_MODEL_FILE = "bin/" + E4_MODEL_FILE; //$NON-NLS-1$ + + TemplateOption lifeCycleClassnameOption; + + public E4ApplicationTemplate() { + setPageCount(1); + createOptions(); + } + + @Override + public void addPages(Wizard wizard) { + WizardPage page = createPage(0, IHelpContextIds.TEMPLATE_E4_APPLICATION); + page.setTitle(PDETemplateMessages.E4ApplicationTemplate_title); + page.setDescription(PDETemplateMessages.E4ApplicationTemplate_desc); + wizard.addPage(page); + markPagesAdded(); + } + + /* Create options expected in the page */ + private void createOptions() { + addOption(KEY_WINDOW_TITLE, PDETemplateMessages.E4ApplicationTemplate_windowTitle, "Eclipse 4 RCP Application", 0); //$NON-NLS-1$ + addOption(KEY_CREATE_SAMPLE_CONTENT, PDETemplateMessages.E4ApplicationTemplate_createSampleContent, false, 0); + addOption(KEY_CREATE_LIFE_CYCLE, PDETemplateMessages.E4ApplicationTemplate_createLifeCycle, false, 0); + lifeCycleClassnameOption = addOption(KEY_LIFE_CYCLE_CLASS_NAME, PDETemplateMessages.E4ApplicationTemplate_lifeCycleClassname, "E4LifeCycle", 0); //$NON-NLS-1$ + lifeCycleClassnameOption.setRequired(false); + lifeCycleClassnameOption.setEnabled(false); + } + + + @Override + public void validateOptions(TemplateOption source) { + if (source.getName().equals(KEY_CREATE_LIFE_CYCLE)) { + // Check if classname is set when lifeCycle required + lifeCycleClassnameOption.setRequired((Boolean) source.getValue()); + lifeCycleClassnameOption.setEnabled((Boolean) source.getValue()); + } + super.validateOptions(source); + + } + + @Override + public String getSectionId() { + // return the name of the directory containing the files in org.eclipse.pde.ui.templates/templates_3.5 + return "E4Application"; //$NON-NLS-1$ + } + + @Override + protected void updateModel(IProgressMonitor monitor) throws CoreException { + // There is only a product extension + createProductExtension(); + + // Other files located in 'org.eclipse.pde.ui.templates/templates_3.5/E4Application' are copied automatically + } + + private void createProductExtension() throws CoreException { + IPluginBase plugin = model.getPluginBase(); + IPluginExtension extension = createExtension("org.eclipse.core.runtime.products", true); //$NON-NLS-1$ + extension.setId(VALUE_PRODUCT_ID); + + IPluginElement element = model.getFactory().createElement(extension); + element.setName("product"); //$NON-NLS-1$ + element.setAttribute("application", E4_SWT_APPLICATION_ID); //$NON-NLS-1$ + element.setAttribute("name", getStringOption(KEY_WINDOW_TITLE)); //$NON-NLS-1$ + + IPluginElement property; + + if (getBooleanOption(KEY_CREATE_LIFE_CYCLE)) { + property = model.getFactory().createElement(element); + property.setName("property"); //$NON-NLS-1$ + + property.setAttribute("name", "lifeCycleURI");//$NON-NLS-1$ //$NON-NLS-2$ + property.setAttribute("value", "bundleclass://" + getValue(KEY_PLUGIN_ID) + "/" + getValue(KEY_PACKAGE_NAME) + "." + getStringOption(KEY_LIFE_CYCLE_CLASS_NAME)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + element.add(property); + } + + property = model.getFactory().createElement(element); + property.setName("property"); //$NON-NLS-1$ + property.setAttribute("name", "applicationCSS");//$NON-NLS-1$ //$NON-NLS-2$ + property.setAttribute("value", "platform:/plugin/" + getValue(KEY_PLUGIN_ID) + "/css/default.css"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + element.add(property); + + extension.add(element); + + if (!extension.isInTheModel()) + plugin.add(extension); + } + + @Override + protected boolean isOkToCreateFolder(File sourceFolder) { + // We copy the files in 'org.eclipse.pde.ui.templates/templates_3.5/E4Application/*/handlers' or 'parts' if content required + String fname = sourceFolder.getName(); + if (fname.endsWith("handlers") || fname.endsWith("parts")) //$NON-NLS-1$//$NON-NLS-2$ + return getBooleanOption(KEY_CREATE_SAMPLE_CONTENT); + return super.isOkToCreateFolder(sourceFolder); + } + + @Override + protected boolean isOkToCreateFile(File sourceFile) { + + // If file is the lifeCycleClassname (with a $ at the end) we keep it only if life cycle must be created. + if (sourceFile.getName().endsWith(KEY_LIFE_CYCLE_CLASS_NAME + "$.java")) //$NON-NLS-1$ + return getBooleanOption(KEY_CREATE_LIFE_CYCLE); + + // There are 2 application models : + // the bin/Application.e4xmi containing the empty model + // the Application.e4xmi containing the customized model with content. + // We must keep one of them depending on the KEY_CREATE_SAMPLE_CONTENT + + if (sourceFile.getName().endsWith(E4_MODEL_FILE)) { + + // This is one of the 2 files... + // Check if this is the bin/Application.e4xmi. In this cas we must keep it if no content expected + if (sourceFile.getAbsolutePath().endsWith(EMPTY_E4_MODEL_FILE)) + return !getBooleanOption(KEY_CREATE_SAMPLE_CONTENT); + + // This is the root file (containing the customized content), must keep it if content expected + return getBooleanOption(KEY_CREATE_SAMPLE_CONTENT); + } + + return super.isOkToCreateFile(sourceFile); + } + + @Override + public String getUsedExtensionPoint() { + return null; + } + + @Override + public boolean isDependentOnParentWizard() { + return true; + } + + @Override + public int getNumberOfWorkUnits() { + return super.getNumberOfWorkUnits() + 1; + } + + + @Override + public IPluginReference[] getDependencies(String schemaVersion) { + + String[] dependencies = new String[] {"javax.inject", //$NON-NLS-1$ + "org.eclipse.core.runtime", "org.eclipse.swt", //$NON-NLS-1$//$NON-NLS-2$ + "org.eclipse.e4.ui.model.workbench", "org.eclipse.jface", //$NON-NLS-1$ //$NON-NLS-2$ + "org.eclipse.e4.ui.services", "org.eclipse.e4.ui.workbench", //$NON-NLS-1$ //$NON-NLS-2$ + "org.eclipse.e4.core.di", "org.eclipse.e4.ui.di", //$NON-NLS-1$ //$NON-NLS-2$ + "org.eclipse.e4.core.contexts",}; //$NON-NLS-1$ + + final ArrayList<IPluginReference> result = new ArrayList<IPluginReference>(dependencies.length); + for (final String dependency : dependencies) { + final Bundle bundle = Platform.getBundle(dependency); + String versionString = "0.0.0"; //$NON-NLS-1$ + if (dependency != null) { + final Version version = bundle.getVersion(); + versionString = version.getMajor() + "." //$NON-NLS-1$ + + version.getMinor() + "." + version.getMicro(); //$NON-NLS-1$ + } + result.add(new PluginReference(dependency, versionString, IMatchRules.GREATER_OR_EQUAL)); + } + return result.toArray(new IPluginReference[0]); + + } + + @Override + public String[] getNewFiles() { + return new String[] {"icons/", "css/default.css", "Application.e4xmi"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } +} diff --git a/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/pderesources.properties b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/pderesources.properties index d25a9f3608..90a4f296b8 100644 --- a/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/pderesources.properties +++ b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/pderesources.properties @@ -78,6 +78,16 @@ ViewRCPTemplate_appClass=App&lication class: ViewRCPTemplate_packageName = &Java package name: ViewRCPTemplate_windowTitle=Application window &title: +E4ApplicationNewWizard_title=Eclipse 4 RCP Application with basic part and commands +E4ApplicationTemplate_title=Simple Eclipse 4 Application +E4ApplicationTemplate_desc=This template creates an Eclipse 4 RCP application that consists of an application window with a single part and basic commands. +E4ApplicationTemplate_appClass=App&lication class: +E4ApplicationTemplate_packageName = &Java package name: +E4ApplicationTemplate_windowTitle=Application window &title: +E4ApplicationTemplate_createSampleContent=Create Sample Content (part, menu, command...) +E4ApplicationTemplate_createLifeCycle=Create Life Cycle +E4ApplicationTemplate_lifeCycleClassname=Life Cycle class name: + MultiPageEditorNewWizard_wtitle = New plug-in project with a multi-page editor MultiPageEditorTemplate_title = Sample Multi-Page Editor MultiPageEditorTemplate_desc = Choose the options that will be used to generate the multi-page editor. diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/$pluginId$.product b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/$pluginId$.product new file mode 100644 index 0000000000..88fd5a55c0 --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/$pluginId$.product @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?pde version="3.5"?> + +<product name="$pluginId$" id="$pluginId$.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="true"> + + <configIni use="default"> + </configIni> + + <launcherArgs> + <programArgs>-clearPersistedState</programArgs> + <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac> + </launcherArgs> + + <windowImages/> + + <plugins> + <plugin id="$pluginId$"/> + <plugin id="com.ibm.icu"/> + <plugin id="javax.annotation"/> + <plugin id="javax.inject"/> + <plugin id="javax.xml"/> + <plugin id="org.apache.batik.css"/> + <plugin id="org.apache.batik.util"/> + <plugin id="org.apache.batik.util.gui"/> + <plugin id="org.apache.commons.logging"/> + <plugin id="org.eclipse.core.commands"/> + <plugin id="org.eclipse.core.contenttype"/> + <plugin id="org.eclipse.core.databinding"/> + <plugin id="org.eclipse.core.databinding.beans"/> + <plugin id="org.eclipse.core.databinding.observable"/> + <plugin id="org.eclipse.core.databinding.property"/> + <plugin id="org.eclipse.core.expressions"/> + <plugin id="org.eclipse.core.filesystem"/> + <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/> + <plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/> + <plugin id="org.eclipse.core.filesystem.linux.ppc" fragment="true"/> + <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/> + <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/> + <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/> + <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/> + <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/> + <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/> + <plugin id="org.eclipse.core.jobs"/> + <plugin id="org.eclipse.core.resources"/> + <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/> + <plugin id="org.eclipse.core.runtime"/> + <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/> + <plugin id="org.eclipse.e4.core.commands"/> + <plugin id="org.eclipse.e4.core.contexts"/> + <plugin id="org.eclipse.e4.core.di"/> + <plugin id="org.eclipse.e4.core.di.extensions"/> + <plugin id="org.eclipse.e4.core.services"/> + <plugin id="org.eclipse.e4.ui.bindings"/> + <plugin id="org.eclipse.e4.ui.css.core"/> + <plugin id="org.eclipse.e4.ui.css.swt"/> + <plugin id="org.eclipse.e4.ui.css.swt.theme"/> + <plugin id="org.eclipse.e4.ui.di"/> + <plugin id="org.eclipse.e4.ui.model.workbench"/> + <plugin id="org.eclipse.e4.ui.services"/> + <plugin id="org.eclipse.e4.ui.widgets"/> + <plugin id="org.eclipse.e4.ui.workbench"/> + <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/> + <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa"/> + <plugin id="org.eclipse.e4.ui.workbench.swt"/> + <plugin id="org.eclipse.e4.ui.workbench3"/> + <plugin id="org.eclipse.emf.common"/> + <plugin id="org.eclipse.emf.databinding"/> + <plugin id="org.eclipse.emf.ecore"/> + <plugin id="org.eclipse.emf.ecore.change"/> + <plugin id="org.eclipse.emf.ecore.xmi"/> + <plugin id="org.eclipse.equinox.app"/> + <plugin id="org.eclipse.equinox.common"/> + <plugin id="org.eclipse.equinox.concurrent"/> + <plugin id="org.eclipse.equinox.ds"/> + <plugin id="org.eclipse.equinox.event"/> + <plugin id="org.eclipse.equinox.preferences"/> + <plugin id="org.eclipse.equinox.registry"/> + <plugin id="org.eclipse.equinox.util"/> + <plugin id="org.eclipse.jface"/> + <plugin id="org.eclipse.jface.databinding"/> + <plugin id="org.eclipse.osgi"/> + <plugin id="org.eclipse.osgi.compatibility.state"/> + <plugin id="org.eclipse.osgi.services"/> + <plugin id="org.eclipse.swt"/> + <plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/> + <plugin id="org.eclipse.swt.cocoa.macosx" fragment="true"/> + <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/> + <plugin id="org.eclipse.swt.gtk.linux.ppc" fragment="true"/> + <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/> + <plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/> + <plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/> + <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/> + <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/> + <plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/> + <plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/> + <plugin id="org.eclipse.swt.motif.aix.ppc" fragment="true"/> + <plugin id="org.eclipse.swt.motif.hpux.ia64_32" fragment="true"/> + <plugin id="org.eclipse.swt.motif.linux.x86" fragment="true"/> + <plugin id="org.eclipse.swt.motif.solaris.sparc" fragment="true"/> + <plugin id="org.eclipse.swt.photon.qnx.x86" fragment="true"/> + <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/> + <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/> + <plugin id="org.w3c.css.sac"/> + <plugin id="org.w3c.dom.smil"/> + <plugin id="org.w3c.dom.svg"/> + <plugin id="org.w3c.dom.events"/> + </plugins> + + +</product> diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/Application.e4xmi b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/Application.e4xmi new file mode 100644 index 0000000000..7facdfd689 --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/Application.e4xmi @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="UTF-8"?> +<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:advanced="http://www.eclipse.org/ui/2010/UIModel/application/ui/advanced" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_6wlLcMgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ide.application" bindingContexts="_6wlLecgZEeSyMNYR5xypkQ"> + <children xsi:type="basic:TrimmedWindow" xmi:id="_6wlLccgZEeSyMNYR5xypkQ" label="$windowTitle$" width="500" height="400"> + <children xsi:type="advanced:PerspectiveStack" xmi:id="_6wlLkMgZEeSyMNYR5xypkQ"> + <children xsi:type="advanced:Perspective" xmi:id="_6wlLkcgZEeSyMNYR5xypkQ"> + <children xsi:type="basic:PartSashContainer" xmi:id="_6wlLksgZEeSyMNYR5xypkQ"> + <children xsi:type="basic:PartStack" xmi:id="_6wlLk8gZEeSyMNYR5xypkQ"> + <children xsi:type="basic:Part" xmi:id="_6wlLlMgZEeSyMNYR5xypkQ" contributionURI="bundleclass://$pluginId$/$packageName$.parts.SamplePart" label="Sample Part"/> + </children> + </children> + </children> + </children> + <mainMenu xmi:id="_6wlLicgZEeSyMNYR5xypkQ" elementId="menu:org.eclipse.ui.main.menu"> + <children xsi:type="menu:Menu" xmi:id="_6wlLisgZEeSyMNYR5xypkQ" label="File"> + <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLi8gZEeSyMNYR5xypkQ" label="Open" iconURI="platform:/plugin/$pluginId$/icons/sample.png" command="_6wlLgMgZEeSyMNYR5xypkQ"/> + <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLjMgZEeSyMNYR5xypkQ" label="Save" iconURI="platform:/plugin/$pluginId$/icons/save_edit.png" command="_6wlLg8gZEeSyMNYR5xypkQ"/> + <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLjcgZEeSyMNYR5xypkQ" label="Quit" command="_6wlLfMgZEeSyMNYR5xypkQ"/> + </children> + <children xsi:type="menu:Menu" xmi:id="_6wlLjsgZEeSyMNYR5xypkQ" label="Help"> + <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLj8gZEeSyMNYR5xypkQ" label="About" command="_6wlLhsgZEeSyMNYR5xypkQ"/> + </children> + </mainMenu> + <trimBars xmi:id="_6wlLlcgZEeSyMNYR5xypkQ"> + <children xsi:type="menu:ToolBar" xmi:id="_6wlLlsgZEeSyMNYR5xypkQ" elementId="toolbar:org.eclipse.ui.main.toolbar"> + <children xsi:type="menu:HandledToolItem" xmi:id="_6wlLl8gZEeSyMNYR5xypkQ" iconURI="platform:/plugin/$pluginId$/icons/sample.png" command="_6wlLgMgZEeSyMNYR5xypkQ"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_6wlLmMgZEeSyMNYR5xypkQ" iconURI="platform:/plugin/$pluginId$/icons/save_edit.png" command="_6wlLg8gZEeSyMNYR5xypkQ"/> + </children> + </trimBars> + </children> + <handlers xmi:id="_6wlLfcgZEeSyMNYR5xypkQ" elementId="$packageName$.handlers.quitCommand" contributionURI="bundleclass://$pluginId$/$packageName$.handlers.QuitHandler" command="_6wlLfMgZEeSyMNYR5xypkQ"/> + <handlers xmi:id="_6wlLgcgZEeSyMNYR5xypkQ" elementId="$packageName$.handlers.openCommand" contributionURI="bundleclass://$pluginId$/$packageName$.handlers.OpenHandler" command="_6wlLgMgZEeSyMNYR5xypkQ"/> + <handlers xmi:id="_6wlLhMgZEeSyMNYR5xypkQ" elementId="$packageName$.handlers.saveCommand" contributionURI="bundleclass://$pluginId$/$packageName$.handlers.SaveHandler" command="_6wlLg8gZEeSyMNYR5xypkQ"/> + <handlers xmi:id="_6wlLh8gZEeSyMNYR5xypkQ" elementId="$packageName$.handlers.aboutCommand" contributionURI="bundleclass://$pluginId$/$packageName$.handlers.AboutHandler" command="_6wlLhsgZEeSyMNYR5xypkQ"/> + <bindingTables xmi:id="_6wlLfsgZEeSyMNYR5xypkQ" bindingContext="_6wlLecgZEeSyMNYR5xypkQ"> + <bindings xmi:id="_6wlLf8gZEeSyMNYR5xypkQ" keySequence="M1+Q" command="_6wlLfMgZEeSyMNYR5xypkQ"/> + <bindings xmi:id="_6wlLgsgZEeSyMNYR5xypkQ" keySequence="M1+O" command="_6wlLgMgZEeSyMNYR5xypkQ"/> + <bindings xmi:id="_6wlLhcgZEeSyMNYR5xypkQ" keySequence="M1+S" command="_6wlLg8gZEeSyMNYR5xypkQ"/> + <bindings xmi:id="_6wlLiMgZEeSyMNYR5xypkQ" keySequence="M1+A" command="_6wlLhsgZEeSyMNYR5xypkQ"/> + </bindingTables> + <rootContext xmi:id="_6wlLecgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.dialogAndWindow" name="In Dialog and Windows"> + <children xmi:id="_6wlLesgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.window" name="In Windows"/> + <children xmi:id="_6wlLe8gZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.dialog" name="In Dialogs"/> + </rootContext> + <commands xmi:id="_6wlLfMgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.file.exit" commandName="quitCommand"/> + <commands xmi:id="_6wlLgMgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.file.open" commandName="openCommand"/> + <commands xmi:id="_6wlLg8gZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.file.save" commandName="saveCommand"/> + <commands xmi:id="_6wlLhsgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.help.aboutAction" commandName="aboutCommand"/> + <addons xmi:id="_6wlLcsgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/> + <addons xmi:id="_6wlLc8gZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/> + <addons xmi:id="_6wlLdMgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/> + <addons xmi:id="_6wlLdcgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/> + <addons xmi:id="_6wlLdsgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.handler.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/> + <addons xmi:id="_6wlLd8gZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/> + <addons xmi:id="_6wlLeMgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/> +</application:Application> diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/Application.e4xmi b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/Application.e4xmi new file mode 100644 index 0000000000..e6a411334c --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/Application.e4xmi @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmi:id="_c3AF0MjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ide.application" bindingContexts="_c3AF2cjYEeSyMNYR5xypkQ"> + <children xsi:type="basic:TrimmedWindow" xmi:id="_c3AF0cjYEeSyMNYR5xypkQ" label="Empty E4 Application" width="500" height="400"/> + <rootContext xmi:id="_c3AF2cjYEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.dialogAndWindow" name="In Dialog and Windows"> + <children xmi:id="_c3AF2sjYEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.window" name="In Windows"/> + <children xmi:id="_c3AF28jYEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.dialog" name="In Dialogs"/> + </rootContext> + <addons xmi:id="_c3AF0sjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/> + <addons xmi:id="_c3AF08jYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/> + <addons xmi:id="_c3AF1MjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/> + <addons xmi:id="_c3AF1cjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/> + <addons xmi:id="_c3AF1sjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.handler.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/> + <addons xmi:id="_c3AF18jYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/> + <addons xmi:id="_c3AF2MjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/> +</application:Application> diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/css/default.css b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/css/default.css new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/css/default.css diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/icons/sample.png b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/icons/sample.png Binary files differnew file mode 100644 index 0000000000..932e4518cd --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/icons/sample.png diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/icons/save_edit.png b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/icons/save_edit.png Binary files differnew file mode 100644 index 0000000000..2c598e5aef --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/bin/icons/save_edit.png diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/$activator$.java b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/$activator$.java new file mode 100644 index 0000000000..88259693a2 --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/$activator$.java @@ -0,0 +1,30 @@ +package $packageName$; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class $activator$ implements BundleActivator { + + private static BundleContext context; + + static BundleContext getContext() { + return context; + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext bundleContext) throws Exception { + $activator$.context = bundleContext; + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext bundleContext) throws Exception { + $activator$.context = null; + } + +} diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/$lifeCycleClassName$.java b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/$lifeCycleClassName$.java new file mode 100644 index 0000000000..578d406820 --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/$lifeCycleClassName$.java @@ -0,0 +1,43 @@ +/******************************************************************************* + * Copyright (c) 2014 TwelveTone LLC 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: + * Steven Spungin <steven@spungin.tv> - initial API and implementation + *******************************************************************************/ +package $packageName$; + +import org.eclipse.e4.core.contexts.IEclipseContext; +import org.eclipse.e4.ui.workbench.lifecycle.PostContextCreate; +import org.eclipse.e4.ui.workbench.lifecycle.PreSave; +import org.eclipse.e4.ui.workbench.lifecycle.ProcessAdditions; +import org.eclipse.e4.ui.workbench.lifecycle.ProcessRemovals; + +/** + * This is a stub implementation containing e4 LifeCycle annotated methods.<br /> + * There is a corresponding entry in <em>plugin.xml</em> (under the + * <em>org.eclipse.core.runtime.products' extension point</em>) that references + * this class. + **/ +@SuppressWarnings("restriction") +public class $lifeCycleClassName$ { + + @PostContextCreate + void postContextCreate(IEclipseContext workbenchContext) { + } + + @PreSave + void preSave(IEclipseContext workbenchContext) { + } + + @ProcessAdditions + void processAdditions(IEclipseContext workbenchContext) { + } + + @ProcessRemovals + void processRemovals(IEclipseContext workbenchContext) { + } +} diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/AboutHandler.java b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/AboutHandler.java new file mode 100644 index 0000000000..9349bab0be --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/AboutHandler.java @@ -0,0 +1,23 @@ +/******************************************************************************* + * Copyright (c) 2010 - 2013 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 + * Lars Vogel <lars.Vogel@gmail.com> - Bug 419770 + *******************************************************************************/ +package $packageName$.handlers; + +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Shell; + +public class AboutHandler { + @Execute + public void execute(Shell shell) { + MessageDialog.openInformation(shell, "About", "$windowTitle$"); + } +} diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/OpenHandler.java b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/OpenHandler.java new file mode 100644 index 0000000000..3a9658f76a --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/OpenHandler.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2010 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 + * Lars Vogel <lars.Vogel@gmail.com> - Bug 419770 + *******************************************************************************/ +package $packageName$.handlers; + +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Shell; +public class OpenHandler { + + @Execute + public void execute(Shell shell){ + FileDialog dialog = new FileDialog(shell); + dialog.open(); + } +} diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/QuitHandler.java b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/QuitHandler.java new file mode 100644 index 0000000000..516cfc7fca --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/QuitHandler.java @@ -0,0 +1,28 @@ +/******************************************************************************* + * Copyright (c) 2010 - 2013 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 + * Lars Vogel <lars.Vogel@gmail.com> - Bug 419770 + *******************************************************************************/ +package $packageName$.handlers; + +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.workbench.IWorkbench; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Shell; + + +public class QuitHandler { + @Execute + public void execute(IWorkbench workbench, Shell shell){ + if (MessageDialog.openConfirm(shell, "Confirmation", + "Do you want to exit?")) { + workbench.close(); + } + } +} diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/SaveHandler.java b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/SaveHandler.java new file mode 100644 index 0000000000..338cf914aa --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/handlers/SaveHandler.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2010 - 2013 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 + * Lars Vogel <lars.Vogel@gmail.com> - Bug 419770 + *******************************************************************************/ +package $packageName$.handlers; + +import org.eclipse.e4.core.di.annotations.CanExecute; +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.workbench.modeling.EPartService; + +public class SaveHandler { + + @CanExecute + public boolean canExecute(EPartService partService) { + if (partService != null) { + return !partService.getDirtyParts().isEmpty(); + } + return false; + } + + @Execute + public void execute(EPartService partService) { + partService.saveAll(false); + } +}
\ No newline at end of file diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/parts/SamplePart.java b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/parts/SamplePart.java new file mode 100644 index 0000000000..c907bf58db --- /dev/null +++ b/ui/org.eclipse.pde.ui.templates/templates_3.5/E4Application/java/parts/SamplePart.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * Copyright (c) 2010 - 2013 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 + * Lars Vogel <lars.Vogel@gmail.com> - Bug 419770 + *******************************************************************************/ +package $packageName$.parts; + +import javax.annotation.PostConstruct; +import javax.inject.Inject; + +import org.eclipse.e4.ui.di.Focus; +import org.eclipse.e4.ui.di.Persist; +import org.eclipse.e4.ui.model.application.ui.MDirtyable; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Text; + +public class SamplePart { + + private Text txtInput; + private TableViewer tableViewer; + + @Inject + private MDirtyable dirty; + + @PostConstruct + public void createComposite(Composite parent) { + parent.setLayout(new GridLayout(1, false)); + + txtInput = new Text(parent, SWT.BORDER); + txtInput.setMessage("Enter text to mark part as dirty"); + txtInput.addModifyListener(new ModifyListener() { + @Override + public void modifyText(ModifyEvent e) { + dirty.setDirty(true); + } + }); + txtInput.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + tableViewer = new TableViewer(parent); + + tableViewer.add("Sample item 1"); + tableViewer.add("Sample item 2"); + tableViewer.add("Sample item 3"); + tableViewer.add("Sample item 4"); + tableViewer.add("Sample item 5"); + tableViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + + @Focus + public void setFocus() { + tableViewer.getTable().setFocus(); + } + + @Persist + public void save() { + dirty.setDirty(false); + } +}
\ No newline at end of file diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties index 27814d638c..66e623363f 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties @@ -1094,7 +1094,7 @@ PluginImportWizardFirstPage_0=Tar&get definition: PluginImportWizardFirstPage_1=Reading contents PluginImportWizardFirstPage_2=A target definition must be selected PluginImportWizardFirstPage_3=Projects from a &repository -PluginContentPage_appQuestion=Would you like to create a 3.x rich client application? +PluginContentPage_appQuestion=Would you like to create a rich client application? PluginContentPage_enable_api_analysis=Enable A&PI analysis PluginContentMergeViewer_title=Plug-in Source Compare PluginDevelopmentPage_equinox=&Show sections specific to the Equinox OSGi framework |