X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.client.rap%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Frap%2FSlcSecureRap.java;h=998271be686851b174d1d97e0d0ce142ffa0c5f0;hb=cd82c3344919a1d2267f5ec812422a1ab4dfe956;hp=33048c1694adb71154b4a9626f43f8065d385bdd;hpb=5d3d00fff63d9744f0de1a5e4a3735fcb093d3be;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcSecureRap.java b/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcSecureRap.java index 33048c169..998271be6 100644 --- a/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcSecureRap.java +++ b/plugins/org.argeo.slc.client.rap/src/main/java/org/argeo/slc/client/rap/SlcSecureRap.java @@ -15,11 +15,82 @@ */ package org.argeo.slc.client.rap; +import org.argeo.security.ui.rap.RapWindowAdvisor; +import org.argeo.security.ui.rap.RapWorkbenchAdvisor; import org.argeo.security.ui.rap.SecureEntryPoint; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.actions.ActionFactory; +import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction; +import org.eclipse.ui.application.IWorkbenchWindowConfigurer; +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 SecureEntryPoint { + + @Override + protected RapWorkbenchAdvisor createRapWorkbenchAdvisor( + final String username) { + return new RapWorkbenchAdvisor(username) { + @Override + public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor( + IWorkbenchWindowConfigurer configurer) { + return new SlcRapWorkbenchWindowAdvisor(configurer, username); + } + + }; + } + + /** Workaround for resize issue */ + class SlcRapWorkbenchWindowAdvisor extends RapWindowAdvisor { + + public SlcRapWorkbenchWindowAdvisor( + IWorkbenchWindowConfigurer configurer, String username) { + super(configurer, username); + } + + public void preWindowOpen() { + IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); + configurer.setShowCoolBar(true); + configurer.setShowMenuBar(false); + 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.NO_TRIM); + Rectangle bounds = Display.getCurrent().getBounds(); + configurer.setInitialSize(new Point(bounds.width, bounds.height)); + } + + @Override + public void postWindowCreate() { + Shell shell = getWindowConfigurer().getWindow().getShell(); + shell.setMaximized(true); + } + + @Override + public void postWindowOpen() { + String defaultPerspective = getWindowConfigurer() + .getWorkbenchConfigurer().getWorkbench() + .getPerspectiveRegistry().getDefaultPerspective(); + if (defaultPerspective == null) { + IWorkbenchWindow window = getWindowConfigurer().getWindow(); + if (window == null) + return; + + IWorkbenchAction openPerspectiveDialogAction = ActionFactory.OPEN_PERSPECTIVE_DIALOG + .create(window); + openPerspectiveDialogAction.run(); + } + } + + } }