X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.interop.update%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fupdate%2Fmodel%2FPropertyChange.java;h=947f516849ea7c6beea0f4ad5b982eb85d15985b;hb=99c2a46dea84c410448a87c7f287e66a17ccde56;hp=75d8456140d77f82709f61381fea218e4e086af2;hpb=328e8a54d282ed4a390e6eb9eda027b3ed599bdf;p=simantics%2Finterop.git diff --git a/org.simantics.interop.update/src/org/simantics/interop/update/model/PropertyChange.java b/org.simantics.interop.update/src/org/simantics/interop/update/model/PropertyChange.java index 75d8456..947f516 100644 --- a/org.simantics.interop.update/src/org/simantics/interop/update/model/PropertyChange.java +++ b/org.simantics.interop.update/src/org/simantics/interop/update/model/PropertyChange.java @@ -15,7 +15,7 @@ public class PropertyChange { protected boolean applied = false; protected boolean selected = false; protected boolean visible = true; - + protected boolean enabled = true; public PropertyChange(GraphChanges changes, Resource left, Statement first, Resource right, Statement second) { if (first == null && second == null) @@ -56,6 +56,12 @@ public class PropertyChange { return pair.second; } + public Resource getPredicate() { + if (pair.first != null) + return pair.first.getPredicate(); + return pair.second.getPredicate(); + } + public GraphChanges getChanges() { return changes; } @@ -88,6 +94,7 @@ public class PropertyChange { Resource pred = pair.second.getPredicate(); if (graph.hasValue(pair.second.getObject())) { Object value = graph.getValue(pair.second.getObject()); + graph.deny(s, pred); graph.claimLiteral(s, pred, value); } else { graph.deny(s,pred); @@ -96,22 +103,40 @@ public class PropertyChange { } + /** + * Sets selected state. + * @param select + * @return true if selection state was changed + */ public boolean select(boolean select) { + if (!enabled) + return false; if (applied) return false; this.selected = select; return true; } - + /** + * Is change selected. + * @return + */ public boolean selected() { return selected; } + /** + * Has change been applied + * @return + */ public boolean applied() { return applied; } + /** + * Is change visible + * @return + */ public boolean isVisible() { return visible; } @@ -120,13 +145,33 @@ public class PropertyChange { this.visible = 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; + } + @Override public String toString() { String s = "PropertyChange"; if (pair.first != null) - s += " (" + (leftSubject) + " , " + pair.first.getPredicate() + " , " + pair.first.getObject() + ")"; + s += " L(" + (leftSubject) + " , " + pair.first.getPredicate() + " , " + pair.first.getObject() + ")"; if (pair.second != null) - s += " (" + (rightSubject) + " , " + pair.second.getPredicate() + " , " + pair.second.getObject() + ")"; + s += " R(" + (rightSubject) + " , " + pair.second.getPredicate() + " , " + pair.second.getObject() + ")"; + if (selected) + s += " selected"; + if (enabled) + s += " enabled"; + if (visible) + s += " visible"; + if (applied) + s += " applied"; return s; }