package org.simantics.interop.browsing; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ISelection; import org.simantics.browsing.ui.content.Labeler.Modifier; import org.simantics.db.Builtins; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.Session; import org.simantics.db.WriteGraph; import org.simantics.db.exception.DatabaseException; import org.simantics.interop.Activator; import org.simantics.interop.stubs.InteropResource; import org.simantics.modeling.ui.modelBrowser.model.INode; public class ImportNode implements INode { //private Resource project; private Resource model; public ImportNode(Resource project) { this.model = project; } @Override public Object getAdapter(Class adapter) { return null; } @Override public int getCategory(ReadGraph graph) throws DatabaseException { return 0; } @Override public ImageDescriptor getImage(ReadGraph graph) throws DatabaseException { return Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/silk/database_connect.png"); } @Override public String getLabel(ReadGraph graph) throws DatabaseException { return "Imports"; } @Override public Modifier getModifier(Session session, String columnId) { // TODO Auto-generated method stub return null; } @Override public void handleDelete(WriteGraph graph) throws DatabaseException { // TODO Auto-generated method stub } @Override public void handleDrop(Session session, ISelection selection) { // TODO Auto-generated method stub } @Override public boolean hasChildren(ReadGraph graph) throws DatabaseException { return getChildren(graph).size() > 0; } @Override public Collection getChildren(ReadGraph graph) throws DatabaseException { List nodes = new ArrayList(); Builtins b = graph.getBuiltins(); InteropResource i = InteropResource.getInstance(graph); // Collection models = graph.getObjects(project, b.ConsistsOf); // for (Resource m : models) { // Collection objs = graph.getObjects(m, b.ConsistsOf); // for (Resource o : objs) { // if (graph.isInstanceOf(o, i.ImportLibrary)) { // INode node = graph.adapt(o, INode.class); // nodes.add(node); // } // } // } Collection objs = graph.getObjects(model, b.ConsistsOf); for (Resource o : objs) { if (graph.isInstanceOf(o, i.ImportLibrary)) { INode node = graph.adapt(o, INode.class); nodes.add(node); } } return nodes; // ComosResource c = ComosResource.getInstance(graph); // Collection models = graph.getObjects(project, b.ConsistsOf); // Collection comosImports = new ArrayList(); // for (Resource m : models) { // Collection objs = graph.getObjects(m, b.ConsistsOf); // for (Resource o : objs) { // if (graph.isInstanceOf(o, c.ComosImportLibrary)) { // String icon_db_path = ComosGraphTools.getIconPath(o, graph); // if (icon_db_path == null) // continue; // ComosIconReader iconReader = new ComosIconReader(icon_db_path); // comosImports.add(new ComosGraphNode(o, iconReader)); // } // } // } // return comosImports; } }