]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.proconf.g3d/src/org/simantics/proconf/g3d/base/ScenegraphAdapterImpl.java
git-svn-id: https://www.simantics.org/svn/simantics/3d/branches/dev@8535 ac1ea38d...
[simantics/3d.git] / org.simantics.proconf.g3d / src / org / simantics / proconf / g3d / base / ScenegraphAdapterImpl.java
index c7ba95dbc80bca818789d4abe98dbefd9922b8e6..d90b9dd0a3226b5db08eef62cc4f112ef89a9122 100644 (file)
@@ -317,7 +317,7 @@ public abstract class ScenegraphAdapterImpl implements ScenegraphAdapter {
      */\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
@@ -473,6 +473,7 @@ public abstract class ScenegraphAdapterImpl implements ScenegraphAdapter {
         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
@@ -541,6 +542,25 @@ public abstract class ScenegraphAdapterImpl implements ScenegraphAdapter {
         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