X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.suite.workbench.rap%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fworkbench%2FSuiteWorkbenchService.java;fp=org.argeo.suite.workbench.rap%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fworkbench%2FSuiteWorkbenchService.java;h=17697eeabe90755afe1bc5dd9b97229d3be7c348;hb=16e21d016c7fa749ba418607f3cc71ac7e419451;hp=0000000000000000000000000000000000000000;hpb=6e9552fe6e273c777449244442769e6de5fe822e;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/SuiteWorkbenchService.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/SuiteWorkbenchService.java new file mode 100644 index 0000000..17697ee --- /dev/null +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/SuiteWorkbenchService.java @@ -0,0 +1,73 @@ +package org.argeo.suite.workbench; + +import java.util.List; + +import javax.jcr.Node; + +import org.argeo.connect.ui.workbench.AppWorkbenchService; +import org.argeo.eclipse.ui.EclipseUiUtils; +import org.argeo.suite.workbench.parts.DefaultDashboardEditor; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.swt.graphics.Image; + +/** Centralize workbench services from the various base apps */ +public class SuiteWorkbenchService implements AppWorkbenchService { + + // Injected known AppWorkbenchServices: order is important, first found + // result will be returned by the various methods. + private List knownAppWbServices; + + @Override + public String getDefaultEditorId() { + return DefaultDashboardEditor.ID; + } + + @Override + public String getEntityEditorId(Node entity) { + String result = null; + for (AppWorkbenchService appWbService : knownAppWbServices) { + result = appWbService.getEntityEditorId(entity); + if (EclipseUiUtils.notEmpty(result)) + return result; + } + return null; + } + + @Override + public String getSearchEntityEditorId(String nodeType) { + String result = null; + for (AppWorkbenchService appWbService : knownAppWbServices) { + result = appWbService.getSearchEntityEditorId(nodeType); + if (EclipseUiUtils.notEmpty(result)) + return result; + } + return null; + } + + @Override + public Image getIconForType(Node entity) { + Image result = null; + for (AppWorkbenchService appWbService : knownAppWbServices) { + result = appWbService.getIconForType(entity); + if (result != null) + return result; + } + return null; + } + + @Override + public Wizard getCreationWizard(Node node) { + Wizard result = null; + for (AppWorkbenchService appWbService : knownAppWbServices) { + result = appWbService.getCreationWizard(node); + if (result != null) + return result; + } + return null; + } + + /* DEPENDENCY INJECTION */ + public void setKnownAppWbServices(List knownAppWbServices) { + this.knownAppWbServices = knownAppWbServices; + } +}