X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.suite.workbench.rap%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fworkbench%2Fparts%2FAbstractSuiteDashboard.java;h=6ca460eb55be19fbdb930c520cad702195de9317;hp=1b0b9500eabc71c4f587dc8c7219530429f9529c;hb=ce27112f9bc01fc37b1121496f3ad1eb7593d7eb;hpb=5b7eb8ff423b0d9fe94aa823e0a844e4ffb0c27c diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java index 1b0b950..6ca460e 100644 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java @@ -1,23 +1,34 @@ package org.argeo.suite.workbench.parts; +import java.util.HashMap; +import java.util.Map; + +import javax.jcr.Node; import javax.jcr.Repository; import javax.jcr.Session; +import org.argeo.cms.ui.workbench.util.CommandUtils; 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.editors.util.EntityEditorInput; -import org.argeo.connect.ui.workbench.AppWorkbenchService; +import org.argeo.connect.SystemAppService; +import org.argeo.connect.resources.ResourcesService; +import org.argeo.connect.ui.ConnectUiStyles; import org.argeo.connect.util.ConnectJcrUtils; +import org.argeo.connect.workbench.AppWorkbenchService; +import org.argeo.connect.workbench.SystemWorkbenchService; +import org.argeo.connect.workbench.commands.OpenEntityEditor; +import org.argeo.connect.workbench.util.EntityEditorInput; 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.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; 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.swt.widgets.Link; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; @@ -29,8 +40,9 @@ public abstract class AbstractSuiteDashboard extends EditorPart { // DEPENDENCY INJECTION private Repository repository; - private PeopleService peopleService; - private AppWorkbenchService appWorkbenchService; + private ResourcesService resourcesService; + private SystemAppService systemAppService; + private SystemWorkbenchService systemWorkbenchService; private Session session; @@ -91,20 +103,20 @@ public abstract class AbstractSuiteDashboard extends EditorPart { gd.widthHint = widthHint; gd.heightHint = heightHint; gadgetCmp.setLayoutData(gd); - CmsUtils.style(gadgetCmp, PeopleStyles.PEOPLE_CLASS_GADGET); + CmsUtils.style(gadgetCmp, ConnectUiStyles.GADGET_BOX); 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); + CmsUtils.style(titleCmp, ConnectUiStyles.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); + CmsUtils.style(titleLbl, ConnectUiStyles.GADGET_HEADER); titleLbl.setBackground(null); return titleCmp; } @@ -116,7 +128,25 @@ public abstract class AbstractSuiteDashboard extends EditorPart { return bodyCmp; } - // LIFE CYCLE + protected Link createOpenEntityEditorLink(final AppWorkbenchService peopleUiService, Composite parent, + final String label, final Node entity) { + Link link = new Link(parent, SWT.NONE); + link.setText("" + label + ""); + link.setLayoutData(EclipseUiUtils.fillWidth()); + link.addSelectionListener(new SelectionAdapter() { + private static final long serialVersionUID = 1L; + + @Override + public void widgetSelected(final SelectionEvent event) { + Map params = new HashMap(); + params.put(OpenEntityEditor.PARAM_JCR_ID, ConnectJcrUtils.getIdentifier(entity)); + CommandUtils.callCommand(peopleUiService.getOpenEntityEditorCmdId(), params); + } + }); + return link; + } + + // Life cycle @Override public void dispose() { JcrUtils.logoutQuietly(session); @@ -149,20 +179,20 @@ public abstract class AbstractSuiteDashboard extends EditorPart { } // Expose to implementing classes - protected PeopleService getPeopleService() { - return peopleService; + protected Session getSession() { + return session; } - protected AppWorkbenchService getAppWorkbenchService() { - return appWorkbenchService; + public ResourcesService getResourcesService() { + return resourcesService; } - protected Session getSession() { - return session; + protected SystemAppService getSystemAppService() { + return systemAppService; } - protected Image getLogoImg() { - return logoImg; + protected SystemWorkbenchService getSystemWorkbenchService() { + return systemWorkbenchService; } protected FormToolkit getFormToolkit() { @@ -174,11 +204,15 @@ public abstract class AbstractSuiteDashboard extends EditorPart { this.repository = repository; } - public void setAppWorkbenchService(AppWorkbenchService appWorkbenchService) { - this.appWorkbenchService = appWorkbenchService; + public void setResourcesService(ResourcesService resourcesService) { + this.resourcesService = resourcesService; + } + + public void setSystemAppService(SystemAppService systemAppService) { + this.systemAppService = systemAppService; } - public void setPeopleService(PeopleService peopleService) { - this.peopleService = peopleService; + public void setSystemWorkbenchService(SystemWorkbenchService systemWorkbenchService) { + this.systemWorkbenchService = systemWorkbenchService; } }