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%2FDefaultDashboardEditor.java;h=24ada5034082d122c16c12e379d60064feda8d5c;hp=40726cd0d83fb87b81e5cd53ff35369fcb0b01ae;hb=fe916e251a36556d328e1259d71c21891cd92c17;hpb=5b7eb8ff423b0d9fe94aa823e0a844e4ffb0c27c diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java index 40726cd..24ada50 100644 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java @@ -1,12 +1,14 @@ package org.argeo.suite.workbench.parts; import javax.jcr.Node; +import javax.jcr.NodeIterator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.connect.people.PeopleConstants; import org.argeo.connect.people.PeopleTypes; import org.argeo.connect.people.workbench.rap.PeopleRapUtils; +import org.argeo.connect.ui.workbench.Refreshable; import org.argeo.connect.util.ConnectJcrUtils; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.suite.workbench.AsUiPlugin; @@ -16,7 +18,7 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; /** Argeo Suite Default Dashboard */ -public class DefaultDashboardEditor extends AbstractSuiteDashboard { +public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Refreshable { final static Log log = LogFactory.getLog(DefaultDashboardEditor.class); public final static String ID = AsUiPlugin.PLUGIN_ID + ".defaultDashboardEditor"; @@ -24,6 +26,8 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard { private int wh = 300; private int hh = 350; + private Composite lastUpdatedDocsGadget; + @Override public void createPartControl(Composite parent) { super.createPartControl(parent); @@ -38,38 +42,37 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard { 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); + // Last updated doc List + lastUpdatedDocsGadget = createGadgetCmp(body, wh, hh); } - /** Links to the various projects */ - private void populateProjectsGadget(Composite parent) { - parent.setLayout(EclipseUiUtils.noSpaceGridLayout()); - createGadgetTitleCmp(parent, "Projects"); - Composite bodyCmp = createGadgetBodyCmp(parent); + @Override + public void forceRefresh(Object object) { + refreshDocListGadget(); + } - // // 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); + @Override + public void setFocus() { + refreshDocListGadget(); + } + + /** Links to the various last updated docs */ + private void refreshDocListGadget() { + EclipseUiUtils.clear(lastUpdatedDocsGadget); + lastUpdatedDocsGadget.setLayout(EclipseUiUtils.noSpaceGridLayout()); + createGadgetTitleCmp(lastUpdatedDocsGadget, "Last updated documents"); + Composite bodyCmp = createGadgetBodyCmp(lastUpdatedDocsGadget); + + NodeIterator nit = getDocumentsService().getLastUpdatedDocuments(getSession()); + while (nit.hasNext()) { + Node file = nit.nextNode(); + createOpenEntityEditorLink(getAppWorkbenchService(), bodyCmp, ConnectJcrUtils.getName(file), file); + } + lastUpdatedDocsGadget.layout(true, true); } /** Links to the various contact search pages */ @@ -77,7 +80,7 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard { parent.setLayout(EclipseUiUtils.noSpaceGridLayout()); createGadgetTitleCmp(parent, "Contacts"); Composite bodyCmp = createGadgetBodyCmp(parent); - + PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Persons", PeopleTypes.PEOPLE_PERSON, getPeopleService().getBasePath(PeopleTypes.PEOPLE_PERSON)); @@ -88,13 +91,12 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard { PeopleTypes.PEOPLE_MAILING_LIST); PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Mailing lists", PeopleTypes.PEOPLE_MAILING_LIST, ConnectJcrUtils.getPath(tagParent)); - - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tasks", - PeopleTypes.PEOPLE_TASK, getPeopleService().getBasePath(null)); - + PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tasks", PeopleTypes.PEOPLE_TASK, + getPeopleService().getBasePath(null)); + tagParent = getPeopleService().getResourceService().getTagLikeResourceParent(getSession(), PeopleConstants.RESOURCE_TAG); - + PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tags", PeopleTypes.PEOPLE_TAG_INSTANCE, ConnectJcrUtils.getPath(tagParent));