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 AsWorkbenchServiceImpl 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 getOpenEntityEditorCmdId() { //// String result = null; //// for (AppWorkbenchService appWbService : knownAppWbServices) { //// result = appWbService.getOpenEntityEditorCmdId(); //// if (EclipseUiUtils.notEmpty(result)) //// return result; //// } // return OpenEntityEditor.ID; // } // @Override // public String getOpenSearchEntityEditorCmdId() { // String result = null; // for (AppWorkbenchService appWbService : knownAppWbServices) { // result = appWbService.getOpenSearchEntityEditorCmdId(); // if (EclipseUiUtils.notEmpty(result)) // return result; // } // return null; // } @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; } @Override public String getOpenFileCmdId() { return null; } /* DEPENDENCY INJECTION */ public void setKnownAppWbServices(List knownAppWbServices) { this.knownAppWbServices = knownAppWbServices; } }