package com.javafun.timetracking.ui; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.rwt.RWT; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.application.IWorkbenchConfigurer; import org.eclipse.ui.application.IWorkbenchWindowConfigurer; import org.eclipse.ui.application.WorkbenchAdvisor; import org.eclipse.ui.application.WorkbenchWindowAdvisor; /** * This workbench advisor creates the window advisor, and specifies the * perspective id for the initial window. */ public class SettingsWorkbenchAdvisor extends WorkbenchAdvisor { private static final String PERSPECTIVE_ID = "com.javafun.core.perspective.settings"; public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(final IWorkbenchWindowConfigurer configurer) { return new SettingsWorkbenchWindowAdvisor(configurer); } public String getInitialWindowPerspectiveId() { return PERSPECTIVE_ID; } @Override public void initialize(final IWorkbenchConfigurer configurer) { super.initialize(configurer); configurer.setSaveAndRestore(true); } @Override public boolean preShutdown() { final Display display = Display.getCurrent(); return MessageDialog.openQuestion(display.getActiveShell(), "Exit", "Are you sure you want to exit the application?"); } @Override public void postShutdown() { super.postShutdown(); UiUtils.shutDownApp(Display.getCurrent(), RWT.getSessionStore().getHttpSession()); } }