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.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.exception.DatabaseException; import org.simantics.interop.Activator; import org.simantics.interop.stubs.InteropResource; public class ImportNode2 implements INode { private Resource project; public ImportNode2(Resource project) { this.project = project; } @Override public T getAdapter(Class adapter) { return null; } @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 boolean hasChildren(ReadGraph graph) throws DatabaseException { return getChildren(graph).size() > 0; } @Override public Collection getChildren(ReadGraph graph) throws DatabaseException { List nodes = new ArrayList(); InteropResource i = InteropResource.getInstance(graph); Collection objs = graph.getObjects(project, i.HasImportData); for (Resource o : objs) { if (graph.isInstanceOf(o, i.ImportLibrary)) { INode node = graph.adapt(o, INode.class); nodes.add(node); } } return nodes; } @Override public int getCategory(ReadGraph graph) throws DatabaseException { return 0; } }