Basic Test
authorChristian Femers <femers@in.tum.de>
Mon, 29 Apr 2019 10:57:37 +0000 (12:57 +0200)
committerChristian Femers <femers@in.tum.de>
Mon, 29 Apr 2019 10:57:37 +0000 (12:57 +0200)
20 files changed:
com.example.e4.rcp/.classpath [new file with mode: 0644]
com.example.e4.rcp/.gitignore [new file with mode: 0644]
com.example.e4.rcp/.project [new file with mode: 0644]
com.example.e4.rcp/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
com.example.e4.rcp/Application.e4xmi [new file with mode: 0644]
com.example.e4.rcp/META-INF/MANIFEST.MF [new file with mode: 0644]
com.example.e4.rcp/build.properties [new file with mode: 0644]
com.example.e4.rcp/com.example.e4.rcp.product [new file with mode: 0644]
com.example.e4.rcp/css/default.css [new file with mode: 0644]
com.example.e4.rcp/icons/debug_view.png [new file with mode: 0644]
com.example.e4.rcp/icons/home.png [new file with mode: 0644]
com.example.e4.rcp/icons/open_in_app.png [new file with mode: 0644]
com.example.e4.rcp/icons/save_edit.png [new file with mode: 0644]
com.example.e4.rcp/plugin.xml [new file with mode: 0644]
com.example.e4.rcp/src/com/example/e4/rcp/handlers/AboutHandler.java [new file with mode: 0644]
com.example.e4.rcp/src/com/example/e4/rcp/handlers/OpenHandler.java [new file with mode: 0644]
com.example.e4.rcp/src/com/example/e4/rcp/handlers/QuitHandler.java [new file with mode: 0644]
com.example.e4.rcp/src/com/example/e4/rcp/handlers/SaveHandler.java [new file with mode: 0644]
com.example.e4.rcp/src/com/example/e4/rcp/parts/NPart.java [new file with mode: 0644]
com.example.e4.rcp/src/com/example/e4/rcp/parts/SamplePart.java [new file with mode: 0644]

