package org.simantics.interop.browsing; import java.util.Collection; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ISelection; import org.simantics.browsing.ui.common.node.IDeletable; import org.simantics.browsing.ui.content.Labeler.Modifier; import org.simantics.db.ReadGraph; import org.simantics.db.Session; import org.simantics.db.WriteGraph; import org.simantics.db.exception.DatabaseException; public interface INode extends IAdaptable { String getLabel(ReadGraph graph) throws DatabaseException; int getCategory(ReadGraph graph) throws DatabaseException; Collection getChildren(ReadGraph graph) throws DatabaseException; boolean hasChildren(ReadGraph graph) throws DatabaseException; ImageDescriptor getImage(ReadGraph graph) throws DatabaseException; void handleDrop(Session session, ISelection selection); Modifier getModifier(Session session, String columnId); /** * Delete node in the background system. The node is considered deletable * only if it implements {@link IDeletable}. */ void handleDelete(WriteGraph graph) throws DatabaseException; }