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;
TreeViewerColumn dataColumn = TableUtils.addColumn(changeBrowser, "Data", true, 600);
- dataColumn.setLabelProvider(new UpdateNodeLabelProvicer());
+ dataColumn.setLabelProvider(new UpdateNodeLabelProvider());
changeBrowser.addCheckStateListener(new ICheckStateListener() {
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);
getSession().asyncRequest(new WriteRequest(){
@Override
public void perform(WriteGraph graph) throws DatabaseException {
+ Layer0Utils.addCommentMetadata(graph, "Apply all model updates");
+ graph.markUndoPoint();
for (Pair<Statement, Statement> mod : changes.getModifications()) {
applyLiteralChange(graph, mod);
}
getSession().asyncRequest(new WriteRequest(){
@Override
public void perform(WriteGraph graph) throws DatabaseException {
+ Layer0Utils.addCommentMetadata(graph, "Apply selected model updates");
+ graph.markUndoPoint();
for (Pair<Statement, Statement> mod : selected) {
changes.getModifications().remove(mod);
applyLiteralChange(graph, mod);
}
}
- private class UpdateNodeLabelProvicer extends ColumnLabelProvider {
+ private class UpdateNodeLabelProvider extends ColumnLabelProvider {
@Override
public String getText(Object element) {