1 package org
.argeo
.suite
.e4
.parts
;
3 import javax
.annotation
.PostConstruct
;
4 import javax
.annotation
.PreDestroy
;
5 import javax
.inject
.Inject
;
7 import javax
.jcr
.Repository
;
8 import javax
.jcr
.Session
;
10 import org
.argeo
.api
.NodeConstants
;
11 import org
.argeo
.cms
.ui
.eclipse
.forms
.FormToolkit
;
12 import org
.argeo
.cms
.ui
.util
.CmsUiUtils
;
13 import org
.argeo
.connect
.SystemAppService
;
14 import org
.argeo
.connect
.resources
.ResourcesService
;
15 import org
.argeo
.connect
.ui
.AppWorkbenchService
;
16 import org
.argeo
.connect
.ui
.ConnectUiStyles
;
17 import org
.argeo
.connect
.ui
.SystemWorkbenchService
;
18 import org
.argeo
.connect
.util
.ConnectJcrUtils
;
19 import org
.argeo
.eclipse
.ui
.EclipseUiUtils
;
20 import org
.argeo
.jcr
.JcrUtils
;
21 import org
.eclipse
.e4
.ui
.di
.Focus
;
22 import org
.eclipse
.rap
.rwt
.RWT
;
23 import org
.eclipse
.rap
.rwt
.client
.service
.BrowserNavigation
;
24 import org
.eclipse
.swt
.SWT
;
25 import org
.eclipse
.swt
.events
.SelectionAdapter
;
26 import org
.eclipse
.swt
.events
.SelectionEvent
;
27 import org
.eclipse
.swt
.layout
.GridData
;
28 import org
.eclipse
.swt
.layout
.GridLayout
;
29 import org
.eclipse
.swt
.widgets
.Composite
;
30 import org
.eclipse
.swt
.widgets
.Display
;
31 import org
.eclipse
.swt
.widgets
.Label
;
32 import org
.eclipse
.swt
.widgets
.Link
;
34 /** Generic dashboard for Argeo Suite applications */
35 public abstract class AbstractSuiteDashboard
{
36 // private final static Log log =
37 // LogFactory.getLog(AbstractSuiteDashboard.class);
39 // DEPENDENCY INJECTION
41 private Repository repository
;
43 private ResourcesService resourcesService
;
45 private SystemAppService systemAppService
;
47 private SystemWorkbenchService systemWorkbenchService
;
49 private Session homeSession
;
50 private Session mainSession
;
53 private FormToolkit toolkit
;
56 private BrowserNavigation browserNavigation
;
59 homeSession
= ConnectJcrUtils
.login(repository
, NodeConstants
.HOME_WORKSPACE
);
60 mainSession
= ConnectJcrUtils
.login(repository
);
61 // updateTooltip(input);
64 // private void updateTooltip(IEditorInput input) {
65 // if (input instanceof EntityEditorInput) {
66 // EntityEditorInput sei = (EntityEditorInput) input;
67 // sei.setTooltipText("My Dashboard");
72 * Implementing classes must call super in order to create the correct form
76 public void createPartControl(Composite parent
) {
77 toolkit
= new FormToolkit(Display
.getCurrent());
79 browserNavigation
= RWT
.getClient().getService(BrowserNavigation
.class);
83 protected Composite
createGadgetCmp(Composite parent
, int widthHint
, int heightHint
) {
84 Composite gadgetCmp
= toolkit
.createComposite(parent
, SWT
.BORDER
);
85 GridData gd
= new GridData(SWT
.CENTER
, SWT
.CENTER
, false, false);
86 gd
.widthHint
= widthHint
;
87 gd
.heightHint
= heightHint
;
88 gadgetCmp
.setLayoutData(gd
);
89 CmsUiUtils
.style(gadgetCmp
, ConnectUiStyles
.GADGET_BOX
);
93 protected Composite
createGadgetTitleCmp(Composite parent
, String title
) {
94 Composite titleCmp
= toolkit
.createComposite(parent
, SWT
.BACKGROUND
| SWT
.INHERIT_NONE
);
95 CmsUiUtils
.style(titleCmp
, ConnectUiStyles
.GADGET_HEADER
);
96 titleCmp
.setBackground(null);
97 GridData gd
= new GridData(SWT
.FILL
, SWT
.TOP
, true, false);
98 titleCmp
.setLayoutData(gd
);
99 titleCmp
.setLayout(new GridLayout());
101 Label titleLbl
= toolkit
.createLabel(titleCmp
, title
+ " ", SWT
.BOLD
);
102 CmsUiUtils
.style(titleLbl
, ConnectUiStyles
.GADGET_HEADER
);
103 titleLbl
.setBackground(null);
107 protected Composite
createGadgetBodyCmp(Composite parent
) {
108 Composite bodyCmp
= toolkit
.createComposite(parent
, SWT
.BACKGROUND
| SWT
.INHERIT_NONE
);
109 bodyCmp
.setLayoutData(EclipseUiUtils
.fillAll());
110 bodyCmp
.setLayout(new GridLayout());
114 protected Link
createOpenEntityEditorLink(final AppWorkbenchService peopleUiService
, Composite parent
,
115 final String label
, final Node entity
) {
116 Link link
= new Link(parent
, SWT
.NONE
);
117 link
.setText("<a>" + label
+ "</a>");
118 link
.setLayoutData(EclipseUiUtils
.fillWidth());
119 link
.addSelectionListener(new SelectionAdapter() {
120 private static final long serialVersionUID
= 1L;
123 public void widgetSelected(final SelectionEvent event
) {
124 // Map<String, String> params = new HashMap<String, String>();
125 // params.put(ConnectEditor.PARAM_JCR_ID,
126 // ConnectJcrUtils.getIdentifier(entity));
127 // CommandUtils.callCommand(peopleUiService.getOpenEntityEditorCmdId(), params);
128 peopleUiService
.openEntityEditor(entity
);
136 public void dispose() {
137 JcrUtils
.logoutQuietly(homeSession
);
138 JcrUtils
.logoutQuietly(mainSession
);
142 public void setFocus() {
143 browserNavigation
.pushState("~", "Dashboard");
146 // Expose to implementing classes
147 protected Session
getHomeSession() {
151 public Session
getMainSession() {
155 public ResourcesService
getResourcesService() {
156 return resourcesService
;
159 protected SystemAppService
getSystemAppService() {
160 return systemAppService
;
163 protected SystemWorkbenchService
getSystemWorkbenchService() {
164 return systemWorkbenchService
;
167 protected FormToolkit
getFormToolkit() {
171 /* DEPENDENCY INJECTION */
172 // public void setRepository(Repository repository) {
173 // this.repository = repository;
176 // public void setResourcesService(ResourcesService resourcesService) {
177 // this.resourcesService = resourcesService;
180 // public void setSystemAppService(SystemAppService systemAppService) {
181 // this.systemAppService = systemAppService;
184 // public void setSystemWorkbenchService(SystemWorkbenchService
185 // systemWorkbenchService) {
186 // this.systemWorkbenchService = systemWorkbenchService;