Adapt to changes in Connect
[gpl/argeo-suite.git] / org.argeo.suite.workbench.rap / src / org / argeo / suite / workbench / parts / AbstractSuiteDashboard.java
index 6cf2bd3218ec540d0774129664481cc57ea0e89b..29c5672440eeb0db04b6c6c54df4996945c6855f 100644 (file)
@@ -1,23 +1,33 @@
 package org.argeo.suite.workbench.parts;
 
 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 javax.jcr.Repository;
 import javax.jcr.Session;
 
+import org.argeo.cms.ui.workbench.util.CommandUtils;
 import org.argeo.cms.util.CmsUtils;
 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.SystemAppService;
+import org.argeo.connect.resources.ResourcesService;
+import org.argeo.connect.ui.AppWorkbenchService;
+import org.argeo.connect.ui.ConnectEditor;
+import org.argeo.connect.ui.ConnectUiStyles;
+import org.argeo.connect.ui.SystemWorkbenchService;
 import org.argeo.connect.util.ConnectJcrUtils;
 import org.argeo.connect.util.ConnectJcrUtils;
+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.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.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
 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.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;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
@@ -29,13 +39,13 @@ public abstract class AbstractSuiteDashboard extends EditorPart {
 
        // DEPENDENCY INJECTION
        private Repository repository;
 
        // DEPENDENCY INJECTION
        private Repository repository;
-       private PeopleService peopleService;
-       private PeopleWorkbenchService peopleWorkbenchService;
+       private ResourcesService resourcesService;
+       private SystemAppService systemAppService;
+       private SystemWorkbenchService systemWorkbenchService;
 
        private Session session;
 
        // UI Objects
 
        private Session session;
 
        // UI Objects
-       private Image logoImg;
        private FormToolkit toolkit;
 
        @Override
        private FormToolkit toolkit;
 
        @Override
@@ -44,7 +54,6 @@ public abstract class AbstractSuiteDashboard extends EditorPart {
                setInput(input);
 
                session = ConnectJcrUtils.login(repository);
                setInput(input);
 
                session = ConnectJcrUtils.login(repository);
-               // initialiseImg();
                updateTooltip(input);
        }
 
                updateTooltip(input);
        }
 
@@ -55,26 +64,6 @@ public abstract class AbstractSuiteDashboard extends EditorPart {
                }
        }
 
                }
        }
 
-       // 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
        /**
         * Implementing classes must call super in order to create the correct form
         * toolkit
@@ -91,20 +80,20 @@ public abstract class AbstractSuiteDashboard extends EditorPart {
                gd.widthHint = widthHint;
                gd.heightHint = heightHint;
                gadgetCmp.setLayoutData(gd);
                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);
                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);
                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;
        }
                titleLbl.setBackground(null);
                return titleCmp;
        }
@@ -116,12 +105,28 @@ public abstract class AbstractSuiteDashboard extends EditorPart {
                return bodyCmp;
        }
 
                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("<a>" + label + "</a>");
+               link.setLayoutData(EclipseUiUtils.fillWidth());
+               link.addSelectionListener(new SelectionAdapter() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       public void widgetSelected(final SelectionEvent event) {
+                               Map<String, String> params = new HashMap<String, String>();
+                               params.put(ConnectEditor.PARAM_JCR_ID, ConnectJcrUtils.getIdentifier(entity));
+                               CommandUtils.callCommand(peopleUiService.getOpenEntityEditorCmdId(), params);
+                       }
+               });
+               return link;
+       }
+
+       // Life cycle
        @Override
        public void dispose() {
                JcrUtils.logoutQuietly(session);
        @Override
        public void dispose() {
                JcrUtils.logoutQuietly(session);
-               if (logoImg != null)
-                       logoImg.dispose();
                super.dispose();
        }
 
                super.dispose();
        }
 
@@ -149,20 +154,20 @@ public abstract class AbstractSuiteDashboard extends EditorPart {
        }
 
        // Expose to implementing classes
        }
 
        // Expose to implementing classes
-       protected PeopleService getPeopleService() {
-               return peopleService;
+       protected Session getSession() {
+               return session;
        }
 
        }
 
-       protected PeopleWorkbenchService getPeopleWorkbenchService() {
-               return peopleWorkbenchService;
+       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() {
        }
 
        protected FormToolkit getFormToolkit() {
@@ -174,11 +179,15 @@ public abstract class AbstractSuiteDashboard extends EditorPart {
                this.repository = repository;
        }
 
                this.repository = repository;
        }
 
-       public void setPeopleWorkbenchService(PeopleWorkbenchService peopleWorkbenchService) {
-               this.peopleWorkbenchService = peopleWorkbenchService;
+       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;
        }
 }
        }
 }