import java.util.List;\r
import java.util.Queue;\r
import java.util.Set;\r
-import java.util.Stack;\r
import java.util.concurrent.ConcurrentLinkedQueue;\r
\r
import org.simantics.db.AbstractQuery;\r
String name = nameMap.getRight(nodeResource);\r
if (name == null) {\r
//name = UUID.randomUUID().toString();\r
- name = Long.toString(nodeResource.getResourceId());\r
+ name = Long.toString(nodeResource.getResourceId(session));\r
nameMap.map(nodeResource, name);\r
}\r
return name;\r
*/\r
protected IGraphicsNode addNode(IEntity parent, IEntity r) {\r
if (!r.isInstanceOf(Resources.g3dResource.G3DNode)) {\r
- ErrorLogger.defaultLogError("Trying to add node into scenegraph that is not instance of graphicsnode " + r,new Exception("ASSERT!"));\r
+ ErrorLogger.defaultLogError("Trying to add node into scenegraph that is not instance of G3DNode " + r,new Exception("ASSERT!"));\r
return null;\r
}\r
if (parent.equals(r)) {\r
- if (DEBUG) System.out.println("ThreeDimensionalEditorBase.addNodeP(" + r.getResource().getResourceId() + ") adding node to itself?!");\r
- ErrorLogger.defaultLogError("Adding scnegraphnode " + r.getResource().getResourceId() + " to itself!", new Exception("ASSERT!"));\r
+ if (DEBUG) System.out.println("ThreeDimensionalEditorBase.addNodeP(" + r.getResource().getResourceId(session) + ") adding node to itself?!");\r
+ ErrorLogger.defaultLogError("Adding scnegraphnode " + r.getResource().getResourceId(session) + " to itself!", new Exception("ASSERT!"));\r
return abstractGraphicsNodes.get(r);\r
}\r
\r
return null;\r
}\r
if (parent.equals(inView.getParent().getResource())) {\r
- if (DEBUG) System.out.println("ThreeDimensionalEditorBase.addNodeP(" + r.getResource().getResourceId() + ") already in view");\r
+ if (DEBUG) System.out.println("ThreeDimensionalEditorBase.addNodeP(" + r.getResource().getResourceId(session) + ") already in view");\r
return inView;\r
} else {\r
- if (DEBUG) System.out.println("ThreeDimensionalEditorBase.addNodeP(" + r.getResource().getResourceId() + ") already in view, but has different parent, current parent is ("+inView.getParent().getResource()+") and node is added to ("+parent+") -> removing from old parent and inserting to new");\r
+ if (DEBUG) System.out.println("ThreeDimensionalEditorBase.addNodeP(" + r.getResource().getResourceId(session) + ") already in view, but has different parent, current parent is ("+inView.getParent().getResource().getResourceId(session)+") and node is added to ("+parent+") -> removing from old parent and inserting to new");\r
removeNode(inView.getParent().getResource(),r.getResource());\r
}\r
}\r
IGraphicsNode mo;\r
IGraphicsNode parentNode = abstractGraphicsNodes.get(parent);\r
if (parentNode == null) {\r
- if (DEBUG) System.out.println("No graphicsnode for (" + parent.getResource().getResourceId() + ")");\r
+ if (DEBUG) System.out.println("No graphicsnode for (" + parent.getResource().getResourceId(session) + ")");\r
return null;\r
} else {\r
mo = instantiateNode(parentNode, node);\r
if (mo == null) {\r
- ErrorLogger.defaultLogError("Could not instantiate scenegraph node for " + r.getResource().getResourceId(), null);\r
+ ErrorLogger.defaultLogError("Could not instantiate scenegraph node for " + r.getResource().getResourceId(session), null);\r
return null;\r
}\r
- if (DEBUG) System.out.println("ThreeDimensionalEditorBase.addNodeP(" + r.getResource().getResourceId() + ") added to parent (" + parent.getResource().getResourceId() + ") " + mo.getClass());\r
+ if (DEBUG) System.out.println("ThreeDimensionalEditorBase.addNodeP(" + r.getResource().getResourceId(session) + ") added to parent (" + parent.getResource().getResourceId(session) + ") " + mo.getClass());\r
}\r
addSubnodeListener(node);\r
addPropertyListener(node);\r
public abstract class NodeQuery extends AbstractQuery<Object>{\r
protected Resource nodeResource;\r
private boolean disposed = false;\r
- private IQueryListener listener;\r
- //private OverridingTransactionRunner runner;\r
\r
+ private IQueryListener listener = null;\r
\r
public NodeQuery(Resource r) {\r
this.nodeResource = r;\r
- //runner = new OverridingTransactionRunner(session,true);\r
- \r
}\r
\r
protected abstract Object compute2(Graph graph);\r
if (disposed)\r
throw new RuntimeException("Updating disposed query"); //return;\r
transactionRunner.run(new GraphRequestAdapter() {\r
- //session.asyncWrite(new GraphRequestAdapter() {\r
@Override\r
public GraphRequestStatus perform(Graph g) throws Exception {\r
if (!disposed) {\r
if (DEBUG) System.out.println("NodeQuery " + nodeResource + " disposed()" + " " + this.getClass());\r
}\r
\r
- //public abstract NodeQuery instantiateQuery(Resource node);\r
- //public abstract void attach();\r
- \r
@Override\r
public boolean isDisposed() {\r
return disposed;\r
}\r
\r
+ // without separate listener, this query would work only once\r
@Override\r
public IQueryListener getListener() {\r
if (listener == null) {\r
}\r
return listener;\r
}\r
- \r
}\r
\r
/**\r