]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.interop.update/src/org/simantics/interop/update/editor/ModelUpdateEditor.java
Switch to delayed write for more performance.
[simantics/interop.git] / org.simantics.interop.update / src / org / simantics / interop / update / editor / ModelUpdateEditor.java
index 4e30b221a68f668fe7fe08a0d0a58fcec7502a33..919fe4b68238d05311533d363553bdad6de0bc17 100644 (file)
@@ -51,15 +51,15 @@ import org.simantics.db.request.Read;
 import org.simantics.interop.test.GraphChanges;
 import org.simantics.interop.update.Activator;
 import org.simantics.interop.update.model.ModelUpdate;
+import org.simantics.interop.update.model.ModelUpdate.WarningListener;
+import org.simantics.interop.update.model.PropertyChange;
 import org.simantics.interop.update.model.UpdateList;
 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.UpdateStatus;
 import org.simantics.interop.update.model.UpdateTree;
-import org.simantics.interop.update.model.ModelUpdate.WarningListener;
 import org.simantics.interop.utils.TableUtils;
 import org.simantics.ui.SimanticsUI;
-import org.simantics.utils.datastructures.Callback;
 import org.simantics.utils.datastructures.Pair;
 import org.simantics.utils.ui.ExceptionUtils;
 
@@ -216,8 +216,8 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
                                                if (update.getUpdateList().getSelected().size() > 0) {
                                                        update.getUpdateList().clearSelected();
                                                } else {
-                                                       for (Pair<Statement, Statement> nr : update.getUpdateList().getChanges())
-                                                               update.getUpdateList().addSelected(nr);
+                                                       for (PropertyChange nr : update.getUpdateList().getChanges())
+                                                               nr.select(true);
                                                }
                                                changeViewer.refresh();
                                        }
@@ -340,7 +340,7 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
                        UpdateNode n = nodeStack.pop();
                        if (n.getOp() != null) {
                                UpdateOp op = n.getOp();
-                               if (!op.isAdd() && !op.isDelete()) {
+                               if (!op.isChange()) {
                                        changeBrowser.setGrayed(n, true);
                                        changeBrowser.setChecked(n, true);
                                } else {
@@ -432,12 +432,9 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
                        }
                        
                        
-               }, new Callback<DatabaseException>() {
-                       @Override
-                       public void run(DatabaseException parameter) {
-                               if (parameter != null)
-                                       ExceptionUtils.logAndShowError("Cannot update model", parameter);
-                       }
+               }, e -> {
+                       if (e != null)
+                               ExceptionUtils.logAndShowError("Cannot update model", e);
                });
        }
        
@@ -539,9 +536,8 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
                public Image getImage(Object element) {
                        if (update == null || !update.isInit())
                                return null;
-//                     if (update.getUpdateList() == null)
-//                             return null;
-                       if (update.getUpdateList().isSelected((Pair<Statement, Statement>) element))
+                       PropertyChange pc = (PropertyChange)element;
+                       if (pc.selected())
                                return checked;
                        else
                                return unchecked;
@@ -595,12 +591,12 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
                @Override
                public Color getBackground(Object element) {
                        final UpdateNode node = (UpdateNode)element;
-                       Status status = node.getStatus();
-                       if (status == Status.CONTAINS)
+                       UpdateStatus status = node.getStatus();
+                       if (status == UpdateStatus.CONTAINS)
                                return containsColor;
-                       if (status == Status.DELETED)
+                       if (status == UpdateStatus.DELETED)
                                return deletedColor;
-                       if (status == Status.NEW)
+                       if (status == UpdateStatus.NEW)
                                return addedColor;
                        return null;            
                }
@@ -609,10 +605,8 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
        private class SelectionEditingSupport extends EditingSupport {
                
                
-               @SuppressWarnings("rawtypes")
                public SelectionEditingSupport(ColumnViewer viewer) {
                        super(viewer);
-                       
                }
 
                @Override
@@ -629,18 +623,19 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
                protected Object getValue(Object element) {
                        if (update == null || !update.isInit())
                                return false;
-                       return update.getUpdateList().isSelected((Pair<Statement, Statement>) element);
+                       PropertyChange pc = (PropertyChange)element;
+                       return pc.selected();
                }
                
-               @SuppressWarnings("unchecked")
                @Override
                protected void setValue(Object element, Object value) {
                        if (update == null || !update.isInit())
                                return;
+                       PropertyChange pc = (PropertyChange)element;
                        if (Boolean.TRUE.equals(value))
-                               update.getUpdateList().addSelected((Pair<Statement, Statement>) element);
+                               pc.select(true);
                        else
-                               update.getUpdateList().removeSelected((Pair<Statement, Statement>) element);
+                               pc.select(false);
                        
                        getViewer().refresh(element);
                }