1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.argeo.cms.ui.workbench.rap.commands;
17
18 import org.argeo.cms.ui.workbench.UserHomePerspective;
19 import org.argeo.cms.ui.workbench.util.CommandUtils;
20 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
21 import org.eclipse.core.commands.AbstractHandler;
22 import org.eclipse.core.commands.ExecutionEvent;
23 import org.eclipse.core.commands.ExecutionException;
24 import org.eclipse.ui.WorkbenchException;
25 import org.eclipse.ui.handlers.HandlerUtil;
26
27
28 public class OpenHome extends AbstractHandler {
29 private final static String PROP_OPEN_HOME_CMD_ID = "org.argeo.ui.openHomeCommandId";
30
31 public Object execute(ExecutionEvent event) throws ExecutionException {
32
33 String defaultCmdId = System.getProperty(PROP_OPEN_HOME_CMD_ID, "");
34 if (!"".equals(defaultCmdId.trim()))
35 CommandUtils.callCommand(defaultCmdId);
36 else {
37 try {
38 String defaultPerspective = HandlerUtil.getActiveWorkbenchWindow(event).getWorkbench()
39 .getPerspectiveRegistry().getDefaultPerspective();
40 HandlerUtil.getActiveSite(event).getWorkbenchWindow()
41 .openPage(defaultPerspective != null ? defaultPerspective : UserHomePerspective.ID, null);
42 } catch (WorkbenchException e) {
43 ErrorFeedback.show("Cannot open home perspective", e);
44 }
45 }
46 return null;
47 }
48 }