X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=legacy%2Forg.argeo.slc.client.rap%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Frap%2FSlcSecureRap.java;fp=legacy%2Forg.argeo.slc.client.rap%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Frap%2FSlcSecureRap.java;h=ddd7753061b3f7a7e940fe5b2dfde5526bb177b3;hb=6fc94d69efe089414ac9e63bde3efab1cbf7b7ca;hp=0000000000000000000000000000000000000000;hpb=b36c62642bd0db11b3133b369cc026fd4b7a1ec6;p=gpl%2Fargeo-slc.git diff --git a/legacy/org.argeo.slc.client.rap/src/org/argeo/slc/client/rap/SlcSecureRap.java b/legacy/org.argeo.slc.client.rap/src/org/argeo/slc/client/rap/SlcSecureRap.java new file mode 100644 index 000000000..ddd775306 --- /dev/null +++ b/legacy/org.argeo.slc.client.rap/src/org/argeo/slc/client/rap/SlcSecureRap.java @@ -0,0 +1,81 @@ +package org.argeo.slc.client.rap; + +import org.argeo.cms.ui.workbench.rap.RapWindowAdvisor; +import org.argeo.cms.ui.workbench.rap.RapWorkbenchAdvisor; +import org.argeo.cms.ui.workbench.rap.RapWorkbenchLogin; +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 RapWorkbenchLogin { + + @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(); + } + } + + } +}