]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/DefaultSuiteWorkbenchService.java
Prepare Argeo Suite 0.1.5 release
[gpl/argeo-suite.git] / org.argeo.suite.workbench.rap / src / org / argeo / suite / workbench / DefaultSuiteWorkbenchService.java
1 package org.argeo.suite.workbench;
2
3 import java.util.List;
4
5 import javax.jcr.Node;
6
7 import org.argeo.connect.workbench.AppWorkbenchService;
8 import org.argeo.connect.workbench.SystemWorkbenchService;
9 import org.argeo.eclipse.ui.EclipseUiUtils;
10 import org.argeo.suite.workbench.parts.DefaultDashboardEditor;
11 import org.eclipse.jface.wizard.Wizard;
12 import org.eclipse.swt.graphics.Image;
13
14 /** Centralise workbench services from the various base apps */
15 public class DefaultSuiteWorkbenchService implements SystemWorkbenchService {
16
17 // Injected known AppWorkbenchServices: order is important, first found
18 // result will be returned by the various methods.
19 private List<AppWorkbenchService> knownAppWbServices;
20 private String defaultEditorId = DefaultDashboardEditor.ID;
21
22 @Override
23 public String getDefaultEditorId() {
24 return defaultEditorId;
25 }
26
27 @Override
28 public String getEntityEditorId(Node entity) {
29 String result = null;
30 for (AppWorkbenchService appWbService : knownAppWbServices) {
31 result = appWbService.getEntityEditorId(entity);
32 if (EclipseUiUtils.notEmpty(result))
33 return result;
34 }
35 return null;
36 }
37
38 @Override
39 public String getSearchEntityEditorId(String nodeType) {
40 String result = null;
41 for (AppWorkbenchService appWbService : knownAppWbServices) {
42 result = appWbService.getSearchEntityEditorId(nodeType);
43 if (EclipseUiUtils.notEmpty(result))
44 return result;
45 }
46 return null;
47 }
48
49 @Override
50 public Image getIconForType(Node entity) {
51 Image result = null;
52 for (AppWorkbenchService appWbService : knownAppWbServices) {
53 result = appWbService.getIconForType(entity);
54 if (result != null)
55 return result;
56 }
57 return null;
58 }
59
60 @Override
61 public Wizard getCreationWizard(Node node) {
62 Wizard result = null;
63 for (AppWorkbenchService appWbService : knownAppWbServices) {
64 result = appWbService.getCreationWizard(node);
65 if (result != null)
66 return result;
67 }
68 return null;
69 }
70
71 /* DEPENDENCY INJECTION */
72 public void setKnownAppWbServices(List<AppWorkbenchService> knownAppWbServices) {
73 this.knownAppWbServices = knownAppWbServices;
74 }
75
76 public void setDefaultEditorId(String defaultEditorId) {
77 this.defaultEditorId = defaultEditorId;
78 }
79 }