]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Improve RCP
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 6 Aug 2010 14:07:38 +0000 (14:07 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 6 Aug 2010 14:07:38 +0000 (14:07 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@3758 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

22 files changed:
dep/org.argeo.slc.dep.eclipse/pom.xml [new file with mode: 0644]
dep/org.argeo.slc.dep.sdk/pom.xml
dep/pom.xml
eclipse/plugins/org.argeo.slc.client.rcp/.classpath
eclipse/plugins/org.argeo.slc.client.rcp/.settings/org.eclipse.jdt.core.prefs
eclipse/plugins/org.argeo.slc.client.rcp/META-INF/MANIFEST.MF
eclipse/plugins/org.argeo.slc.client.rcp/icons/argeo-trayIcon-256.png [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.client.rcp/plugin.xml
eclipse/plugins/org.argeo.slc.client.rcp/pom.xml [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.client.rcp/slc-client-rcp.product [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.client.rcp/src/org/argeo/slc/client/rcp/Activator.java [deleted file]
eclipse/plugins/org.argeo.slc.client.rcp/src/org/argeo/slc/client/rcp/ApplicationWorkbenchWindowAdvisor.java
eclipse/plugins/org.argeo.slc.client.rcp/src/org/argeo/slc/client/rcp/ClientRcpPlugin.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.client.ui/.classpath
eclipse/plugins/org.argeo.slc.client.ui/.settings/org.eclipse.jdt.core.prefs
eclipse/plugins/org.argeo.slc.client.ui/META-INF/MANIFEST.MF
eclipse/plugins/org.argeo.slc.client.ui/pom.xml [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ExecutionModulesContentProvider.java
eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ExecutionModulesView.java
eclipse/plugins/pom.xml [new file with mode: 0644]
eclipse/pom.xml [new file with mode: 0644]
pom.xml

diff --git a/dep/org.argeo.slc.dep.eclipse/pom.xml b/dep/org.argeo.slc.dep.eclipse/pom.xml
new file mode 100644 (file)
index 0000000..685292b
--- /dev/null
@@ -0,0 +1,26 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.slc</groupId>
+               <artifactId>dep</artifactId>
+               <version>0.13.0-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+       <groupId>org.argeo.slc.dep</groupId>
+       <artifactId>org.argeo.slc.dep.eclipse</artifactId>
+       <packaging>jar</packaging>
+       <name>SLC Eclipse Dependencies</name>
+       <dependencies>
+               <dependency>
+                       <groupId>org.argeo.slc.eclipse</groupId>
+                       <artifactId>org.argeo.slc.client.rcp</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.argeo.slc.eclipse</groupId>
+                       <artifactId>org.argeo.slc.client.ui</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+       </dependencies>
+</project>
\ No newline at end of file
index d00032396e48f53d91eb0ca3751288c3245a909d..7cfe3040e75838c1b0ccc4c87948bbd7376b5b9b 100644 (file)
                        <artifactId>org.argeo.slc.dep.gis</artifactId>
                        <version>${project.version}</version>
                </dependency>
+               <dependency>
+                       <groupId>org.argeo.slc.dep</groupId>
+                       <artifactId>org.argeo.slc.dep.eclipse</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
                <!-- SLC non deps -->
                <dependency>
                        <groupId>org.argeo.slc.runtime</groupId>
index aabde35ea2b570380861d02a0143284994f3c936..6e8c6293454f8cf13a11188a5208aa09b51f2d32 100644 (file)
@@ -16,6 +16,7 @@
                <module>org.argeo.slc.dep.server</module>
                <module>org.argeo.slc.dep.detached</module>
                <module>org.argeo.slc.dep.gis</module>
+               <module>org.argeo.slc.dep.eclipse</module>
                <module>org.argeo.slc.dep.sdk</module>
                <module>org.argeo.slc.dep.sdk.sources</module>
        </modules>
index ad32c83a7885b8953a938b41df3b4fd4fe1aae01..304e86186aa0aecc956652a558f33921111ab213 100644 (file)
@@ -1,7 +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-1.6"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
        <classpathentry kind="src" path="src"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
        <classpathentry kind="output" path="bin"/>
 </classpath>
index 4186daad052958a73344b11c14ee27e98f9ba289..5eb7b030a55568e69740905dfb5a7bbf2b30d7a0 100644 (file)
@@ -1,8 +1,8 @@
-#Tue Jul 27 13:22:37 CEST 2010
+#Wed Aug 04 16:32:22 CEST 2010
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.5
index b89b70c1e257cac3b7094c75491d8398c586daaf..b8e715c91a98670a74c2402bdd6c1ad19b0c093c 100644 (file)
@@ -3,9 +3,9 @@ Bundle-ManifestVersion: 2
 Bundle-Name: Rcp
 Bundle-SymbolicName: org.argeo.slc.client.rcp; singleton:=true
 Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.argeo.slc.client.rcp.Activator
+Bundle-Activator: org.argeo.slc.client.rcp.ClientRcpPlugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime
 Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Import-Package: org.argeo.slc.client.ui.views
diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/icons/argeo-trayIcon-256.png b/eclipse/plugins/org.argeo.slc.client.rcp/icons/argeo-trayIcon-256.png
new file mode 100644 (file)
index 0000000..da20cf4
Binary files /dev/null and b/eclipse/plugins/org.argeo.slc.client.rcp/icons/argeo-trayIcon-256.png differ
index e112468cdf80eef1784b6dbd43c77699ea401b4e..9caec033e27f313cdb76b17451b38ab0580cafc7 100644 (file)
@@ -3,7 +3,7 @@
 <plugin>
 
    <extension
-         id="application"
+         id="org.argeo.slc.client.rcp.application"
          point="org.eclipse.core.runtime.applications">
       <application>
          <run
             id="org.argeo.slc.client.rcp.perspective">
       </perspective>
    </extension>
+   <extension
+         id="org.argeo.slc.client.rcp.product"
+         point="org.eclipse.core.runtime.products">
+      <product
+            application="org.argeo.slc.client.rcp.application"
+            name="SLC">
+         <property
+               name="windowImages"
+               value="icons/argeo-icon-256.png">
+         </property>
+         <property
+               name="appName"
+               value="SLC">
+         </property>
+      </product>
+   </extension>
    <extension
          id="product"
          point="org.eclipse.core.runtime.products">
                name="windowImages"
                value="icons/argeo-icon-256.png">
          </property>
+         <property
+               name="appName"
+               value="SLC">
+         </property>
       </product>
    </extension>
 
diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/pom.xml b/eclipse/plugins/org.argeo.slc.client.rcp/pom.xml
new file mode 100644 (file)
index 0000000..d283f6c
--- /dev/null
@@ -0,0 +1,39 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.slc.eclipse</groupId>
+               <artifactId>plugins</artifactId>
+               <version>0.13.0-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+       <artifactId>org.argeo.slc.client.rcp</artifactId>
+       <name>SLC Client RCP</name>
+       <packaging>jar</packaging>
+       <dependencies>
+               <!-- SLC -->
+               <dependency>
+                       <groupId>org.argeo.slc.eclipse</groupId>
+                       <artifactId>org.argeo.slc.client.ui</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <!-- Eclipse -->
+               <dependency>
+                       <groupId>org.eclipse.ui</groupId>
+                       <artifactId>org.eclipse.ui</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.eclipse.core</groupId>
+                       <artifactId>org.eclipse.core.runtime</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.eclipse.swt</groupId>
+                       <artifactId>org.eclipse.swt.gtk.linux.x86_64</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.eclipse.swt</groupId>
+                       <artifactId>org.eclipse.swt.gtk.linux.x86</artifactId>
+               </dependency>
+
+       </dependencies>
+</project>
diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/slc-client-rcp.product b/eclipse/plugins/org.argeo.slc.client.rcp/slc-client-rcp.product
new file mode 100644 (file)
index 0000000..b091f99
--- /dev/null
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="SLC" id="org.argeo.slc.client.rcp.product" application="org.argeo.slc.client.rcp.application" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="true">
+
+   <configIni use="default">
+   </configIni>
+
+   <launcherArgs>
+      <programArgs>-console</programArgs>
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+   </launcherArgs>
+
+   <windowImages i16="icons/argeo-icon-256.png"/>
+
+
+   <launcher>
+      <solaris/>
+      <win useIco="false">
+         <bmp/>
+      </win>
+   </launcher>
+
+   <vm>
+   </vm>
+
+   <plugins>
+      <plugin id="com.ibm.icu"/>
+      <plugin id="com.springsource.antlr"/>
+      <plugin id="com.springsource.bsh"/>
+      <plugin id="com.springsource.com.jcraft.jsch"/>
+      <plugin id="com.springsource.com.jcraft.jzlib"/>
+      <plugin id="com.springsource.com.mysql.jdbc"/>
+      <plugin id="com.springsource.edu.oswego.cs.dl.util.concurrent"/>
+      <plugin id="com.springsource.javassist"/>
+      <plugin id="com.springsource.javax.activation"/>
+      <plugin id="com.springsource.javax.annotation"/>
+      <plugin id="com.springsource.javax.ejb"/>
+      <plugin id="com.springsource.javax.el"/>
+      <plugin id="com.springsource.javax.jms"/>
+      <plugin id="com.springsource.javax.mail"/>
+      <plugin id="com.springsource.javax.persistence"/>
+      <plugin id="com.springsource.javax.resource"/>
+      <plugin id="com.springsource.javax.servlet"/>
+      <plugin id="com.springsource.javax.servlet.jsp"/>
+      <plugin id="com.springsource.javax.servlet.jsp.jstl"/>
+      <plugin id="com.springsource.javax.transaction"/>
+      <plugin id="com.springsource.javax.xml.bind"/>
+      <plugin id="com.springsource.javax.xml.rpc"/>
+      <plugin id="com.springsource.javax.xml.soap"/>
+      <plugin id="com.springsource.javax.xml.stream"/>
+      <plugin id="com.springsource.javax.xml.ws"/>
+      <plugin id="com.springsource.jcifs"/>
+      <plugin id="com.springsource.junit"/>
+      <plugin id="com.springsource.net.sf.cglib"/>
+      <plugin id="com.springsource.net.sf.ehcache"/>
+      <plugin id="com.springsource.net.sourceforge.jtds"/>
+      <plugin id="com.springsource.oracle.jdbc"/>
+      <plugin id="com.springsource.org.aopalliance"/>
+      <plugin id="com.springsource.org.apache.bsf"/>
+      <plugin id="com.springsource.org.apache.commons.codec"/>
+      <plugin id="com.springsource.org.apache.commons.collections"/>
+      <plugin id="com.springsource.org.apache.commons.httpclient"/>
+      <plugin id="com.springsource.org.apache.commons.io"/>
+      <plugin id="com.springsource.org.apache.commons.lang"/>
+      <plugin id="com.springsource.org.apache.commons.pool"/>
+      <plugin id="com.springsource.org.apache.commons.vfs"/>
+      <plugin id="com.springsource.org.apache.derby"/>
+      <plugin id="com.springsource.org.apache.log4j"/>
+      <plugin id="com.springsource.org.apache.lucene"/>
+      <plugin id="com.springsource.org.apache.taglibs.standard"/>
+      <plugin id="com.springsource.org.apache.tools.ant"/>
+      <plugin id="com.springsource.org.apache.tools.ant.launch"/>
+      <plugin id="com.springsource.org.apache.xalan"/>
+      <plugin id="com.springsource.org.apache.xerces" fragment="true"/>
+      <plugin id="com.springsource.org.apache.xml.resolver"/>
+      <plugin id="com.springsource.org.apache.xml.serializer"/>
+      <plugin id="com.springsource.org.apache.xmlcommons"/>
+      <plugin id="com.springsource.org.aspectj.runtime"/>
+      <plugin id="com.springsource.org.aspectj.weaver"/>
+      <plugin id="com.springsource.org.dbunit"/>
+      <plugin id="com.springsource.org.dom4j"/>
+      <plugin id="com.springsource.org.h2"/>
+      <plugin id="com.springsource.org.hibernate"/>
+      <plugin id="com.springsource.org.hsqldb"/>
+      <plugin id="com.springsource.org.jaxen"/>
+      <plugin id="com.springsource.org.jdom"/>
+      <plugin id="com.springsource.org.jgroups"/>
+      <plugin id="com.springsource.org.postgresql.jdbc3"/>
+      <plugin id="com.springsource.org.tmatesoft.svn"/>
+      <plugin id="com.springsource.org.xmlpull"/>
+      <plugin id="com.springsource.slf4j.api"/>
+      <plugin id="com.springsource.slf4j.log4j" fragment="true"/>
+      <plugin id="com.springsource.slf4j.org.apache.commons.logging"/>
+      <plugin id="org.argeo.dep.osgi.commons.exec"/>
+      <plugin id="org.argeo.eclipse.ui"/>
+      <plugin id="org.argeo.server.jdbc" fragment="true"/>
+      <plugin id="org.argeo.slc.agent"/>
+      <plugin id="org.argeo.slc.agent.ext.bsf" fragment="true"/>
+      <plugin id="org.argeo.slc.agent.ext.jdbc" fragment="true"/>
+      <plugin id="org.argeo.slc.agent.ext.xalan" fragment="true"/>
+      <plugin id="org.argeo.slc.client.rcp"/>
+      <plugin id="org.argeo.slc.client.ui"/>
+      <plugin id="org.argeo.slc.core"/>
+      <plugin id="org.argeo.slc.demo.agent" fragment="true"/>
+      <plugin id="org.argeo.slc.demo.ant"/>
+      <plugin id="org.argeo.slc.demo.basic"/>
+      <plugin id="org.argeo.slc.demo.log4j" fragment="true"/>
+      <plugin id="org.argeo.slc.specs"/>
+      <plugin id="org.argeo.slc.support.ant"/>
+      <plugin id="org.argeo.slc.support.hibernate" fragment="true"/>
+      <plugin id="org.argeo.slc.support.osgi"/>
+      <plugin id="org.argeo.slc.support.simple"/>
+      <plugin id="org.eclipse.core.commands"/>
+      <plugin id="org.eclipse.core.contenttype"/>
+      <plugin id="org.eclipse.core.databinding"/>
+      <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.equinox.app"/>
+      <plugin id="org.eclipse.equinox.common"/>
+      <plugin id="org.eclipse.equinox.preferences"/>
+      <plugin id="org.eclipse.equinox.registry"/>
+      <plugin id="org.eclipse.help"/>
+      <plugin id="org.eclipse.jface"/>
+      <plugin id="org.eclipse.jface.databinding"/>
+      <plugin id="org.eclipse.osgi"/>
+      <plugin id="org.eclipse.swt"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.ui"/>
+      <plugin id="org.eclipse.ui.workbench"/>
+      <plugin id="org.springframework.aop"/>
+      <plugin id="org.springframework.beans"/>
+      <plugin id="org.springframework.context"/>
+      <plugin id="org.springframework.core"/>
+      <plugin id="org.springframework.jdbc"/>
+      <plugin id="org.springframework.orm"/>
+      <plugin id="org.springframework.osgi.core"/>
+      <plugin id="org.springframework.osgi.extender"/>
+      <plugin id="org.springframework.osgi.io"/>
+      <plugin id="org.springframework.transaction"/>
+      <plugin id="org.springframework.web"/>
+   </plugins>
+
+   <configurations>
+      <plugin id="org.argeo.slc.agent" autoStart="true" startLevel="0" />
+      <plugin id="org.argeo.slc.client.ui" autoStart="true" startLevel="0" />
+      <plugin id="org.argeo.slc.demo.ant" autoStart="true" startLevel="0" />
+      <plugin id="org.argeo.slc.demo.basic" autoStart="true" startLevel="0" />
+   </configurations>
+
+</product>
diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/src/org/argeo/slc/client/rcp/Activator.java b/eclipse/plugins/org.argeo.slc.client.rcp/src/org/argeo/slc/client/rcp/Activator.java
deleted file mode 100644 (file)
index 84bc8c0..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.argeo.slc.client.rcp;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-       // The plug-in ID
-       public static final String PLUGIN_ID = "org.argeo.slc.client.rcp";
-
-       // The shared instance
-       private static Activator plugin;
-       
-       /**
-        * The constructor
-        */
-       public Activator() {
-       }
-
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-        */
-       public void start(BundleContext context) throws Exception {
-               super.start(context);
-               plugin = this;
-       }
-
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-        */
-       public void stop(BundleContext context) throws Exception {
-               plugin = null;
-               super.stop(context);
-       }
-
-       /**
-        * Returns the shared instance
-        *
-        * @return the shared instance
-        */
-       public static Activator getDefault() {
-               return plugin;
-       }
-
-       /**
-        * Returns an image descriptor for the image file at the given
-        * plug-in relative path
-        *
-        * @param path the path
-        * @return the image descriptor
-        */
-       public static ImageDescriptor getImageDescriptor(String path) {
-               return imageDescriptorFromPlugin(PLUGIN_ID, path);
-       }
-}
index e660ccf6418283621b1fe09ca1939d91d0752c14..17250fa5bb1f53fca346988dc96afe210cc66822 100644 (file)
@@ -1,6 +1,16 @@
 package org.argeo.slc.client.rcp;
 
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tray;
+import org.eclipse.swt.widgets.TrayItem;
+import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.application.ActionBarAdvisor;
 import org.eclipse.ui.application.IActionBarConfigurer;
 import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
@@ -8,7 +18,10 @@ import org.eclipse.ui.application.WorkbenchWindowAdvisor;
 
 public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
 
-       public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
+       private TrayItem trayItem;
+
+       public ApplicationWorkbenchWindowAdvisor(
+                       IWorkbenchWindowConfigurer configurer) {
                super(configurer);
        }
 
@@ -19,8 +32,82 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
 
        public void preWindowOpen() {
                IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-               configurer.setInitialSize(new Point(600, 400));
+               configurer.setInitialSize(new Point(800, 600));
                configurer.setShowCoolBar(true);
                configurer.setShowStatusLine(false);
        }
+
+       public void postWindowOpen() {
+               initTray();
+       }
+
+       @Override
+       public boolean preWindowShellClose() {
+               // hide but do not dispose if tray is supported
+               if (trayItem != null) {
+                       getWindowConfigurer().getWindow().getShell().setVisible(false);
+                       return false;
+               } else
+                       return true;
+       }
+
+       /** Init tray support */
+       protected void initTray() {
+               IWorkbenchWindow window = getWindowConfigurer().getWindow();
+               final Tray tray = window.getShell().getDisplay().getSystemTray();
+               trayItem = new TrayItem(tray, SWT.NONE);
+               if (trayItem == null)
+                       return;
+
+               // image
+               Image trayImage = ClientRcpPlugin.getDefault().getImageRegistry().get(
+                               "argeoTrayIcon");
+               trayItem.setImage(trayImage);
+               trayItem.setToolTipText("Argeo SLC");
+
+               // add pop-menu
+               // TODO: contribute more commands
+               trayItem.addListener(SWT.MenuDetect, new Listener() {
+                       public void handleEvent(Event event) {
+                               IWorkbenchWindow window = getWindowConfigurer().getWindow();
+                               Menu menu = new Menu(window.getShell(), SWT.POP_UP);
+                               MenuItem exit = new MenuItem(menu, SWT.NONE);
+                               exit.setText("Exit");
+                               exit.addListener(SWT.Selection, new Listener() {
+                                       public void handleEvent(Event event) {
+                                               getWindowConfigurer().getWorkbenchConfigurer()
+                                                               .getWorkbench().close();
+                                       }
+                               });
+                               menu.setVisible(true);
+                       }
+               });
+
+               // add behavior when clicked upon
+               trayItem.addListener(SWT.Selection, new Listener() {
+                       public void handleEvent(Event event) {
+                               Shell shell = getWindowConfigurer().getWindow().getShell();
+                               if (shell.isVisible()) {
+                                       if (shell.getMinimized())
+                                               shell.setMinimized(false);
+                                       else {
+                                               shell.setVisible(false);
+                                               shell.setMinimized(true);
+                                       }
+                               } else {
+                                       shell.setVisible(true);
+                                       shell.setActive();
+                                       shell.setFocus();
+                                       shell.setMinimized(false);
+                               }
+                       }
+               });
+       }
+
+       @Override
+       public void dispose() {
+               if (trayItem != null)
+                       trayItem.dispose();
+       }
+
 }
diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/src/org/argeo/slc/client/rcp/ClientRcpPlugin.java b/eclipse/plugins/org.argeo.slc.client.rcp/src/org/argeo/slc/client/rcp/ClientRcpPlugin.java
new file mode 100644 (file)
index 0000000..b919ac1
--- /dev/null
@@ -0,0 +1,75 @@
+package org.argeo.slc.client.rcp;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class ClientRcpPlugin extends AbstractUIPlugin {
+
+       // The plug-in ID
+       public static final String PLUGIN_ID = "org.argeo.slc.client.rcp";
+
+       // The shared instance
+       private static ClientRcpPlugin plugin;
+
+       /**
+        * The constructor
+        */
+       public ClientRcpPlugin() {
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+        * )
+        */
+       public void start(BundleContext context) throws Exception {
+               super.start(context);
+               plugin = this;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+        * )
+        */
+       public void stop(BundleContext context) throws Exception {
+               plugin = null;
+               super.stop(context);
+       }
+
+       /**
+        * Returns the shared instance
+        * 
+        * @return the shared instance
+        */
+       public static ClientRcpPlugin getDefault() {
+               return plugin;
+       }
+
+       @Override
+       protected void initializeImageRegistry(ImageRegistry reg) {
+               reg.put("argeoTrayIcon",
+                               getImageDescriptor("icons/argeo-trayIcon-256.png"));
+       }
+
+       /**
+        * Returns an image descriptor for the image file at the given plug-in
+        * relative path
+        * 
+        * @param path
+        *            the path
+        * @return the image descriptor
+        */
+       public static ImageDescriptor getImageDescriptor(String path) {
+               return imageDescriptorFromPlugin(PLUGIN_ID, path);
+       }
+}
index ad32c83a7885b8953a938b41df3b4fd4fe1aae01..304e86186aa0aecc956652a558f33921111ab213 100644 (file)
@@ -1,7 +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-1.6"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
        <classpathentry kind="src" path="src"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
        <classpathentry kind="output" path="bin"/>
 </classpath>
index 6abb6ecd1b8885d2b9806aa05c9a782a53241ddf..95d6b05d7380d1a5f3285ee5b616f7d3a1bdd748 100644 (file)
@@ -1,8 +1,12 @@
-#Tue Jul 27 13:26:24 CEST 2010
+#Wed Aug 04 16:31:36 CEST 2010
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.5
index fb8568d40b2c4bc42d8d6071ad43ded851ace781..ddb16642ddab84b946a8e77cfd858636f998f326 100644 (file)
@@ -8,7 +8,7 @@ Require-Bundle: org.eclipse.ui;resolution:=optional,
  org.eclipse.rap.ui;resolution:=optional,
  org.eclipse.core.runtime
 Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.argeo.slc.client.ui,
  org.argeo.slc.client.ui.actions,
  org.argeo.slc.client.ui.views
diff --git a/eclipse/plugins/org.argeo.slc.client.ui/pom.xml b/eclipse/plugins/org.argeo.slc.client.ui/pom.xml
new file mode 100644 (file)
index 0000000..1757c5d
--- /dev/null
@@ -0,0 +1,45 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.slc.eclipse</groupId>
+               <artifactId>plugins</artifactId>
+               <version>0.13.0-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+       <artifactId>org.argeo.slc.client.ui</artifactId>
+       <name>SLC Client UI</name>
+       <packaging>jar</packaging>
+       <dependencies>
+               <!-- SLC -->
+               <dependency>
+                       <groupId>org.argeo.slc.runtime</groupId>
+                       <artifactId>org.argeo.slc.core</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <!-- Commons -->
+               <dependency>
+                       <groupId>org.argeo.commons.eclipse</groupId>
+                       <artifactId>org.argeo.eclipse.ui</artifactId>
+                       <version>${version.argeo-commons}</version>
+               </dependency>
+               <!-- Spring -->
+               <dependency>
+                       <groupId>org.springframework</groupId>
+                       <artifactId>org.springframework.context</artifactId>
+               </dependency>
+               <!-- Eclipse -->
+               <dependency>
+                       <groupId>org.eclipse.ui</groupId>
+                       <artifactId>org.eclipse.ui</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.eclipse.core</groupId>
+                       <artifactId>org.eclipse.core.runtime</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.eclipse.swt</groupId>
+                       <artifactId>org.eclipse.swt.gtk.linux.x86_64</artifactId>
+               </dependency>
+       </dependencies>
+</project>
index 6bfb921dbca01b64edd2645e95834204ba3dfb65..8fe82baae7e5a05e52f3f784445f1f52de938ff3 100644 (file)
@@ -21,7 +21,6 @@ public class ExecutionModulesContentProvider implements ITreeContentProvider {
 
        private SlcAgent slcAgent;
 
-       @Override
        public Object[] getChildren(Object parent) {
                if (parent instanceof ExecutionModuleNode) {
                        ExecutionModuleNode executionModuleNode = (ExecutionModuleNode) parent;
@@ -60,7 +59,6 @@ public class ExecutionModulesContentProvider implements ITreeContentProvider {
                }
        }
 
-       @Override
        public Object getParent(Object node) {
                // if (node instanceof TreeObject) {
                // return ((TreeObject) node).getParent();
@@ -68,7 +66,6 @@ public class ExecutionModulesContentProvider implements ITreeContentProvider {
                return null;
        }
 
-       @Override
        public boolean hasChildren(Object parent) {
                if (parent instanceof TreeParent && ((TreeParent) parent).isLoaded()) {
                        return ((TreeParent) parent).hasChildren();
@@ -80,15 +77,12 @@ public class ExecutionModulesContentProvider implements ITreeContentProvider {
                return false;
        }
 
-       @Override
        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
        }
 
-       @Override
        public void dispose() {
        }
 
-       @Override
        public Object[] getElements(Object parent) {
                return getChildren(parent);
        }
index 0f358c36a2b908ae62219c5ed632b9a68d6f34a1..bc0cb889a50bb0645610f25959dfb20da85d399d 100644 (file)
@@ -60,7 +60,6 @@ public class ExecutionModulesView extends ViewPart {
                viewer.setInput(getViewSite());
                viewer.addDoubleClickListener(new IDoubleClickListener() {
 
-                       @Override
                        public void doubleClick(DoubleClickEvent evt) {
                                Object obj = ((IStructuredSelection) evt.getSelection())
                                                .getFirstElement();
diff --git a/eclipse/plugins/pom.xml b/eclipse/plugins/pom.xml
new file mode 100644 (file)
index 0000000..c033575
--- /dev/null
@@ -0,0 +1,61 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.slc</groupId>
+               <artifactId>eclipse</artifactId>
+               <version>0.13.0-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+       <groupId>org.argeo.slc.eclipse</groupId>
+       <artifactId>plugins</artifactId>
+       <name>Argeo Eclipse plugins</name>
+       <packaging>pom</packaging>
+       <modules>
+               <module>org.argeo.slc.client.ui</module>
+               <module>org.argeo.slc.client.rcp</module>
+       </modules>
+       <build>
+               <resources>
+                       <resource>
+                               <directory>.</directory>
+                               <includes>
+                                       <include>plugin.xml</include>
+                                       <include>META-INF/**</include>
+                                       <include>icons/**</include>
+                               </includes>
+                       </resource>
+               </resources>
+               <plugins>
+                       <plugin>
+                               <artifactId>maven-jar-plugin</artifactId>
+                               <configuration>
+                                       <archive>
+                                               <manifestFile>META-INF/MANIFEST.MF</manifestFile>
+                                       </archive>
+                               </configuration>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-compiler-plugin</artifactId>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-source-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <id>attach-sources</id>
+                                               <phase>package</phase>
+                                               <goals>
+                                                       <goal>jar</goal>
+                                               </goals>
+                                       </execution>
+                               </executions>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-surefire-plugin</artifactId>
+                       </plugin>
+               </plugins>
+       </build>
+</project>
diff --git a/eclipse/pom.xml b/eclipse/pom.xml
new file mode 100644 (file)
index 0000000..7ee567f
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.slc</groupId>
+               <artifactId>argeo-slc</artifactId>
+               <version>0.13.0-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+       <artifactId>eclipse</artifactId>
+       <name>SLC Eclipse</name>
+       <packaging>pom</packaging>
+       <modules>
+               <module>plugins</module>
+       </modules>
+</project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 35805260d4d5fd554302ff3e9cf888c233a8b9a7..fddc1a675a8653c12d2877b50a0a1bf98e5bf2f4 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -25,6 +25,7 @@
        <modules>
                <module>runtime</module>
                <module>modules</module>
+               <module>eclipse</module>
                <module>dep</module>
                <module>server</module>
                <module>demo</module>