]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/AsWorkbenchServiceImpl.java
eb18dc53e990892a39f667c7b4346a3ec0ea280d
[gpl/argeo-suite.git] / org.argeo.suite.workbench.rap / src / org / argeo / suite / workbench / AsWorkbenchServiceImpl.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.ui.workbench.AppWorkbenchService;
8 import org.argeo.eclipse.ui.EclipseUiUtils;
9 import org.argeo.suite.workbench.commands.OpenEntityEditor;
10 import org.argeo.suite.workbench.parts.DefaultDashboardEditor;
11 import org.eclipse.jface.wizard.Wizard;
12 import org.eclipse.swt.graphics.Image;
13
14 /** Centralize workbench services from the various base apps */
15 public class AsWorkbenchServiceImpl implements AppWorkbenchService {
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
21 @Override
22 public String getDefaultEditorId() {
23 return DefaultDashboardEditor.ID;
24 }
25
26 @Override
27 public String getOpenEntityEditorCmdId() {
28 // String result = null;
29 // for (AppWorkbenchService appWbService : knownAppWbServices) {
30 // result = appWbService.getOpenEntityEditorCmdId();
31 // if (EclipseUiUtils.notEmpty(result))
32 // return result;
33 // }
34 return OpenEntityEditor.ID;
35 }
36
37 @Override
38 public String getOpenSearchEntityEditorCmdId() {
39 String result = null;
40 for (AppWorkbenchService appWbService : knownAppWbServices) {
41 result = appWbService.getOpenSearchEntityEditorCmdId();
42 if (EclipseUiUtils.notEmpty(result))
43 return result;
44 }
45 return null;
46 }
47
48 @Override
49 public String getEntityEditorId(Node entity) {
50 String result = null;
51 for (AppWorkbenchService appWbService : knownAppWbServices) {
52 result = appWbService.getEntityEditorId(entity);
53 if (EclipseUiUtils.notEmpty(result))
54 return result;
55 }
56 return null;
57 }
58
59 @Override
60 public String getSearchEntityEditorId(String nodeType) {
61 String result = null;
62 for (AppWorkbenchService appWbService : knownAppWbServices) {
63 result = appWbService.getSearchEntityEditorId(nodeType);
64 if (EclipseUiUtils.notEmpty(result))
65 return result;
66 }
67 return null;
68 }
69
70 @Override
71 public Image getIconForType(Node entity) {
72 Image result = null;
73 for (AppWorkbenchService appWbService : knownAppWbServices) {
74 result = appWbService.getIconForType(entity);
75 if (result != null)
76 return result;
77 }
78 return null;
79 }
80
81 @Override
82 public Wizard getCreationWizard(Node node) {
83 Wizard result = null;
84 for (AppWorkbenchService appWbService : knownAppWbServices) {
85 result = appWbService.getCreationWizard(node);
86 if (result != null)
87 return result;
88 }
89 return null;
90 }
91
92 @Override
93 public String getOpenFileCmdId() {
94 return null;
95 }
96
97 /* DEPENDENCY INJECTION */
98 public void setKnownAppWbServices(List<AppWorkbenchService> knownAppWbServices) {
99 this.knownAppWbServices = knownAppWbServices;
100 }
101 }