package org.argeo.suite.workbench; import java.util.List; import javax.jcr.Node; import org.argeo.connect.workbench.AppWorkbenchService; import org.argeo.connect.workbench.SystemWorkbenchService; 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; /** Centralise workbench services from the various base apps */ public class DefaultSuiteWorkbenchService implements SystemWorkbenchService { // Injected known AppWorkbenchServices: order is important, first found // result will be returned by the various methods. private List knownAppWbServices; private String defaultEditorId = DefaultDashboardEditor.ID; @Override public String getDefaultEditorId() { String result = null; for (AppWorkbenchService appWbService : knownAppWbServices) { result = appWbService.getDefaultEditorId(); if (EclipseUiUtils.notEmpty(result)) return result; } return defaultEditorId; } @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; } public void setDefaultEditorId(String defaultEditorId) { this.defaultEditorId = defaultEditorId; } }