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=39ea5ec8b85d3ebce721e69454e881013dd3b568;hp=1b0b9500eabc71c4f587dc8c7219530429f9529c;hb=bd0f8b2d36b86eaf1f770d07d7f2c7036ec36489;hpb=17e121fae7fb899ff37c7021ae1ab4d1b90ab68a 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..39ea5ec 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,9 +1,15 @@ 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.documents.DocumentsService; import org.argeo.connect.people.PeopleService; import org.argeo.connect.people.workbench.rap.PeopleStyles; import org.argeo.connect.people.workbench.rap.editors.util.EntityEditorInput; @@ -13,11 +19,14 @@ 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; @@ -30,6 +39,7 @@ public abstract class AbstractSuiteDashboard extends EditorPart { // DEPENDENCY INJECTION private Repository repository; private PeopleService peopleService; + private DocumentsService documentsService; private AppWorkbenchService appWorkbenchService; private Session session; @@ -116,6 +126,25 @@ public abstract class AbstractSuiteDashboard extends EditorPart { return bodyCmp; } + 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(); + // FIXME + params.put("param.jcrId", ConnectJcrUtils.getIdentifier(entity)); + CommandUtils.callCommand(peopleUiService.getOpenEntityEditorCmdId(), params); + } + }); + return link; + } + // LIFE CYCLE @Override public void dispose() { @@ -165,6 +194,10 @@ public abstract class AbstractSuiteDashboard extends EditorPart { return logoImg; } + protected DocumentsService getDocumentsService() { + return documentsService; + } + protected FormToolkit getFormToolkit() { return toolkit; } @@ -178,6 +211,10 @@ public abstract class AbstractSuiteDashboard extends EditorPart { this.appWorkbenchService = appWorkbenchService; } + public void setDocumentsService(DocumentsService documentsService) { + this.documentsService = documentsService; + } + public void setPeopleService(PeopleService peopleService) { this.peopleService = peopleService; }