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.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; @SuppressWarnings("deprecation") public class ImportNode implements INode { //private Resource project; private Resource model; public ImportNode(Resource project) { this.model = project; } @SuppressWarnings("rawtypes") @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(); InteropResource i = InteropResource.getInstance(graph); Collection objs = graph.getObjects(model, i.HasImportData); for (Resource o : objs) { if (graph.isInstanceOf(o, i.ImportLibrary)) { INode node = graph.adapt(o, INode.class); nodes.add(node); } } return nodes; } }