From: Bruno Sinou Date: Thu, 17 Feb 2011 11:46:08 +0000 (+0000) Subject: integrate SLC RAP & RCP in secure.ui X-Git-Tag: argeo-slc-2.1.7~1027 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=f37b0f6cc0e1fe7b284c079e9dc20c34be1acd14;hp=0c468f18dc9ef915d789e31312ed19de00f83ce9;p=gpl%2Fargeo-slc.git integrate SLC RAP & RCP in secure.ui git-svn-id: https://svn.argeo.org/slc/trunk@4153 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/demo/slc-client-rcp.product b/demo/slc-client-rcp.product index 9621e7cf8..b0c48b16f 100644 --- a/demo/slc-client-rcp.product +++ b/demo/slc-client-rcp.product @@ -1,7 +1,7 @@ - + @@ -186,7 +186,7 @@ - + diff --git a/demo/slc_demo_rap.properties b/demo/slc_demo_rap.properties index 32d19a347..c716f7f0b 100644 --- a/demo/slc_demo_rap.properties +++ b/demo/slc_demo_rap.properties @@ -6,38 +6,38 @@ org.eclipse.equinox.http.jetty,\ org.eclipse.equinox.http.registry,\ org.eclipse.equinox.launcher,\ org.mortbay.jetty.server,\ -org.springframework.osgi.extender,\ +org.argeo.security.equinox,\ org.argeo.security.manager.ldap,\ org.argeo.security.services,\ -org.argeo.security.equinox,\ -org.argeo.security.ui,\ -org.argeo.security.ui.application,\ +org.argeo.server.ads.server,\ org.argeo.slc.agent,\ org.argeo.slc.client.agent,\ +org.argeo.slc.client.commons,\ +org.argeo.slc.client.core,\ org.argeo.slc.client.hibernate,\ org.argeo.slc.client.oxm,\ +org.argeo.slc.client.rap,\ org.argeo.slc.client.ui,\ org.argeo.slc.demo.ant,\ org.argeo.slc.demo.basic,\ +org.argeo.slc.demo.ant,\ org.argeo.slc.server.castor,\ org.argeo.slc.server.h2,\ org.argeo.slc.server.hibernate,\ org.argeo.slc.server.services,\ -org.argeo.server.ads.server,\ - - -org.argeo.security.ui.initialPerspective=org.argeo.slc.client.ui.perspectives.slcExecution - -# LDAP -#argeo.ldap.rootdn=dc=slc,dc=argeo,dc=net -#argeo.ads.init.ldif=osgibundle:init-slc.ldif +org.springframework.osgi.extender,\ eclipse.ignoreApp=true osgi.noShutdown=true +org.argeo.security.ui.initialPerspective=org.argeo.slc.client.ui.perspectives.slcExecution + log4j.configuration=file:../../log4j.properties org.eclipse.equinox.http.jetty.log.stderr.threshold=debug org.osgi.service.http.port=9090 -# java -Dlog4j.configuration=file:/home/mbaudier/dev/src/slc/demo/log4j.properties -Dosgi.framework=lib/org.eclipse.osgi_3.6.1.R36x_v20100806.jar -jar lib/org.eclipse.equinox.launcher_1.1.0.v20100507.jar -console -configuration configuration \ No newline at end of file + +# LDAP +#argeo.ldap.rootdn=dc=slc,dc=argeo,dc=net +#argeo.ads.init.ldif=osgibundle:init-slc.ldif \ No newline at end of file diff --git a/eclipse/plugins/org.argeo.slc.client.rap/META-INF/MANIFEST.MF b/eclipse/plugins/org.argeo.slc.client.rap/META-INF/MANIFEST.MF index eedcc6ea3..75d9f8415 100644 --- a/eclipse/plugins/org.argeo.slc.client.rap/META-INF/MANIFEST.MF +++ b/eclipse/plugins/org.argeo.slc.client.rap/META-INF/MANIFEST.MF @@ -10,4 +10,5 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-ActivationPolicy: lazy Import-Package: javax.servlet;version="2.4.0", javax.servlet.http;version="2.4.0", + org.argeo.security.ui.application, org.argeo.slc.client.ui.perspectives diff --git a/eclipse/plugins/org.argeo.slc.client.rap/plugin.xml b/eclipse/plugins/org.argeo.slc.client.rap/plugin.xml index 64ae65017..f7715af65 100644 --- a/eclipse/plugins/org.argeo.slc.client.rap/plugin.xml +++ b/eclipse/plugins/org.argeo.slc.client.rap/plugin.xml @@ -3,7 +3,7 @@ + id="org.argeo.slc.client.rap.slcSecureRap"> @@ -63,5 +63,4 @@ name="Exit"> --> - diff --git a/eclipse/plugins/org.argeo.slc.client.rap/pom.xml b/eclipse/plugins/org.argeo.slc.client.rap/pom.xml index f270cfd38..a5afd2e24 100644 --- a/eclipse/plugins/org.argeo.slc.client.rap/pom.xml +++ b/eclipse/plugins/org.argeo.slc.client.rap/pom.xml @@ -26,11 +26,11 @@ ${version.argeo-commons} - - + + + org.argeo.commons.security + org.argeo.security.ui.application + ${version.argeo-commons} + diff --git a/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/ApplicationWorkbenchAdvisor.java b/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/ApplicationWorkbenchAdvisor.java index d3d058144..f272f05c7 100644 --- a/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/ApplicationWorkbenchAdvisor.java +++ b/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/ApplicationWorkbenchAdvisor.java @@ -13,7 +13,7 @@ public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor { private static final String PERSPECTIVE_ID = "org.argeo.slc.client.ui.perspectives.slcExecution"; public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { - return new ApplicationWorkbenchWindowAdvisor(configurer); + return new SlcRapSecureWorkbenchWindowAdvisor(configurer); } public String getInitialWindowPerspectiveId() { diff --git a/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/ApplicationWorkbenchWindowAdvisor.java b/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/ApplicationWorkbenchWindowAdvisor.java deleted file mode 100644 index 58ef8af95..000000000 --- a/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/ApplicationWorkbenchWindowAdvisor.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.argeo.slc.client.rap; - -import org.eclipse.swt.graphics.Point; -import org.eclipse.ui.application.ActionBarAdvisor; -import org.eclipse.ui.application.IActionBarConfigurer; -import org.eclipse.ui.application.IWorkbenchWindowConfigurer; -import org.eclipse.ui.application.WorkbenchWindowAdvisor; - -/** - * Configures the initial size and appearance of a workbench window. - */ -public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { - - public ApplicationWorkbenchWindowAdvisor( - IWorkbenchWindowConfigurer configurer) { - super(configurer); - } - - public ActionBarAdvisor createActionBarAdvisor( - IActionBarConfigurer configurer) { - return new ApplicationActionBarAdvisor(configurer); - } - - public void preWindowOpen() { - IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); - configurer.setInitialSize(new Point(1200, 900)); - configurer.setShowCoolBar(false); - configurer.setShowStatusLine(false); - } -} diff --git a/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcClientRapApplication.java b/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcClientRapApplication.java deleted file mode 100644 index 5b7fc5f59..000000000 --- a/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcClientRapApplication.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.argeo.slc.client.rap; - -import org.eclipse.rwt.lifecycle.IEntryPoint; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.application.WorkbenchAdvisor; - -/** - * This class controls all aspects of the application's execution - * and is contributed through the plugin.xml. - */ -public class SlcClientRapApplication implements IEntryPoint { - - public int createUI() { - Display display = PlatformUI.createDisplay(); - WorkbenchAdvisor advisor = new ApplicationWorkbenchAdvisor(); - return PlatformUI.createAndRunWorkbench( display, advisor ); - } -} diff --git a/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcRapSecureWorkbenchWindowAdvisor.java b/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcRapSecureWorkbenchWindowAdvisor.java new file mode 100644 index 000000000..fefbeebab --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcRapSecureWorkbenchWindowAdvisor.java @@ -0,0 +1,36 @@ +package org.argeo.slc.client.rap; + +import org.argeo.security.ui.application.RapSecureWorkbenchWindowAdvisor; +import org.eclipse.ui.application.IWorkbenchWindowConfigurer; + +/** + * Configures the initial size and appearance of a workbench window. + */ +public class SlcRapSecureWorkbenchWindowAdvisor extends + RapSecureWorkbenchWindowAdvisor { + + public SlcRapSecureWorkbenchWindowAdvisor( + IWorkbenchWindowConfigurer configurer) { + super(configurer); + } + + // Customisation of the main frame can be done here. + @Override + public void preWindowOpen() { + super.preWindowOpen(); + // + // IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); + // configurer.setShowCoolBar(true); + // configurer.setShowMenuBar(true); + // configurer.setShowStatusLine(false); + // configurer.setShowPerspectiveBar(true); + // configurer.setTitle("Argeo Secure UI"); //$NON-NLS-1$ + // // Full screen, see + // // + // http://dev.eclipse.org/newslists/news.eclipse.technology.rap/msg02697.html + // configurer.setShellStyle(SWT.NONE); + // Rectangle bounds = Display.getDefault().getBounds(); + // configurer.setInitialSize(new Point(bounds.width, bounds.height)); + } + +} diff --git a/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcSecureRap.java b/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcSecureRap.java new file mode 100644 index 000000000..f37988f6e --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcSecureRap.java @@ -0,0 +1,26 @@ +package org.argeo.slc.client.rap; + +import org.argeo.security.ui.application.SecureRap; +import org.argeo.security.ui.application.SecureWorkbenchAdvisor; +import org.eclipse.ui.application.IWorkbenchWindowConfigurer; +import org.eclipse.ui.application.WorkbenchAdvisor; +import org.eclipse.ui.application.WorkbenchWindowAdvisor; + +/** + * This class controls all aspects of the application's execution and is + * contributed through the plugin.xml. + */ +public class SlcSecureRap extends SecureRap { + + + @Override + protected WorkbenchAdvisor createWorkbenchAdvisor() { + return new SecureWorkbenchAdvisor() { + public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor( + IWorkbenchWindowConfigurer configurer) { + return new SlcRapSecureWorkbenchWindowAdvisor(configurer); + } + + }; + } +} diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/META-INF/MANIFEST.MF b/eclipse/plugins/org.argeo.slc.client.rcp/META-INF/MANIFEST.MF index 9db7888ed..f884def28 100644 --- a/eclipse/plugins/org.argeo.slc.client.rcp/META-INF/MANIFEST.MF +++ b/eclipse/plugins/org.argeo.slc.client.rcp/META-INF/MANIFEST.MF @@ -13,5 +13,6 @@ Import-Package: org.argeo.slc.client.ui.perspectives, org.argeo.slc.execution, org.argeo.slc.process, org.argeo.slc.runtime, + org.argeo.security.ui.application, org.argeo.slc.services, org.argeo.slc.services.impl diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/plugin.xml b/eclipse/plugins/org.argeo.slc.client.rcp/plugin.xml index a2babbae2..feb47027d 100644 --- a/eclipse/plugins/org.argeo.slc.client.rcp/plugin.xml +++ b/eclipse/plugins/org.argeo.slc.client.rcp/plugin.xml @@ -26,7 +26,7 @@ point="org.eclipse.core.runtime.applications"> + class="org.argeo.slc.client.rcp.SlcSecureClientApplication"> @@ -74,4 +74,16 @@ sequence="CTRL+R"> + + + + + + diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/pom.xml b/eclipse/plugins/org.argeo.slc.client.rcp/pom.xml index e088f5877..cbe11271d 100644 --- a/eclipse/plugins/org.argeo.slc.client.rcp/pom.xml +++ b/eclipse/plugins/org.argeo.slc.client.rcp/pom.xml @@ -11,37 +11,34 @@ SLC Client RCP jar - + org.argeo.slc.eclipse org.argeo.slc.client.ui ${project.version} - + org.argeo.commons.eclipse org.argeo.eclipse.dep.rcp ${version.argeo-commons} - - - - org.eclipse.swt - org.eclipse.swt.gtk.linux.x86_64 + org.argeo.commons.security + org.argeo.security.ui.application + ${version.argeo-commons} - - org.eclipse.swt - org.eclipse.swt.gtk.linux.x86 - --> + + + + diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/ApplicationWorkbenchAdvisor.java b/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/ApplicationWorkbenchAdvisor.java deleted file mode 100644 index ae2a6b7d1..000000000 --- a/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/ApplicationWorkbenchAdvisor.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.argeo.slc.client.rcp; - -import org.eclipse.ui.application.IWorkbenchConfigurer; -import org.eclipse.ui.application.IWorkbenchWindowConfigurer; -import org.eclipse.ui.application.WorkbenchAdvisor; -import org.eclipse.ui.application.WorkbenchWindowAdvisor; - -/** - * implements initial perspective and saveAndRestore status of the workbench. - * - * @author bsinou - * - */ -public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor { - - private static final String PERSPECTIVE_ID = "org.argeo.slc.client.ui.perspectives.slcExecution"; -// private static final String PERSPECTIVE_ID = "org.argeo.slc.client.ui.dist.distributionPerspective"; - - public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor( - IWorkbenchWindowConfigurer configurer) { - return new ApplicationWorkbenchWindowAdvisor(configurer); - } - - public String getInitialWindowPerspectiveId() { - return PERSPECTIVE_ID; - } - - @Override - public void initialize(IWorkbenchConfigurer configurer) { - super.initialize(configurer); - - // To remember the user's layout and window size for the next time he - // starts the application - // configurer.setSaveAndRestore(true); - } - -} diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/ApplicationWorkbenchWindowAdvisor.java b/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/ApplicationWorkbenchWindowAdvisor.java deleted file mode 100644 index 8022f4041..000000000 --- a/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/ApplicationWorkbenchWindowAdvisor.java +++ /dev/null @@ -1,124 +0,0 @@ -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; -import org.eclipse.ui.application.WorkbenchWindowAdvisor; - -/** - * Set here initial default size of the UI - * - * @author bsinou - * - */ -public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { - - private TrayItem trayItem; - - public ApplicationWorkbenchWindowAdvisor( - IWorkbenchWindowConfigurer configurer) { - super(configurer); - } - - public ActionBarAdvisor createActionBarAdvisor( - IActionBarConfigurer configurer) { - return new ApplicationActionBarAdvisor(configurer); - } - - public void preWindowOpen() { - IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); - - configurer.getWorkbenchConfigurer().restoreState(); - // set default window size - configurer.setInitialSize(new Point(1200, 900)); - configurer.setShowCoolBar(false); - configurer.setShowStatusLine(true); - configurer.setShowPerspectiveBar(true); - - } - - 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/main/java/org/argeo/slc/client/rcp/SlcClientRcpApplication.java b/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcClientRcpApplication.java deleted file mode 100644 index 1919c48ea..000000000 --- a/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcClientRcpApplication.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.argeo.slc.client.rcp; - -import org.eclipse.equinox.app.IApplication; -import org.eclipse.equinox.app.IApplicationContext; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.PlatformUI; - -/** - * This class controls all aspects of the application's execution - */ -public class SlcClientRcpApplication implements IApplication { - - /* (non-Javadoc) - * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext) - */ - public Object start(IApplicationContext context) { - Display display = PlatformUI.createDisplay(); - try { - int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); - if (returnCode == PlatformUI.RETURN_RESTART) { - return IApplication.EXIT_RESTART; - } - return IApplication.EXIT_OK; - } finally { - display.dispose(); - } - } - - /* (non-Javadoc) - * @see org.eclipse.equinox.app.IApplication#stop() - */ - public void stop() { - final IWorkbench workbench = PlatformUI.getWorkbench(); - if (workbench == null) - return; - final Display display = workbench.getDisplay(); - display.syncExec(new Runnable() { - public void run() { - if (!display.isDisposed()) - workbench.close(); - } - }); - } -} diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcSecureClientApplication.java b/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcSecureClientApplication.java new file mode 100644 index 000000000..fb1711714 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcSecureClientApplication.java @@ -0,0 +1,16 @@ +package org.argeo.slc.client.rcp; + +import org.argeo.security.ui.application.SecureRcp; +import org.eclipse.ui.application.WorkbenchAdvisor; + +/** + * This class controls all aspects of the application's execution + */ +public class SlcSecureClientApplication extends SecureRcp { + + @Override + protected WorkbenchAdvisor createWorkbenchAdvisor() { + return new SlcSecureWorkbenchAdvisor(); + } + +} diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcSecureWorkbenchAdvisor.java b/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcSecureWorkbenchAdvisor.java new file mode 100644 index 000000000..7b685e916 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcSecureWorkbenchAdvisor.java @@ -0,0 +1,42 @@ +package org.argeo.slc.client.rcp; + +import org.eclipse.ui.application.IWorkbenchConfigurer; +import org.eclipse.ui.application.IWorkbenchWindowConfigurer; +import org.eclipse.ui.application.WorkbenchAdvisor; +import org.eclipse.ui.application.WorkbenchWindowAdvisor; + +/** + * implements initial perspective and saveAndRestore status of the workbench. + * + * @author bsinou + * + */ +public class SlcSecureWorkbenchAdvisor extends WorkbenchAdvisor { + + // private static final String PERSPECTIVE_ID = + // "org.argeo.slc.client.ui.perspectives.slcExecution"; + static final String DEFAULT_PERSPECTIVE_ID = "org.argeo.security.ui.securityPerspective"; //$NON-NLS-1$ + + public final static String INITIAL_PERSPECTIVE_PROPERTY = "org.argeo.security.ui.initialPerspective"; + private String initialPerspective = System.getProperty( + INITIAL_PERSPECTIVE_PROPERTY, DEFAULT_PERSPECTIVE_ID); + + public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor( + IWorkbenchWindowConfigurer configurer) { + return new SlcSecureWorkbenchWindowAdvisor(configurer); + } + + public String getInitialWindowPerspectiveId() { + // return PERSPECTIVE_ID; + return initialPerspective; + } + + @Override + public void initialize(IWorkbenchConfigurer configurer) { + super.initialize(configurer); + + // To remember the user's layout and window size for the next time he + // starts the application + // configurer.setSaveAndRestore(true); + } +} diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcSecureWorkbenchWindowAdvisor.java b/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcSecureWorkbenchWindowAdvisor.java new file mode 100644 index 000000000..5436a49a3 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.rcp/src/main/java/org/argeo/slc/client/rcp/SlcSecureWorkbenchWindowAdvisor.java @@ -0,0 +1,113 @@ +package org.argeo.slc.client.rcp; + +import org.argeo.security.ui.application.SecureWorkbenchWindowAdvisor; +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; + +/** + * Set here initial default size of the UI + * + * @author bsinou + * + */ +public class SlcSecureWorkbenchWindowAdvisor extends + SecureWorkbenchWindowAdvisor { + + private TrayItem trayItem; + + public SlcSecureWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { + super(configurer); + } + +// public ActionBarAdvisor createActionBarAdvisor( +// IActionBarConfigurer configurer) { +// return new ApplicationActionBarAdvisor(configurer); +// } + + + 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.ui/src/main/java/org/argeo/slc/client/ui/providers/ProcessParametersEditingSupport.java b/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/providers/ProcessParametersEditingSupport.java index 6446df35c..03ef4fc25 100644 --- a/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/providers/ProcessParametersEditingSupport.java +++ b/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/providers/ProcessParametersEditingSupport.java @@ -130,8 +130,6 @@ public class ProcessParametersEditingSupport extends EditingSupport { } else if (own.obj instanceof RefValue) { RefValue rv = (RefValue) own.obj; List values = comboBoxes.get(own.name); - log.debug("Get Value : " + rv.getRef() + " & index : " - + values.indexOf(rv.getRef())); return values.indexOf(rv.getRef()); } else return "unsupported param type"; diff --git a/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/ExecutionModulesView.java b/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/ExecutionModulesView.java index ee78b30aa..96eca15d3 100644 --- a/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/ExecutionModulesView.java +++ b/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/ExecutionModulesView.java @@ -80,14 +80,9 @@ public class ExecutionModulesView extends ViewPart { if (obj instanceof ExecutionModulesContentProvider.ExecutionModuleNode) { ExecutionModuleDescriptor emd = ((ExecutionModulesContentProvider.ExecutionModuleNode) obj) .getDescriptor(); - System.out - .println("obj instanceof ExecutionModulesContentProvider.ExecutionModuleNode"); - log.debug("obj instanceof ExecutionModulesContentProvider.ExecutionModuleNode"); if (emd.getLabel() != null) { - log.debug("and label is : " + emd.getLabel()); return emd.getLabel(); } else { - log.debug("label is null and text is : " + getText(emd)); return getText(emd); } } else