/*******************************************************************************\r
- * Copyright (c) 2007 VTT Technical Research Centre of Finland and others.\r
+ * Copyright (c) 2007- VTT Technical Research Centre of Finland.\r
* All rights reserved. This program and the accompanying materials\r
* are made available under the terms of the Eclipse Public License v1.0\r
* which accompanies this distribution, and is available at\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() + ") 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() + ") already in view, but has different parent, current parent is ("+inView.getParent().getResource().getResourceId()+") and node is added to ("+parent+") -> removing from old parent and inserting to new");\r
removeNode(inView.getParent().getResource(),r.getResource());\r
}\r
}\r
protected Resource nodeResource;\r
private boolean disposed = false;\r
\r
+ private IQueryListener listener = null;\r
\r
public NodeQuery(Resource r) {\r
this.nodeResource = r;\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
+ listener = new IQueryListener() {\r
+ @Override\r
+ public boolean isDisposed() {\r
+ return NodeQuery.this.disposed;\r
+ }\r
+ \r
+ @Override\r
+ public void resultChangedRaw(Object oldResult, Object newResult) {\r
+ NodeQuery.this.resultChangedRaw(oldResult, newResult);\r
+ }\r
+ };\r
+ }\r
+ return listener;\r
+ }\r
}\r
\r
/**\r