<artifactId>org.argeo.connect.people.web</artifactId>
<version>${version.argeo-connect}</version>
</dependency>
- <dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.connect.ui</artifactId>
- <version>${version.argeo-connect}</version>
- </dependency>
<dependency>
<groupId>org.argeo.commons</groupId>
<artifactId>org.argeo.cms.ui</artifactId>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
+ xsi:schemaLocation="http://www.springframework.org/schema/osgi \r
+ http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
+ http://www.springframework.org/schema/beans \r
+ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
+\r
+ <!-- REFERENCES -->\r
+ <reference id="repository" interface="javax.jcr.Repository"\r
+ filter="(cn=home)" />\r
+ <reference id="peopleService" interface="org.argeo.connect.people.PeopleService" />\r
+ <reference id="peopleWorkbenchService"\r
+ interface="org.argeo.connect.people.workbench.rap.PeopleWorkbenchService" />\r
+</beans:beans>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
+
+ <!-- COMMANDS -->
+ <bean id="openDashboardEditor" class="org.argeo.suite.workbench.commands.OpenDashboardEditor"
+ scope="prototype">
+ <property name="repository" ref="repository" />
+ </bean>
+
+ <!-- VIEWS -->
+ <bean id="testView" class="org.argeo.suite.workbench.parts.TestView"
+ scope="prototype">
+ <property name="repository" ref="repository" />
+ </bean>
+
+ <!-- EDITORS -->
+ <bean id="defaultDashboardEditor" class="org.argeo.suite.workbench.parts.DefaultDashboardEditor"
+ scope="prototype">
+ <property name="repository" ref="repository" />
+ <property name="peopleService" ref="peopleService" />
+ <property name="peopleWorkbenchService" ref="peopleWorkbenchService" />
+ </bean>
+</beans>
org.argeo.cms,\
org.argeo.cms.ui.workbench,\
org.argeo.connect.people.workbench.rap.views,\
+org.argeo.connect.ui,\
org.argeo.eclipse.spring,\
org.argeo.node,\
org.argeo.util,\
point="org.eclipse.ui.perspectives">
<perspective
class="org.argeo.suite.workbench.DashboardPerspective"
- id="org.argeo.suite.workbench.dashboardPerspective"
- icon="theme/argeo-classic/icons/favicon.png"
+ id="org.argeo.suite.workbench.rap.dashboardPerspective"
+ icon="theme/argeo-classic/icons/favicon-16px.png"
name="Dashboard">
</perspective>
</extension>
-
+ <!-- VIEWS -->
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ id="org.argeo.connect.people.workbench.rap.quickSearchView"
+ class="org.argeo.eclipse.spring.SpringExtensionFactory"
+ icon="theme/argeo-classic/icons/favicon-16px.png"
+ name="Test View"
+ restorable="true">
+ </view>
+ </extension>
+
<!-- EDITORS -->
<extension
point="org.eclipse.ui.editors">
+ <editor
+ id="org.argeo.suite.workbench.rap.defaultDashboardEditor"
+ class="org.argeo.eclipse.spring.SpringExtensionFactory"
+ icon="theme/argeo-classic/icons/favicon-16px.png"
+ name="My Dashboard">
+ </editor>
</extension>
<!-- COMMANDS -->
<extension
point="org.eclipse.ui.commands">
+ <command
+ id="org.argeo.suite.workbench.rap.openDashboardEditor"
+ defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+ name="createEntity">
+ </command>
</extension>
<!-- MENU CONTRIBUTION -->
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.argeo.suite</groupId>
<name>Argeo Suite Rap Workbench</name>
<packaging>jar</packaging>
<dependencies>
+ <dependency>
+ <groupId>org.argeo.suite</groupId>
+ <artifactId>org.argeo.suite.web</artifactId>
+ <version>0.1.1-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.argeo.connect</groupId>
<artifactId>org.argeo.connect.people.workbench.rap</artifactId>
/** The activator class controls the plug-in life cycle */
public class AsUiPlugin extends AbstractUIPlugin {
- public static final String PLUGIN_ID = "org.argeo.suite.workbench";
+ public static final String PLUGIN_ID = "org.argeo.suite.workbench.rap";
// The shared instance
private static AsUiPlugin plugin;
--- /dev/null
+package org.argeo.suite.workbench;
+
+import org.argeo.connect.people.workbench.rap.PeopleWorkbenchService;
+import org.argeo.connect.people.workbench.rap.PeopleWorkbenchServiceImpl;
+import org.argeo.suite.workbench.parts.DefaultDashboardEditor;
+
+/** Centralize workbench services from the various base apps */
+public class AsWorkbenchServiceImpl extends PeopleWorkbenchServiceImpl implements PeopleWorkbenchService {
+
+ @Override
+ public String getDefaultEditorId() {
+ return DefaultDashboardEditor.ID;
+ }
+}
+
+// extends PeopleWorkbenchServiceImpl {
+//
+// public String getDefaultEditorId() {
+// return DefaultDashboardEditor.ID;
+// }
+//
+// //
+// // @Override
+// // public Image getIconForType(Node entity) {
+// // try {
+// // if (entity.isNodeType(AoTypes.OFFICE_ACCOUNT))
+// // return AoImages.ICON_ACCOUNT;
+// // else if (entity.isNodeType(TrackerTypes.TRACKER_ISSUE))
+// // return AoImages.ICON_ISSUE;
+// // else if (entity.isNodeType(TrackerTypes.TRACKER_PROJECT))
+// // return AoImages.ICON_PROJECT;
+// // else if (entity.isNodeType(AoTypes.OFFICE_PROSPECT))
+// // return AoImages.ICON_PROSPECT;
+// // else
+// // return super.getIconForType(entity);
+// // } catch (RepositoryException re) {
+// // throw new PeopleException("Unable to get image for node", re);
+// // }
+// // }
+// }
package org.argeo.suite.workbench;
+import org.argeo.cms.ui.workbench.jcr.NodeFsBrowserView;
import org.argeo.connect.people.workbench.rap.views.MyTasksView;
-import org.argeo.connect.people.workbench.rap.views.PeopleDefaultView;
+import org.argeo.connect.people.workbench.rap.views.QuickSearchView;
import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;
-/** Default office perspective */
+/** Default Argeo Suite Dashboard perspective */
public class DashboardPerspective implements IPerspectiveFactory {
public void createInitialLayout(IPageLayout layout) {
layout.setEditorAreaVisible(true);
layout.setFixed(false);
- IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, 0.25f, editorArea);
+ IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, 0.33f, editorArea);
+ // Only show contacts if current user is a coworker
+ // if (CurrentUser.isInRole(Role.coworker.dn()))
left.addView(MyTasksView.ID);
- // Only show contacts to coworkers
- // if (CurrentUser.isInRole(AoRole.coworker.dn()))
- left.addView(PeopleDefaultView.ID);
+ left.addView(QuickSearchView.ID);
+ left.addView(NodeFsBrowserView.ID);
}
}
--- /dev/null
+package org.argeo.suite.workbench.commands;
+
+import javax.jcr.Node;
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
+import org.argeo.connect.people.workbench.rap.editors.util.EntityEditorInput;
+import org.argeo.jcr.JcrUtils;
+import org.argeo.node.NodeUtils;
+import org.argeo.suite.SuiteException;
+import org.argeo.suite.workbench.AsUiPlugin;
+import org.argeo.suite.workbench.parts.DefaultDashboardEditor;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+/** Workaround to enable opening of a default editor */
+public class OpenDashboardEditor extends AbstractHandler {
+ public final static String ID = AsUiPlugin.PLUGIN_ID + ".openDashboardEditor";
+
+ private Repository repository;
+
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ Session session = null;
+ try {
+ // TODO check roles
+ session = repository.login();
+ IWorkbenchPage iwPage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+ Node homeNode = NodeUtils.getUserHome(session);
+ EntityEditorInput eei = new EntityEditorInput(homeNode.getIdentifier());
+ IEditorPart iep = iwPage.findEditor(eei);
+ if (iep == null) {
+ iwPage.openEditor(eei, DefaultDashboardEditor.ID);
+ } else
+ iwPage.activate(iep);
+ } catch (RepositoryException | PartInitException re) {
+ throw new SuiteException("Unable to open dashboard", re);
+ } finally {
+ JcrUtils.logoutQuietly(session);
+ }
+ return null;
+ }
+
+ public void setRepository(Repository repository) {
+ this.repository = repository;
+ }
+}
--- /dev/null
+package org.argeo.suite.workbench.parts;
+
+import javax.jcr.Repository;
+import javax.jcr.Session;
+
+import org.argeo.cms.util.CmsUtils;
+import org.argeo.connect.people.PeopleService;
+import org.argeo.connect.people.workbench.rap.PeopleStyles;
+import org.argeo.connect.people.workbench.rap.PeopleWorkbenchService;
+import org.argeo.connect.people.workbench.rap.editors.util.EntityEditorInput;
+import org.argeo.connect.util.ConnectJcrUtils;
+import org.argeo.eclipse.ui.EclipseUiUtils;
+import org.argeo.jcr.JcrUtils;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.part.EditorPart;
+
+/** Generic dashboard for Argeo Suite applications */
+public abstract class AbstractSuiteDashboard extends EditorPart {
+
+ // DEPENDENCY INJECTION
+ private Repository repository;
+ private PeopleService peopleService;
+ private PeopleWorkbenchService peopleWorkbenchService;
+
+ private Session session;
+
+ // UI Objects
+ private Image logoImg;
+ private FormToolkit toolkit;
+
+ @Override
+ public void init(IEditorSite site, IEditorInput input) throws PartInitException {
+ setSite(site);
+ setInput(input);
+
+ session = ConnectJcrUtils.login(repository);
+ // initialiseImg();
+ updateTooltip(input);
+ }
+
+ private void updateTooltip(IEditorInput input) {
+ if (input instanceof EntityEditorInput) {
+ EntityEditorInput sei = (EntityEditorInput) input;
+ sei.setTooltipText("My Dashboard");
+ }
+ }
+
+ // private void initialiseImg() {
+ // InputStream is = null;
+ // try {
+ // String imgPath = peopleService.getInstanceConfPath() + "/"
+ // + AoNames.AO_DEFAULT_LOGO;
+ // if (session.nodeExists(imgPath)) {
+ // Node imageNode = session.getNode(imgPath).getNode(
+ // Node.JCR_CONTENT);
+ // is = imageNode.getProperty(Property.JCR_DATA).getBinary()
+ // .getStream();
+ // logoImg = new Image(this.getSite().getShell().getDisplay(), is);
+ // }
+ // } catch (RepositoryException re) {
+ // throw new AoException(
+ // "Unable to initialise specific logo for demo app", re);
+ // } finally {
+ // IOUtils.closeQuietly(is);
+ // }
+ // }
+
+ /**
+ * Implementing classes must call super in order to create the correct form
+ * toolkit
+ */
+ @Override
+ public void createPartControl(Composite parent) {
+ toolkit = new FormToolkit(getSite().getShell().getDisplay());
+ }
+
+ // UTILS
+ protected Composite createGadgetCmp(Composite parent, int widthHint, int heightHint) {
+ Composite gadgetCmp = toolkit.createComposite(parent, SWT.BORDER);
+ GridData gd = new GridData(SWT.CENTER, SWT.CENTER, false, false);
+ gd.widthHint = widthHint;
+ gd.heightHint = heightHint;
+ gadgetCmp.setLayoutData(gd);
+ CmsUtils.style(gadgetCmp, PeopleStyles.PEOPLE_CLASS_GADGET);
+ return gadgetCmp;
+ }
+
+ protected Composite createGadgetTitleCmp(Composite parent, String title) {
+ Composite titleCmp = toolkit.createComposite(parent, SWT.BACKGROUND | SWT.INHERIT_NONE);
+ CmsUtils.style(titleCmp, PeopleStyles.GADGET_HEADER);
+ titleCmp.setBackground(null);
+ GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);
+ titleCmp.setLayoutData(gd);
+ titleCmp.setLayout(new GridLayout());
+
+ Label titleLbl = toolkit.createLabel(titleCmp, title + " ", SWT.BOLD);
+ CmsUtils.style(titleLbl, PeopleStyles.GADGET_HEADER);
+ titleLbl.setBackground(null);
+ return titleCmp;
+ }
+
+ protected Composite createGadgetBodyCmp(Composite parent) {
+ Composite bodyCmp = toolkit.createComposite(parent, SWT.BACKGROUND | SWT.INHERIT_NONE);
+ bodyCmp.setLayoutData(EclipseUiUtils.fillAll());
+ bodyCmp.setLayout(new GridLayout());
+ return bodyCmp;
+ }
+
+ // LIFE CYCLE
+ @Override
+ public void dispose() {
+ JcrUtils.logoutQuietly(session);
+ if (logoImg != null)
+ logoImg.dispose();
+ super.dispose();
+ }
+
+ @Override
+ public void doSave(IProgressMonitor monitor) {
+ }
+
+ @Override
+ public void doSaveAs() {
+ }
+
+ @Override
+ public boolean isDirty() {
+ return false;
+ }
+
+ @Override
+ public boolean isSaveAsAllowed() {
+ return false;
+ }
+
+ @Override
+ public void setFocus() {
+ // Do nothing
+ }
+
+ // Expose to implementing classes
+ protected PeopleService getPeopleService() {
+ return peopleService;
+ }
+
+ protected PeopleWorkbenchService getPeopleWorkbenchService() {
+ return peopleWorkbenchService;
+ }
+
+ protected Session getSession() {
+ return session;
+ }
+
+ protected Image getLogoImg() {
+ return logoImg;
+ }
+
+ protected FormToolkit getFormToolkit() {
+ return toolkit;
+ }
+
+ /* DEPENDENCY INJECTION */
+ public void setRepository(Repository repository) {
+ this.repository = repository;
+ }
+
+ public void setPeopleWorkbenchService(PeopleWorkbenchService peopleWorkbenchService) {
+ this.peopleWorkbenchService = peopleWorkbenchService;
+ }
+
+ public void setPeopleService(PeopleService peopleService) {
+ this.peopleService = peopleService;
+ }
+}
--- /dev/null
+package org.argeo.suite.workbench.parts;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.connect.people.PeopleTypes;
+import org.argeo.connect.people.workbench.rap.PeopleRapUtils;
+import org.argeo.eclipse.ui.EclipseUiUtils;
+import org.argeo.suite.workbench.AsUiPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+
+/** Argeo Suite Default Dashboard */
+public class DefaultDashboardEditor extends AbstractSuiteDashboard {
+ final static Log log = LogFactory.getLog(DefaultDashboardEditor.class);
+ public final static String ID = AsUiPlugin.PLUGIN_ID + ".defaultDashboardEditor";
+
+ // Default gadget dimensions
+ private int wh = 300;
+ private int hh = 350;
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+
+ parent.setLayout(new GridLayout());
+ // Main Layout
+ Composite body = getFormToolkit().createComposite(parent);
+ body.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true));
+
+ GridLayout bodyLayout = new GridLayout(2, true);
+ bodyLayout.horizontalSpacing = 20;
+ bodyLayout.verticalSpacing = 20;
+ body.setLayout(bodyLayout);
+
+ // Project List
+ Composite projectsGadget = createGadgetCmp(body, wh, hh);
+ populateProjectsGadget(projectsGadget);
+
+ // Contacts
+ Composite contactGadget = createGadgetCmp(body, wh, hh);
+ populateContactsGadget(contactGadget);
+
+ }
+
+ /** Links to the various projects */
+ private void populateProjectsGadget(Composite parent) {
+ parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
+ createGadgetTitleCmp(parent, "Projects");
+ Composite bodyCmp = createGadgetBodyCmp(parent);
+
+ // // TODO enhance this
+ // NodeIterator nit = AoUtils.listNodesOfType(getSession(),
+ // AoTypes.OFFICE_ACCOUNT,
+ // getAoService().getBasePath(AoTypes.OFFICE_ACCOUNT));
+ // while (nit.hasNext()) {
+ // Node account = nit.nextNode();
+ // PeopleRapUtils.createOpenEntityEditorLink(getAoWbService(), bodyCmp,
+ // ConnectJcrUtils.get(account, Property.JCR_TITLE), account);
+ // }
+ //
+ // PeopleWorkbenchService aoWbSrv = getAoWbService();
+ // // Opens a lits of all projects
+ //
+ // PeopleRapUtils.createOpenSearchEditorLink(aoWbSrv, bodyCmp, "All
+ // projects", TrackerTypes.TRACKER_PROJECT,
+ // AoConstants.ACCOUNTS_BASE_PATH);
+ }
+
+ /** Links to the various contact search pages */
+ private void populateContactsGadget(Composite parent) {
+ parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
+ createGadgetTitleCmp(parent, "Contacts");
+ Composite bodyCmp = createGadgetBodyCmp(parent);
+ PeopleRapUtils.createOpenSearchEditorLink(getPeopleWorkbenchService(), bodyCmp, "Persons",
+ PeopleTypes.PEOPLE_PERSON, getPeopleService().getBasePath(PeopleTypes.PEOPLE_PERSON));
+
+ PeopleRapUtils.createOpenSearchEditorLink(getPeopleWorkbenchService(), bodyCmp, "Organisations",
+ PeopleTypes.PEOPLE_ORG, getPeopleService().getBasePath(PeopleTypes.PEOPLE_ORG));
+ }
+}
--- /dev/null
+package org.argeo.suite.workbench.parts;
+
+import javax.jcr.Repository;
+import javax.jcr.Session;
+
+import org.argeo.connect.util.ConnectJcrUtils;
+import org.argeo.eclipse.ui.EclipseUiUtils;
+import org.argeo.jcr.JcrUtils;
+import org.argeo.suite.workbench.AsUiPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.part.ViewPart;
+
+/** Basic view to test plugin */
+public class TestView extends ViewPart {
+ public static final String ID = AsUiPlugin.PLUGIN_ID + ".testView";
+
+ /* DEPENDENCY INJECTION */
+ private Repository repository;
+ private Session session;
+
+ @Override
+ public void createPartControl(Composite parent) {
+ // Finalise initialisation
+ session = ConnectJcrUtils.login(repository);
+
+ GridLayout layout = EclipseUiUtils.noSpaceGridLayout();
+ layout.verticalSpacing = 5;
+ parent.setLayout(layout);
+
+ new Label(parent, SWT.NONE).setText("Test view shown.");
+ }
+
+ @Override
+ public void setFocus() {
+ }
+
+ @Override
+ public void dispose() {
+ JcrUtils.logoutQuietly(session);
+ super.dispose();
+ }
+
+ public void setRepository(Repository repository) {
+ this.repository = repository;
+ }
+}
package org.argeo.suite.workbench.rap;
-import static org.eclipse.swt.SWT.CENTER;
-import static org.eclipse.swt.SWT.LEFT;
-import static org.eclipse.swt.SWT.NO_FOCUS;
-import static org.eclipse.swt.SWT.TOP;
-
import org.argeo.cms.ui.workbench.rap.RapWorkbenchAdvisor;
import org.argeo.cms.ui.workbench.rap.RapWorkbenchLogin;
import org.argeo.cms.util.CmsUtils;
import org.argeo.cms.widgets.auth.CmsLogin;
import org.argeo.eclipse.ui.EclipseUiUtils;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
CmsUtils.markup(headerLbl);
String headerStr = "<a href=\"http://argeo.org\" "
+ "title=\"Smart Data Productivity Suite, by Argeo\" target=\"_blank\"> "
- + "<img src=\"/ui/suite/img/logo.jpg\" width=\"200\" height=\"140\"></img> "
- + "</a>";
+ + "<img src=\"/ui/suite/img/logo.jpg\" width=\"200\" height=\"140\"></img> " + "</a>";
headerLbl.setText(headerStr);
GridData gd = new GridData(SWT.LEFT, SWT.CENTER, true, false);
headerLbl.setLayoutData(gd);
String titleStr = "<big> Please sign in to your personal dashboard</big>";
titleLbl.setText(titleStr);
gd = new GridData(SWT.CENTER, SWT.BOTTOM, false, false);
- gd.verticalIndent = 40;
+ gd.verticalIndent = 80;
titleLbl.setLayoutData(gd);
// Login composite
package org.argeo.suite.workbench.rap;
import org.argeo.cms.ui.workbench.rap.RapWindowAdvisor;
+import org.argeo.cms.ui.workbench.util.CommandUtils;
+import org.argeo.eclipse.ui.EclipseUiUtils;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
private String username;
- public AsWindowAdvisor(IWorkbenchWindowConfigurer configurer,
- String username) {
+ public AsWindowAdvisor(IWorkbenchWindowConfigurer configurer, String username) {
super(configurer, username);
this.username = username;
}
@Override
- public ActionBarAdvisor createActionBarAdvisor(
- IActionBarConfigurer configurer) {
+ public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
return new AsActionBarAdvisor(configurer, username);
}
@Override
public void postWindowOpen() {
super.postWindowOpen();
+ // TODO use a constant rather than a String
+ String openDfltEdCmdId = System.getProperty("org.argeo.ui.openHomeCommandId");
+ if (EclipseUiUtils.notEmpty(openDfltEdCmdId))
+ CommandUtils.callCommand(openDfltEdCmdId);
}
}
<url>http://www.gnu.org/licenses/gpl-3.0.txt</url>
<distribution>repo</distribution>
<comments><![CDATA[
-Argeo Suite - Rugged software for a rough world
+Smart Data Productivity Suite - Lean, robust and secured distributed Java applications
Copyright (C) 2017 Argeo GmbH
This program is free software: you can redistribute it and/or modify