package org.archstudio.graphlayout.core; import java.util.ArrayList; import java.util.List; import org.archstudio.graphlayout.GraphLayout; import org.archstudio.graphlayout.GraphLayoutException; import org.archstudio.graphlayout.GraphLayoutParameters; import org.archstudio.graphlayout.IGraphLayout; import org.archstudio.graphlayout.core.graphviz.DotLayoutEngine; import org.archstudio.xarchadt.ObjRef; /** * Myx brick: "Graph Layout Impl" * * @see org.archstudio.graphlayout.core.GraphLayoutMyxComponentStub * @generated */ public class GraphLayoutMyxComponent extends org.archstudio.graphlayout.core.GraphLayoutMyxComponentStub { public GraphLayoutMyxComponent() { } @Override public void init() { graphLayout = new GraphLayoutImpl(); ((GraphLayoutImpl) graphLayout).addLayoutEngine(new DotLayoutEngine()); } public class GraphLayoutImpl implements IGraphLayout { protected List<ILayoutEngine> engineList = new ArrayList<ILayoutEngine>(); public void addLayoutEngine(ILayoutEngine engine) { engineList.add(engine); } public void removeLayoutEngine(ILayoutEngine engine) { engineList.remove(engine); } public ILayoutEngine[] getAllLayoutEngines() { return engineList.toArray(new ILayoutEngine[engineList.size()]); } public ILayoutEngine getLayoutEngine(String id) { ILayoutEngine[] engines = getAllLayoutEngines(); for (ILayoutEngine engine : engines) { if (engine.getID().equals(id)) { return engine; } } return null; } @Override public String[] getEngineIDs() { ILayoutEngine[] engines = getAllLayoutEngines(); String[] engineIDs = new String[engines.length]; for (int i = 0; i < engines.length; i++) { engineIDs[i] = engines[i].getID(); } return engineIDs; } @Override public String getEngineDescription(String engineID) { ILayoutEngine engine = getLayoutEngine(engineID); if (engine == null) { return null; } return engine.getDescription(); } @Override public GraphLayout layoutGraph(String engineID, ObjRef rootRef, GraphLayoutParameters params) throws GraphLayoutException { ILayoutEngine engine = getLayoutEngine(engineID); if (engine == null) { throw new GraphLayoutException("No graph layout engine with ID: " + engineID + " exists."); } return engine.layoutGraph(xarch, Activator.getDefault().getPreferenceStore(), rootRef, params); } } }