X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.interop.update%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fupdate%2Feditor%2FModelUpdateEditor.java;h=94b24619675049ff0bf1489fd4c4fcbd4935a1eb;hb=6af8d67b9d34bb9e8cc4b4c8bd5e95e70c16f104;hp=a3b60332ce9e1552bbe68f9e14bdb182f65a86d1;hpb=2a37041c6da8864656e7217dbcc3d6dae8cd65be;p=simantics%2Finterop.git diff --git a/org.simantics.interop.update/src/org/simantics/interop/update/editor/ModelUpdateEditor.java b/org.simantics.interop.update/src/org/simantics/interop/update/editor/ModelUpdateEditor.java index a3b6033..94b2461 100644 --- a/org.simantics.interop.update/src/org/simantics/interop/update/editor/ModelUpdateEditor.java +++ b/org.simantics.interop.update/src/org/simantics/interop/update/editor/ModelUpdateEditor.java @@ -49,20 +49,18 @@ import org.simantics.db.common.request.WriteRequest; import org.simantics.db.exception.DatabaseException; import org.simantics.db.exception.DoesNotContainValueException; import org.simantics.db.exception.ManyObjectsForFunctionalRelationException; -import org.simantics.db.exception.NoSingleResultException; import org.simantics.db.exception.ServiceException; +import org.simantics.db.layer0.util.Layer0Utils; import org.simantics.db.request.Read; import org.simantics.interop.test.GraphChanges; import org.simantics.interop.test.GraphComparator; -import org.simantics.interop.test.NameComparator; import org.simantics.interop.update.Activator; import org.simantics.interop.update.model.UpdateNode; import org.simantics.interop.update.model.UpdateNode.Status; +import org.simantics.interop.update.model.UpdateOp; import org.simantics.interop.update.model.UpdateTree; import org.simantics.interop.utils.TableUtils; -import org.simantics.layer0.Layer0; import org.simantics.ui.workbench.ResourceEditorPart2; -import org.simantics.utils.datastructures.BijectionMap; import org.simantics.utils.datastructures.Callback; import org.simantics.utils.datastructures.Pair; import org.simantics.utils.ui.ExceptionUtils; @@ -160,7 +158,7 @@ public abstract class ModelUpdateEditor extends ResourceEditorPart2 { TreeViewerColumn dataColumn = TableUtils.addColumn(changeBrowser, "Data", true, 600); - dataColumn.setLabelProvider(new UpdateNodeLabelProvicer()); + dataColumn.setLabelProvider(new UpdateNodeLabelProvider()); changeBrowser.addCheckStateListener(new ICheckStateListener() { @@ -330,21 +328,27 @@ public abstract class ModelUpdateEditor extends ResourceEditorPart2 { while (!nodeStack.isEmpty()) { UpdateNode n = nodeStack.pop(); if (n.getOp() != null) { - boolean applied = n.getOp().applied(); - if (applied) { - changeBrowser.setChecked(n, true); + UpdateOp op = n.getOp(); + if (!op.isAdd() && !op.isDelete()) { changeBrowser.setGrayed(n, true); - selectedStructure.remove(n); + changeBrowser.setChecked(n, true); } else { - boolean sel = n.getOp().selected(); - if (sel) { - selectedStructure.add(n); - - } else { + boolean applied = op.applied(); + if (applied) { + changeBrowser.setChecked(n, true); + changeBrowser.setGrayed(n, true); selectedStructure.remove(n); + } else { + boolean sel = op.selected(); + if (sel) { + selectedStructure.add(n); + + } else { + selectedStructure.remove(n); + } + changeBrowser.setChecked(n, sel); + changeBrowser.setGrayed(n, false); } - changeBrowser.setChecked(n, sel); - changeBrowser.setGrayed(n, false); } } else { changeBrowser.setGrayed(n, true); @@ -401,6 +405,8 @@ public abstract class ModelUpdateEditor extends ResourceEditorPart2 { getSession().asyncRequest(new WriteRequest(){ @Override public void perform(WriteGraph graph) throws DatabaseException { + Layer0Utils.addCommentMetadata(graph, "Apply all model updates"); + graph.markUndoPoint(); for (Pair mod : changes.getModifications()) { applyLiteralChange(graph, mod); } @@ -452,6 +458,8 @@ public abstract class ModelUpdateEditor extends ResourceEditorPart2 { getSession().asyncRequest(new WriteRequest(){ @Override public void perform(WriteGraph graph) throws DatabaseException { + Layer0Utils.addCommentMetadata(graph, "Apply selected model updates"); + graph.markUndoPoint(); for (Pair mod : selected) { changes.getModifications().remove(mod); applyLiteralChange(graph, mod); @@ -657,7 +665,7 @@ public abstract class ModelUpdateEditor extends ResourceEditorPart2 { } } - private class UpdateNodeLabelProvicer extends ColumnLabelProvider { + private class UpdateNodeLabelProvider extends ColumnLabelProvider { @Override public String getText(Object element) {