diff --git a/com.example.e4.rcp/.classpath b/com.example.e4.rcp/.classpath
new file mode 100644 (file)
index 0000000..ca3785c
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>\r
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
+       <classpathentry kind="src" path="src"/>\r
+       <classpathentry kind="output" path="bin"/>\r
+</classpath>\r
diff --git a/com.example.e4.rcp/.gitignore b/com.example.e4.rcp/.gitignore
new file mode 100644 (file)
index 0000000..ae3c172
--- /dev/null
@@ -0,0 +1 @@
+/bin/
diff --git a/com.example.e4.rcp/.project b/com.example.e4.rcp/.project
new file mode 100644 (file)
index 0000000..780f001
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>com.example.e4.rcp</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.jdt.core.javabuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.pde.ManifestBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.pde.SchemaBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.pde.PluginNature</nature>\r
+               <nature>org.eclipse.jdt.core.javanature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/com.example.e4.rcp/.settings/org.eclipse.jdt.core.prefs b/com.example.e4.rcp/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..bd1095b
--- /dev/null
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1\r
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11\r
+org.eclipse.jdt.core.compiler.compliance=11\r
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled\r
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning\r
+org.eclipse.jdt.core.compiler.release=enabled\r
+org.eclipse.jdt.core.compiler.source=11\r
diff --git a/com.example.e4.rcp/Application.e4xmi b/com.example.e4.rcp/Application.e4xmi
new file mode 100644 (file)
index 0000000..f7b641e
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<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" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_6wlLcMgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.application" bindingContexts="_6wlLecgZEeSyMNYR5xypkQ">\r
+  <children xsi:type="basic:TrimmedWindow" xmi:id="_6wlLccgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.window.main" label="Eclipse 4 RCP Application" width="500" height="400">\r
+    <children xsi:type="basic:PartSashContainer" xmi:id="_6wlLksgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.partsashcontainer.sample">\r
+      <children xsi:type="basic:PartStack" xmi:id="_6wlLk8gZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.partstack.sample">\r
+        <children xsi:type="basic:Part" xmi:id="_6wlLlMgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.part.sample" contributionURI="bundleclass://com.example.e4.rcp/com.example.e4.rcp.parts.SamplePart" label="Sample Part" iconURI="platform:/plugin/com.example.e4.rcp/icons/home.png"/>\r
+      </children>\r
+      <children xsi:type="basic:PartStack" xmi:id="_IcuwAGpsEemMm_uKcWEHow" elementId="com.example.e4.rcp.partstack.0">\r
+        <children xsi:type="basic:Part" xmi:id="_HdzpoGpsEemMm_uKcWEHow" elementId="com.example.e4.rcp.part.notherpart" contributionURI="bundleclass://com.example.e4.rcp/com.example.e4.rcp.parts.NPart" label="Nother Part" iconURI="platform:/plugin/com.example.e4.rcp/icons/debug_view.png" closeable="true"/>\r
+      </children>\r
+    </children>\r
+    <mainMenu xmi:id="_6wlLicgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.main.menu">\r
+      <children xsi:type="menu:Menu" xmi:id="_6wlLisgZEeSyMNYR5xypkQ" elementId="file" label="File">\r
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLi8gZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handleditem.file.open" label="Open" iconURI="platform:/plugin/com.example.e4.rcp/icons/open_in_app.png" command="_6wlLgMgZEeSyMNYR5xypkQ"/>\r
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLjMgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handleditem.save" label="Save" iconURI="platform:/plugin/com.example.e4.rcp/icons/save_edit.png" command="_6wlLg8gZEeSyMNYR5xypkQ"/>\r
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLjcgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handleditem.quit" label="Quit" command="_6wlLfMgZEeSyMNYR5xypkQ"/>\r
+      </children>\r
+      <children xsi:type="menu:Menu" xmi:id="_6wlLjsgZEeSyMNYR5xypkQ" elementId="help" label="Help">\r
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLj8gZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handleditem.about" label="About" command="_6wlLhsgZEeSyMNYR5xypkQ"/>\r
+      </children>\r
+    </mainMenu>\r
+    <trimBars xmi:id="_6wlLlcgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.trimbar.top">\r
+      <children xsi:type="menu:ToolBar" xmi:id="_6wlLlsgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.main.toolbar">\r
+        <children xsi:type="menu:HandledToolItem" xmi:id="_6wlLmMgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handleditem.trimbar.top.save" iconURI="platform:/plugin/com.example.e4.rcp/icons/save_edit.png" command="_6wlLg8gZEeSyMNYR5xypkQ"/>\r
+        <children xsi:type="menu:HandledToolItem" xmi:id="_6wlLl8gZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handleditem.trimbar.top.open" iconURI="platform:/plugin/com.example.e4.rcp/icons/open_in_app.png" command="_6wlLgMgZEeSyMNYR5xypkQ"/>\r
+      </children>\r
+    </trimBars>\r
+  </children>\r
+  <handlers xmi:id="_6wlLfcgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handler.quitCommand" contributionURI="bundleclass://com.example.e4.rcp/com.example.e4.rcp.handlers.QuitHandler" command="_6wlLfMgZEeSyMNYR5xypkQ"/>\r
+  <handlers xmi:id="_6wlLgcgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handler.openCommand" contributionURI="bundleclass://com.example.e4.rcp/com.example.e4.rcp.handlers.OpenHandler" command="_6wlLgMgZEeSyMNYR5xypkQ"/>\r
+  <handlers xmi:id="_6wlLhMgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handler.saveCommand" contributionURI="bundleclass://com.example.e4.rcp/com.example.e4.rcp.handlers.SaveHandler" command="_6wlLg8gZEeSyMNYR5xypkQ"/>\r
+  <handlers xmi:id="_6wlLh8gZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handler.aboutCommand" contributionURI="bundleclass://com.example.e4.rcp/com.example.e4.rcp.handlers.AboutHandler" command="_6wlLhsgZEeSyMNYR5xypkQ"/>\r
+  <bindingTables xmi:id="_6wlLfsgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.bindingtable" bindingContext="_6wlLecgZEeSyMNYR5xypkQ">\r
+    <bindings xmi:id="_6wlLf8gZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.keybinding.m1q" keySequence="M1+Q" command="_6wlLfMgZEeSyMNYR5xypkQ"/>\r
+    <bindings xmi:id="_6wlLgsgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.keybinding.m1o" keySequence="M1+O" command="_6wlLgMgZEeSyMNYR5xypkQ"/>\r
+    <bindings xmi:id="_6wlLhcgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.keybinding.m1s" keySequence="M1+S" command="_6wlLg8gZEeSyMNYR5xypkQ"/>\r
+    <bindings xmi:id="_6wlLiMgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.keybinding.m1a" keySequence="M1+A" command="_6wlLhsgZEeSyMNYR5xypkQ"/>\r
+  </bindingTables>\r
+  <rootContext xmi:id="_6wlLecgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.dialogAndWindow" name="In Dialog and Windows">\r
+    <children xmi:id="_6wlLesgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.window" name="In Windows"/>\r
+    <children xmi:id="_6wlLe8gZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.dialog" name="In Dialogs"/>\r
+  </rootContext>\r
+  <commands xmi:id="_6wlLfMgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.file.exit" commandName="quitCommand"/>\r
+  <commands xmi:id="_6wlLgMgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.file.open" commandName="openCommand"/>\r
+  <commands xmi:id="_6wlLg8gZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.file.save" commandName="saveCommand"/>\r
+  <commands xmi:id="_6wlLhsgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.help.aboutAction" commandName="aboutCommand"/>\r
+  <addons xmi:id="_6wlLcsgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>\r
+  <addons xmi:id="_6wlLc8gZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>\r
+  <addons xmi:id="_6wlLdMgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>\r
+  <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"/>\r
+  <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"/>\r
+  <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"/>\r
+  <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"/>\r
+</application:Application>\r
diff --git a/com.example.e4.rcp/META-INF/MANIFEST.MF b/com.example.e4.rcp/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..ae7ce58
--- /dev/null
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Rcp
+Bundle-SymbolicName: com.example.e4.rcp;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: EXAMPLE
+Require-Bundle: javax.inject;bundle-version="0.0.0",
+ org.eclipse.core.runtime;bundle-version="0.0.0",
+ org.eclipse.swt;bundle-version="0.0.0",
+ org.eclipse.e4.ui.model.workbench;bundle-version="0.0.0",
+ org.eclipse.jface;bundle-version="0.0.0",
+ org.eclipse.e4.ui.services;bundle-version="0.0.0",
+ org.eclipse.e4.ui.workbench;bundle-version="0.0.0",
+ org.eclipse.e4.core.di;bundle-version="0.0.0",
+ org.eclipse.e4.ui.di;bundle-version="0.0.0",
+ org.eclipse.e4.core.contexts;bundle-version="0.0.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Import-Package: javax.annotation;version="1.0.0";resolution:=optional,
+ javax.inject;version="1.0.0"
+Automatic-Module-Name: com.example.e4.rcp
diff --git a/com.example.e4.rcp/build.properties b/com.example.e4.rcp/build.properties
new file mode 100644 (file)
index 0000000..163f78c
--- /dev/null
@@ -0,0 +1,8 @@
+source.. = src/\r
+output.. = bin/\r
+bin.includes = plugin.xml,\\r
+               META-INF/,\\r
+               .,\\r
+               icons/,\\r
+               css/default.css,\\r
+               Application.e4xmi\r
diff --git a/com.example.e4.rcp/com.example.e4.rcp.product b/com.example.e4.rcp/com.example.e4.rcp.product
new file mode 100644 (file)
index 0000000..eaf91b8
--- /dev/null
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="com.example.e4.rcp" id="com.example.e4.rcp.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 i16="/com.example.e4.rcp/icons/debug_view.png"/>
+
+
+   <plugins>
+      <plugin id="com.example.e4.rcp"/>
+      <plugin id="com.ibm.icu"/>
+      <plugin id="javax.annotation"/>
+      <plugin id="javax.inject"/>
+      <plugin id="org.apache.batik.constants"/>
+      <plugin id="org.apache.batik.css"/>
+      <plugin id="org.apache.batik.i18n"/>
+      <plugin id="org.apache.batik.util"/>
+      <plugin id="org.apache.commons.io"/>
+      <plugin id="org.apache.commons.jxpath"/>
+      <plugin id="org.apache.commons.logging"/>
+      <plugin id="org.apache.felix.scr"/>
+      <plugin id="org.apache.xmlgraphics"/>
+      <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.jobs"/>
+      <plugin id="org.eclipse.core.runtime"/>
+      <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.annotations"/>
+      <plugin id="org.eclipse.e4.core.di.extensions"/>
+      <plugin id="org.eclipse.e4.core.di.extensions.supplier"/>
+      <plugin id="org.eclipse.e4.core.services"/>
+      <plugin id="org.eclipse.e4.emf.xpath"/>
+      <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.swt.gtk" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.widgets"/>
+      <plugin id="org.eclipse.e4.ui.workbench"/>
+      <plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa" fragment="true"/>
+      <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.event"/>
+      <plugin id="org.eclipse.equinox.preferences"/>
+      <plugin id="org.eclipse.equinox.registry"/>
+      <plugin id="org.eclipse.jface"/>
+      <plugin id="org.eclipse.jface.databinding"/>
+      <plugin id="org.eclipse.osgi"/>
+      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
+      <plugin id="org.eclipse.osgi.services"/>
+      <plugin id="org.eclipse.osgi.util"/>
+      <plugin id="org.eclipse.swt"/>
+      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
+      <plugin id="org.w3c.css.sac"/>
+      <plugin id="org.w3c.dom.events"/>
+      <plugin id="org.w3c.dom.smil"/>
+      <plugin id="org.w3c.dom.svg"/>
+   </plugins>
+
+
+   <preferencesInfo>
+      <targetfile overwrite="false"/>
+   </preferencesInfo>
+
+   <cssInfo>
+   </cssInfo>
+
+</product>
diff --git a/com.example.e4.rcp/css/default.css b/com.example.e4.rcp/css/default.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/com.example.e4.rcp/icons/debug_view.png b/com.example.e4.rcp/icons/debug_view.png
new file mode 100644 (file)
index 0000000..97d5e2d
Binary files /dev/null and b/com.example.e4.rcp/icons/debug_view.png differ
diff --git a/com.example.e4.rcp/icons/home.png b/com.example.e4.rcp/icons/home.png
new file mode 100644 (file)
index 0000000..e9ace41
Binary files /dev/null and b/com.example.e4.rcp/icons/home.png differ
diff --git a/com.example.e4.rcp/icons/open_in_app.png b/com.example.e4.rcp/icons/open_in_app.png
new file mode 100644 (file)
index 0000000..9df4eeb
Binary files /dev/null and b/com.example.e4.rcp/icons/open_in_app.png differ
diff --git a/com.example.e4.rcp/icons/save_edit.png b/com.example.e4.rcp/icons/save_edit.png
new file mode 100644 (file)
index 0000000..b17caf5
Binary files /dev/null and b/com.example.e4.rcp/icons/save_edit.png differ
diff --git a/com.example.e4.rcp/plugin.xml b/com.example.e4.rcp/plugin.xml
new file mode 100644 (file)
index 0000000..1c02c2c
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<?eclipse version="3.4"?>\r
+<plugin>\r
+\r
+   <extension\r
+         id="product"\r
+         point="org.eclipse.core.runtime.products">\r
+      <product\r
+            application="org.eclipse.e4.ui.workbench.swt.E4Application"\r
+            name="com.example.e4.rcp">\r
+         <property\r
+               name="applicationCSS"\r
+               value="platform:/plugin/com.example.e4.rcp/css/default.css">\r
+         </property>\r
+         <property\r
+               name="appName"\r
+               value="com.example.e4.rcp">\r
+         </property>\r
+      </product>\r
+   </extension>\r
+\r
+</plugin>\r
diff --git a/com.example.e4.rcp/src/com/example/e4/rcp/handlers/AboutHandler.java b/com.example.e4.rcp/src/com/example/e4/rcp/handlers/AboutHandler.java
new file mode 100644 (file)
index 0000000..e1348ab
--- /dev/null
@@ -0,0 +1,12 @@
+package com.example.e4.rcp.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", "Eclipse 4 RCP Application");
+       }
+}
diff --git a/com.example.e4.rcp/src/com/example/e4/rcp/handlers/OpenHandler.java b/com.example.e4.rcp/src/com/example/e4/rcp/handlers/OpenHandler.java
new file mode 100644 (file)
index 0000000..9f240d8
--- /dev/null
@@ -0,0 +1,13 @@
+package com.example.e4.rcp.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/com.example.e4.rcp/src/com/example/e4/rcp/handlers/QuitHandler.java b/com.example.e4.rcp/src/com/example/e4/rcp/handlers/QuitHandler.java
new file mode 100644 (file)
index 0000000..9fce036
--- /dev/null
@@ -0,0 +1,17 @@
+package com.example.e4.rcp.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/com.example.e4.rcp/src/com/example/e4/rcp/handlers/SaveHandler.java b/com.example.e4.rcp/src/com/example/e4/rcp/handlers/SaveHandler.java
new file mode 100644 (file)
index 0000000..e15be94
--- /dev/null
@@ -0,0 +1,21 @@
+package com.example.e4.rcp.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/com.example.e4.rcp/src/com/example/e4/rcp/parts/NPart.java b/com.example.e4.rcp/src/com/example/e4/rcp/parts/NPart.java
new file mode 100644 (file)
index 0000000..520ed13
--- /dev/null
@@ -0,0 +1,22 @@
\r
+package com.example.e4.rcp.parts;\r
+\r
+import javax.inject.Inject;\r
+import javax.annotation.PostConstruct;\r
+import org.eclipse.swt.widgets.Composite;\r
+\r
+public class NPart {\r
+       @Inject\r
+       public NPart() {\r
+               \r
+       }\r
+       \r
+       @PostConstruct\r
+       public void postConstruct(Composite parent) {\r
+               \r
+       }\r
+       \r
+       \r
+       \r
+       \r
+}
\ No newline at end of file
diff --git a/com.example.e4.rcp/src/com/example/e4/rcp/parts/SamplePart.java b/com.example.e4.rcp/src/com/example/e4/rcp/parts/SamplePart.java
new file mode 100644 (file)
index 0000000..160ba8a
--- /dev/null
@@ -0,0 +1,55 @@
+package com.example.e4.rcp.parts;
+
+import java.util.Arrays;
+import java.util.List;
+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.basic.MPart;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+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 TableViewer tableViewer;
+
+       @Inject
+       private MPart part;
+
+       @PostConstruct
+       public void createComposite(Composite parent) {
+               parent.setLayout(new GridLayout(1, false));
+
+               Text txtInput = new Text(parent, SWT.BORDER);
+               txtInput.setMessage("Enter text to mark part as dirty");
+               txtInput.addModifyListener(e -> part.setDirty(true));
+               txtInput.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+               tableViewer = new TableViewer(parent);
+
+               tableViewer.setContentProvider(ArrayContentProvider.getInstance());
+               tableViewer.setInput(createInitialDataModel());
+               tableViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
+       }
+
+       @Focus
+       public void setFocus() {
+               tableViewer.getTable().setFocus();
+       }
+
+       @Persist
+       public void save() {
+               part.setDirty(false);
+       }
+       
+       private List<String> createInitialDataModel() {
+               return Arrays.asList("Sample item 1", "Sample item 2", "Sample item 3", "Sample item 4", "Sample item 5");
+       }
+}
\ No newline at end of file