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=56980ea98154a92e9727062c7b5016d57876376b;hp=438e5de0cb4afedab17f8b3af16975d0df020c9c;hpb=651d33e13bfa9a7b46464be412023ee747e612e8;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 438e5de0c..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 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2012 Mathieu Baudier + * Copyright (C) 2007-2012 Argeo GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -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(); + } + } + + } }