]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.interop.update/src/org/simantics/interop/update/model/AddDeleteUpdateOp.java
UpdateOp specific selection propagation
[simantics/interop.git] / org.simantics.interop.update / src / org / simantics / interop / update / model / AddDeleteUpdateOp.java
index 901dc19ecbd027b25eead4cf6cc73efab4a82d18..854ad543a9f19f7d42f3e5eabdec96acdd9bacca 100644 (file)
@@ -35,13 +35,24 @@ public abstract class AddDeleteUpdateOp extends UpdateOp {
        }
        
        @Override
-       public boolean requiresParentOps() {
-               return add;
+       public boolean requiresOp(UpdateOp op) {
+           if (add) {
+               if (getParentOps().contains(op))
+                   return true;
+           } else {
+               if (getSubOps().contains(op))
+                return true;
+           }
+           return false;
        }
-
+       
        @Override
-       public boolean requiresSubOps() {
-               return !add;
+       public boolean selectOp(UpdateOp op, boolean select) {
+           if (select) {
+               return requiresOp(op);
+           } else {
+               return op.requiresOp(this);
+           }
        }
 
        protected static void copyProperties(WriteGraph g, Resource source, Resource destination) throws DatabaseException {