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..e801ebf
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="src" path="src"/>
+       <classpathentry kind="output" path="bin"/>
+</classpath>
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..63c2bd1
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>com.example.e4.rcp</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
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..c9545f0
--- /dev/null
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/com.example.e4.rcp/Application.e4xmi b/com.example.e4.rcp/Application.e4xmi
new file mode 100644 (file)
index 0000000..bb06bf6
--- /dev/null
@@ -0,0 +1,54 @@
+<?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" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_6wlLcMgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.application" bindingContexts="_6wlLecgZEeSyMNYR5xypkQ">
+  <children xsi:type="basic:TrimmedWindow" xmi:id="_6wlLccgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.window.main" label="Eclipse 4 RCP Application" width="500" height="400">
+    <children xsi:type="basic:PartSashContainer" xmi:id="_6wlLksgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.partsashcontainer.sample">
+      <children xsi:type="basic:PartStack" xmi:id="_6wlLk8gZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.partstack.sample">
+        <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"/>
+      </children>
+      <children xsi:type="basic:PartStack" xmi:id="_IcuwAGpsEemMm_uKcWEHow" elementId="com.example.e4.rcp.partstack.0">
+        <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"/>
+      </children>
+    </children>
+    <mainMenu xmi:id="_6wlLicgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.main.menu">
+      <children xsi:type="menu:Menu" xmi:id="_6wlLisgZEeSyMNYR5xypkQ" elementId="file" label="File">
+        <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"/>
+        <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"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLjcgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handleditem.quit" label="Quit" command="_6wlLfMgZEeSyMNYR5xypkQ"/>
+      </children>
+      <children xsi:type="menu:Menu" xmi:id="_6wlLjsgZEeSyMNYR5xypkQ" elementId="help" label="Help">
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLj8gZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.handleditem.about" label="About" command="_6wlLhsgZEeSyMNYR5xypkQ"/>
+      </children>
+    </mainMenu>
+    <trimBars xmi:id="_6wlLlcgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.trimbar.top">
+      <children xsi:type="menu:ToolBar" xmi:id="_6wlLlsgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.main.toolbar">
+        <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"/>
+        <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"/>
+      </children>
+    </trimBars>
+  </children>
+  <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"/>
+  <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"/>
+  <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"/>
+  <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"/>
+  <bindingTables xmi:id="_6wlLfsgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.bindingtable" bindingContext="_6wlLecgZEeSyMNYR5xypkQ">
+    <bindings xmi:id="_6wlLf8gZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.keybinding.m1q" keySequence="M1+Q" command="_6wlLfMgZEeSyMNYR5xypkQ"/>
+    <bindings xmi:id="_6wlLgsgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.keybinding.m1o" keySequence="M1+O" command="_6wlLgMgZEeSyMNYR5xypkQ"/>
+    <bindings xmi:id="_6wlLhcgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.keybinding.m1s" keySequence="M1+S" command="_6wlLg8gZEeSyMNYR5xypkQ"/>
+    <bindings xmi:id="_6wlLiMgZEeSyMNYR5xypkQ" elementId="com.example.e4.rcp.keybinding.m1a" 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/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..04ab1e9
--- /dev/null
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/,\
+               css/default.css,\
+               Application.e4xmi
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..0c2671b
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+   <extension
+         id="product"
+         point="org.eclipse.core.runtime.products">
+      <product
+            application="org.eclipse.e4.ui.workbench.swt.E4Application"
+            name="com.example.e4.rcp">
+         <property
+               name="applicationCSS"
+               value="platform:/plugin/com.example.e4.rcp/css/default.css">
+         </property>
+         <property
+               name="appName"
+               value="com.example.e4.rcp">
+         </property>
+      </product>
+   </extension>
+
+</plugin>
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..fd025ea
--- /dev/null
@@ -0,0 +1,22 @@
+package com.example.e4.rcp.parts;
+
+import javax.inject.Inject;
+import javax.annotation.PostConstruct;
+import org.eclipse.swt.widgets.Composite;
+
+public class NPart {
+       @Inject
+       public NPart() {
+               
+       }
+       
+       @PostConstruct
+       public void postConstruct(Composite parent) {
+               
+       }
+       
+       
+       
+       
+}
\ 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