X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.interop.update%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fupdate%2Fmodel%2FUpdateOp.java;fp=org.simantics.interop.update%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fupdate%2Fmodel%2FUpdateOp.java;h=6fba56723f2c5cf2cca45117643664eb30448991;hb=99c2a46dea84c410448a87c7f287e66a17ccde56;hp=00d113938bb83c7c3d909b91083a18c0d00f86d3;hpb=7f27fe15240dbb56d9525671c44468cdbc934199;p=simantics%2Finterop.git diff --git a/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateOp.java b/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateOp.java index 00d1139..6fba567 100644 --- a/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateOp.java +++ b/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateOp.java @@ -23,6 +23,7 @@ public abstract class UpdateOp { private boolean manualSelection = false; protected boolean applied = false; protected boolean visible = true; + protected boolean enabled = true; private Collection parentOps = new ArrayList(); private Collection subOps = new ArrayList(); @@ -97,6 +98,10 @@ public abstract class UpdateOp { } public boolean select(boolean select) { + if (!enabled) + return false; + if (!isChange()) + return false; boolean b = _select(select); if (b) manualSelection = true; @@ -108,6 +113,8 @@ public abstract class UpdateOp { return true; if (applied) return false; + if (!isChange()) + return false; if (select) { if (selectParentOps()) { for (UpdateOp op : parentOps) @@ -149,6 +156,18 @@ public abstract class UpdateOp { return visible; } + /** + * Is change enabled. Disabled changes do not allow changing selected state. + * @return + */ + public boolean enabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + public void apply(WriteGraph g) throws DatabaseException { if (applied)