1 package org
.argeo
.suite
.workbench
.parts
;
4 import javax
.jcr
.NodeIterator
;
6 import org
.apache
.commons
.logging
.Log
;
7 import org
.apache
.commons
.logging
.LogFactory
;
8 import org
.argeo
.connect
.activities
.ActivitiesTypes
;
9 import org
.argeo
.connect
.people
.PeopleTypes
;
10 import org
.argeo
.connect
.resources
.ResourcesTypes
;
11 import org
.argeo
.connect
.ui
.workbench
.ConnectWorkbenchUtils
;
12 import org
.argeo
.connect
.ui
.workbench
.Refreshable
;
13 import org
.argeo
.connect
.util
.ConnectJcrUtils
;
14 import org
.argeo
.eclipse
.ui
.EclipseUiUtils
;
15 import org
.argeo
.suite
.workbench
.AsUiPlugin
;
16 import org
.eclipse
.swt
.SWT
;
17 import org
.eclipse
.swt
.layout
.GridData
;
18 import org
.eclipse
.swt
.layout
.GridLayout
;
19 import org
.eclipse
.swt
.widgets
.Composite
;
21 /** Argeo Suite Default Dashboard */
22 public class DefaultDashboardEditor
extends AbstractSuiteDashboard
implements Refreshable
{
23 final static Log log
= LogFactory
.getLog(DefaultDashboardEditor
.class);
24 public final static String ID
= AsUiPlugin
.PLUGIN_ID
+ ".defaultDashboardEditor";
26 // Default gadget dimensions
30 private Composite lastUpdatedDocsGadget
;
33 public void createPartControl(Composite parent
) {
34 super.createPartControl(parent
);
36 parent
.setLayout(new GridLayout());
38 Composite body
= getFormToolkit().createComposite(parent
);
39 body
.setLayoutData(new GridData(SWT
.CENTER
, SWT
.CENTER
, true, true));
41 GridLayout bodyLayout
= new GridLayout(2, true);
42 bodyLayout
.horizontalSpacing
= 20;
43 bodyLayout
.verticalSpacing
= 20;
44 body
.setLayout(bodyLayout
);
47 Composite contactGadget
= createGadgetCmp(body
, wh
, hh
);
48 populateContactsGadget(contactGadget
);
50 // Last updated doc List
51 lastUpdatedDocsGadget
= createGadgetCmp(body
, wh
, hh
);
55 public void forceRefresh(Object object
) {
56 refreshDocListGadget();
60 public void setFocus() {
61 refreshDocListGadget();
64 /** Links to the various last updated docs */
65 private void refreshDocListGadget() {
66 EclipseUiUtils
.clear(lastUpdatedDocsGadget
);
67 lastUpdatedDocsGadget
.setLayout(EclipseUiUtils
.noSpaceGridLayout());
68 createGadgetTitleCmp(lastUpdatedDocsGadget
, "Last updated documents");
69 Composite bodyCmp
= createGadgetBodyCmp(lastUpdatedDocsGadget
);
71 NodeIterator nit
= getDocumentsService().getLastUpdatedDocuments(getSession());
72 while (nit
.hasNext()) {
73 Node file
= nit
.nextNode();
74 createOpenEntityEditorLink(getAppWorkbenchService(), bodyCmp
, ConnectJcrUtils
.getName(file
), file
);
76 lastUpdatedDocsGadget
.layout(true, true);
79 /** Links to the various contact search pages */
80 private void populateContactsGadget(Composite parent
) {
81 parent
.setLayout(EclipseUiUtils
.noSpaceGridLayout());
82 createGadgetTitleCmp(parent
, "Contacts");
83 Composite bodyCmp
= createGadgetBodyCmp(parent
);
84 ConnectWorkbenchUtils
.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp
, "Persons",
85 PeopleTypes
.PEOPLE_PERSON
);
86 ConnectWorkbenchUtils
.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp
, "Organisations",
87 PeopleTypes
.PEOPLE_ORG
);
88 ConnectWorkbenchUtils
.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp
, "Mailing lists",
89 PeopleTypes
.PEOPLE_MAILING_LIST
);
90 ConnectWorkbenchUtils
.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp
, "Tasks",
91 ActivitiesTypes
.ACTIVITIES_TASK
);
92 ConnectWorkbenchUtils
.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp
, "Tags",
93 ResourcesTypes
.RESOURCES_TAG_INSTANCE
);