]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.interop.update/src/org/simantics/interop/update/editor/ModelUpdateEditor.java
Diagram API fixes.
[simantics/interop.git] / org.simantics.interop.update / src / org / simantics / interop / update / editor / ModelUpdateEditor.java
index 2c7f1ce03b0c000499dbc285accf7083b0c83a83..ea14039eecb0bbe3fc1c65f5c45cdf8a6c225d60 100644 (file)
@@ -89,6 +89,7 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
        private Color containsColor;
        private Color deletedColor;
        private Color addedColor;
+       private Color disabledColor;
 
        private ModelUpdate update;
        
@@ -99,12 +100,14 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
                super(parent,SWT.NONE);
                checked = manager.createImage(Activator.imageDescriptorFromPlugin("com.famfamfam.silk", "icons/tick.png"));
                unchecked = manager.createImage(Activator.imageDescriptorFromPlugin("com.famfamfam.silk", "icons/cross.png"));
+               unchecked = manager.createImage(Activator.imageDescriptorFromPlugin("com.famfamfam.silk", "icons/cross.png"));
                warning = manager.createImage(Activator.imageDescriptorFromPlugin("com.famfamfam.silk", "icons/error.png"));
 
                
                containsColor = new Color(parent.getDisplay(), new RGB(255,255,220));
                deletedColor = new Color(parent.getDisplay(), new RGB(255,220,220));
                addedColor = new Color(parent.getDisplay(), new RGB(220,255,220));
+               disabledColor = new Color(parent.getDisplay(), new RGB(128,128,128));
                
                this.setLayout(new GridLayout(1,false));
                
@@ -375,7 +378,7 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
                                                        selectedStructure.remove(n);
                                                }
                                                changeBrowser.setChecked(n, sel);
-                                               changeBrowser.setGrayed(n, false);
+                                               changeBrowser.setGrayed(n, !op.enabled());
                                        }
                                }
                        } else {
@@ -425,6 +428,8 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
        protected void setInputs() {
                changeViewer.setInput(update.getUpdateList().getChanges());
                changeBrowser.setInput(update.getUpdateTree());
+               updateAllButton.setEnabled(true);
+               updateSelectedButton.setEnabled(true);
        }
        
        private void applyAll() {
@@ -554,11 +559,36 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
                        if (update == null || !update.isInit())
                                return null;
                        PropertyChange pc = (PropertyChange)element;
+                       if (pc.applied())
+                               return null;
                        if (pc.selected())
                                return checked;
                        else
                                return unchecked;
                }
+               
+               @Override
+               public Color getForeground(Object element) {
+                       PropertyChange pc = (PropertyChange)element;
+                       if (!pc.enabled())
+                               return disabledColor;
+                       return null;
+               }
+       }
+       
+       protected abstract class PropertyChangeLabelProvider extends ColumnLabelProvider {
+               
+               public PropertyChangeLabelProvider() {
+                       
+               }
+               
+               @Override
+               public Color getForeground(Object element) {
+                       PropertyChange pc = (PropertyChange)element;
+                       if (!pc.enabled())
+                               return disabledColor;
+                       return null;
+               }
        }
        
        private class UpdateNodeLabelProvider extends ColumnLabelProvider {
@@ -617,6 +647,14 @@ public abstract class ModelUpdateEditor extends Composite implements WarningList
                                return addedColor;
                        return null;            
                }
+               
+               @Override
+               public Color getForeground(Object element) {
+                       final UpdateNode node = (UpdateNode)element;
+                       if (node.getOp() != null && !node.getOp().enabled())
+                               return disabledColor;
+                       return null;
+               }
        }
        
        private class SelectionEditingSupport extends EditingSupport {