Author: jm
Date: 2012-09-12 12:45:01 -0700 (Wed, 12 Sep 2012)
New Revision: 30355

Modified:
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/EditorManagerImpl.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/AbstractContinuousMappingEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2CEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2CMappingEditorPanel.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2DEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2DMappingEditorPanel.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/ContinuousMappingEditorPanel.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/GradientEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/GradientEditorPanel.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/legend/ContinuousMappingLegendPanel.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateLegendTask.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateLegendTaskFactory.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/ui/LegendDialog.java
Log:
Fixes #1446: Changed ContinuousMappingEditors so that it reverts changes made 
to a ContinuousMapping unless the changes are explicitly committed.

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
      2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
      2012-09-12 19:45:01 UTC (rev 30355)
@@ -93,8 +93,10 @@
                VizmapReaderManager vizmapReaderManagerServiceRef = 
getService(bc,VizmapReaderManager.class);
                CyNetworkTableManager cyNetworkTableManagerServiceRef = 
getService(bc,CyNetworkTableManager.class);
                
+               VisualMappingFunctionFactory continousMappingFactory = 
getService(bc, VisualMappingFunctionFactory.class, "(mapping.type=continuous)");
+               
                AttributeSetManager attributeSetManager = new 
AttributeSetManager(cyNetworkTableManagerServiceRef);
-               EditorManagerImpl editorManager = new 
EditorManagerImpl(cyApplicationManagerServiceRef,attributeSetManager,vmmServiceRef,cyNetworkTableManagerServiceRef,
 cyNetworkManagerServiceRef);
+               EditorManagerImpl editorManager = new 
EditorManagerImpl(cyApplicationManagerServiceRef,attributeSetManager,vmmServiceRef,cyNetworkTableManagerServiceRef,
 cyNetworkManagerServiceRef, continousMappingFactory);
                MappingFunctionFactoryManagerImpl mappingFunctionFactoryManager 
= new MappingFunctionFactoryManagerImpl(editorManager);
                PropertySheetPanel propertySheetPanel = new 
PropertySheetPanel();
                
@@ -152,7 +154,7 @@
                VizMapperMainPanel vizMapperMainPanel = new 
VizMapperMainPanel(visualStyleFactoryServiceRef,defViewEditor,iconManager,colorMgr,vmmServiceRef,menuManager,editorManager,propertySheetPanel,vizMapPropertySheetBuilder,editorWindowManager,cyApplicationManagerServiceRef,importDefaultVizmapTaskFactory,dialogTaskManagerServiceRef,viewModeAction);
                RenameVisualStyleTaskFactory renameVisualStyleTaskFactory = new 
RenameVisualStyleTaskFactory(vmmServiceRef);
                CopyVisualStyleTaskFactory copyVisualStyleTaskFactory = new 
CopyVisualStyleTaskFactory(vmmServiceRef,visualStyleFactoryServiceRef);
-               CreateLegendTaskFactory createLegendTaskFactory = new 
CreateLegendTaskFactory(cyApplicationManagerServiceRef, vmmServiceRef);
+               CreateLegendTaskFactory createLegendTaskFactory = new 
CreateLegendTaskFactory(cyApplicationManagerServiceRef, vmmServiceRef, 
continousMappingFactory);
                DeleteMappingFunctionTaskFactory 
deleteMappingFunctionTaskFactory = new 
DeleteMappingFunctionTaskFactory(propertySheetPanel,vmmServiceRef, 
cyApplicationManagerServiceRef);
                
                RainbowColorMappingGenerator rainbowGenerator = new 
RainbowColorMappingGenerator(Color.class);

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/EditorManagerImpl.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/EditorManagerImpl.java
 2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/EditorManagerImpl.java
 2012-09-12 19:45:01 UTC (rev 30355)
@@ -59,6 +59,7 @@
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.presentation.RenderingEngineFactory;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.gui.editor.ContinuousEditorType;
 import org.cytoscape.view.vizmap.gui.editor.EditorManager;
@@ -100,17 +101,19 @@
 
        private final CyNetworkTableManager tableManager;
        private final VisualMappingManager vmm;
+       private final VisualMappingFunctionFactory continuousMappingFactory;
 
        /**
         * Creates a new EditorFactory object.
         */
        public EditorManagerImpl(final CyApplicationManager appManager, final 
AttributeSetManager attrManager,
                        final VisualMappingManager vmm, final 
CyNetworkTableManager tableManager,
-                       final CyNetworkManager networkManager) {
+                       final CyNetworkManager networkManager, 
VisualMappingFunctionFactory continuousMappingFactory) {
 
                this.appManager = appManager;
                this.tableManager = tableManager;
                this.vmm = vmm;
+               this.continuousMappingFactory = continuousMappingFactory;
 
                editors = new HashMap<Class<?>, VisualPropertyEditor<?>>();
 
@@ -304,11 +307,11 @@
                final ContinuousEditorType editorType = 
this.getVisualPropertyEditor(vp).getContinuousEditorType();
 
                if (editorType == ContinuousEditorType.COLOR)
-                       return new GradientEditor(tableManager, appManager, 
this, vmm);
+                       return new GradientEditor(tableManager, appManager, 
this, vmm, continuousMappingFactory);
                else if (editorType == ContinuousEditorType.CONTINUOUS)
-                       return new C2CEditor(tableManager, appManager, this, 
vmm);
+                       return new C2CEditor(tableManager, appManager, this, 
vmm, continuousMappingFactory);
                else if (editorType == ContinuousEditorType.DISCRETE)
-                       return new C2DEditor(tableManager, appManager, this, 
vmm);
+                       return new C2DEditor(tableManager, appManager, this, 
vmm, continuousMappingFactory);
 
                return null;
        }

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/AbstractContinuousMappingEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/AbstractContinuousMappingEditor.java
     2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/AbstractContinuousMappingEditor.java
     2012-09-12 19:45:01 UTC (rev 30355)
@@ -14,6 +14,7 @@
 
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.model.CyNetworkTableManager;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.gui.editor.ContinuousMappingEditor;
 import org.cytoscape.view.vizmap.gui.editor.EditorManager;
@@ -35,6 +36,7 @@
        protected final EditorManager editorManager;
 
        protected final VisualMappingManager vmm;
+       protected final VisualMappingFunctionFactory continuousMappingFactory;
 
        private final JLabel iconLabel;
 
@@ -42,7 +44,7 @@
        private JDialog currentDialog;
 
        public AbstractContinuousMappingEditor(final CyNetworkTableManager 
manager, final CyApplicationManager appManager,
-                       final EditorManager editorManager, final 
VisualMappingManager vmm) {
+                       final EditorManager editorManager, final 
VisualMappingManager vmm, VisualMappingFunctionFactory 
continuousMappingFactory) {
 
                this.isEditorDialogActive = false;
                this.iconLabel = new JLabel();
@@ -50,6 +52,7 @@
                this.manager = manager;
                this.appManager = appManager;
                this.editorManager = editorManager;
+               this.continuousMappingFactory = continuousMappingFactory;
 
                editor = new JPanel();
                ((JPanel) editor).setLayout(new BorderLayout());

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2CEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2CEditor.java
   2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2CEditor.java
   2012-09-12 19:45:01 UTC (rev 30355)
@@ -5,6 +5,7 @@
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.model.CyTable;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.gui.editor.EditorManager;
 import org.cytoscape.view.vizmap.mappings.ContinuousMapping;
@@ -12,8 +13,8 @@
 public class C2CEditor<K extends Number, V extends Number> extends 
AbstractContinuousMappingEditor<K, V> {
 
        public C2CEditor(final CyNetworkTableManager manager, final 
CyApplicationManager appManager,
-                       final EditorManager editorManager, final 
VisualMappingManager vmm) {
-               super(manager, appManager, editorManager, vmm);
+                       final EditorManager editorManager, final 
VisualMappingManager vmm, VisualMappingFunctionFactory 
continuousMappingFactory) {
+               super(manager, appManager, editorManager, vmm, 
continuousMappingFactory);
        }
 
        @Override
@@ -30,6 +31,6 @@
                Class<? extends CyIdentifiable> type = (Class<? extends 
CyIdentifiable>) mapping.getVisualProperty()
                                .getTargetDataType();
                final CyTable attr = 
manager.getTable(appManager.getCurrentNetwork(), type, CyNetwork.DEFAULT_ATTRS);
-               this.editorPanel = new C2CMappingEditorPanel<K, 
V>(vmm.getCurrentVisualStyle(), mapping, attr, appManager, vmm);
+               this.editorPanel = new C2CMappingEditorPanel<K, 
V>(vmm.getCurrentVisualStyle(), mapping, attr, appManager, vmm, 
continuousMappingFactory);
        }
 }
\ No newline at end of file

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2CMappingEditorPanel.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2CMappingEditorPanel.java
       2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2CMappingEditorPanel.java
       2012-09-12 19:45:01 UTC (rev 30355)
@@ -49,6 +49,7 @@
 
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.model.CyTable;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.view.vizmap.gui.internal.NumberConverter;
@@ -80,8 +81,8 @@
        
 
        public C2CMappingEditorPanel(final VisualStyle style, final 
ContinuousMapping<K, V> mapping, final CyTable attr,
-                       final CyApplicationManager appManager, final 
VisualMappingManager vmm) {
-               super(style, mapping, attr, appManager, vmm);
+                       final CyApplicationManager appManager, final 
VisualMappingManager vmm, final VisualMappingFunctionFactory 
continuousMappingFactory) {
+               super(style, mapping, attr, appManager, vmm, 
continuousMappingFactory);
                
                abovePanel.setVisible(false);
                belowPanel.setVisible(false);
@@ -232,8 +233,6 @@
                slider.setThumbRenderer(thumbRend);
                slider.setTrackRenderer(cRend);
                slider.addMouseListener(new ThumbMouseListener());
-               
-               updateMap();
        }
 
        public void propertyChange(PropertyChangeEvent evt) {

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2DEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2DEditor.java
   2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2DEditor.java
   2012-09-12 19:45:01 UTC (rev 30355)
@@ -5,6 +5,7 @@
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.model.CyTable;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.gui.editor.EditorManager;
 import org.cytoscape.view.vizmap.mappings.ContinuousMapping;
@@ -12,8 +13,8 @@
 public class C2DEditor<V> extends AbstractContinuousMappingEditor<Number, V> {
 
        public C2DEditor(final CyNetworkTableManager manager, final 
CyApplicationManager appManager,
-                       final EditorManager editorManager, final 
VisualMappingManager vmm) {
-               super(manager, appManager, editorManager, vmm);
+                       final EditorManager editorManager, final 
VisualMappingManager vmm, VisualMappingFunctionFactory 
continuousMappingFactory) {
+               super(manager, appManager, editorManager, vmm, 
continuousMappingFactory);
        }
 
        @Override
@@ -34,6 +35,6 @@
                                .getTargetDataType();
                final CyTable attr = 
manager.getTable(appManager.getCurrentNetwork(), type, CyNetwork.DEFAULT_ATTRS);
                this.editorPanel = new 
C2DMappingEditorPanel(vmm.getCurrentVisualStyle(), mapping, attr,
-                               appManager, vmm, editorManager);
+                               appManager, vmm, editorManager, 
continuousMappingFactory);
        }
 }
\ No newline at end of file

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2DMappingEditorPanel.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2DMappingEditorPanel.java
       2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/C2DMappingEditorPanel.java
       2012-09-12 19:45:01 UTC (rev 30355)
@@ -48,6 +48,7 @@
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.model.CyTable;
 import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.view.vizmap.gui.editor.EditorManager;
@@ -72,8 +73,8 @@
        private final EditorManager editorManager;
 
        public C2DMappingEditorPanel(final VisualStyle style, final 
ContinuousMapping<Number, V> mapping, CyTable attr,
-                       final CyApplicationManager appManager, final 
VisualMappingManager vmm, final EditorManager editorManager) {
-               super(style, mapping, attr, appManager, vmm);
+                       final CyApplicationManager appManager, final 
VisualMappingManager vmm, final EditorManager editorManager, final 
VisualMappingFunctionFactory continuousMappingFactory) {
+               super(style, mapping, attr, appManager, vmm, 
continuousMappingFactory);
 
                this.editorManager = editorManager;
 

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/ContinuousMappingEditorPanel.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/ContinuousMappingEditorPanel.java
        2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/ContinuousMappingEditorPanel.java
        2012-09-12 19:45:01 UTC (rev 30355)
@@ -38,6 +38,8 @@
 import java.awt.event.ActionListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
 import java.awt.image.BufferedImage;
 import java.util.Iterator;
 import java.util.List;
@@ -67,6 +69,7 @@
 import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.model.CyTable;
 import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.view.vizmap.gui.internal.NumberConverter;
@@ -122,13 +125,16 @@
 
        protected final Class<K> columnType;
        protected final Class<V> vpValueType;
+       
+       private final ContinuousMapping<K, V> original;
+       boolean commitChanges;
 
        /**
         * Creates new form ContinuousMapperEditorPanel Accepts only one visual
         * property type T.
         */
        public ContinuousMappingEditorPanel(final VisualStyle style, final 
ContinuousMapping<K, V> mapping,
-                       final CyTable table, final CyApplicationManager 
appManager, final VisualMappingManager vmm) {
+                       final CyTable table, final CyApplicationManager 
appManager, final VisualMappingManager vmm, final VisualMappingFunctionFactory 
continuousMappingFactory) {
                if (mapping == null)
                        throw new NullPointerException("ContinuousMapping 
should not be null.");
                if (table == null)
@@ -140,10 +146,11 @@
 
                this.tracer = new EditorValueRangeTracer(vmm);
                this.mapping = mapping;
+               this.original = createCopy(continuousMappingFactory, mapping);
                this.type = mapping.getVisualProperty();
                this.appManager = appManager;
                this.style = style;
-               this.mainPanel = new JPanel();
+               this.mainPanel = createMainPanel();
                this.dataTable = table;
 
                columnType = mapping.getMappingColumnType();
@@ -171,6 +178,63 @@
                setSpinner();
        }
 
+       private JPanel createMainPanel() {
+               return new JPanel() {
+                       @Override
+                       public void addNotify() {
+                               super.addNotify();
+                               
+                               final JDialog dialog = (JDialog) 
getRootPane().getParent();
+                               dialog.addWindowListener(new WindowListener() {
+                                       @Override
+                                       public void windowOpened(WindowEvent 
event) {
+                                       }
+                                       
+                                       @Override
+                                       public void windowIconified(WindowEvent 
event) {
+                                       }
+                                       
+                                       @Override
+                                       public void 
windowDeiconified(WindowEvent event) {
+                                       }
+                                       
+                                       @Override
+                                       public void 
windowDeactivated(WindowEvent event) {
+                                       }
+                                       
+                                       @Override
+                                       public void windowClosing(WindowEvent 
event) {
+                                       }
+                                       
+                                       @Override
+                                       public void windowClosed(WindowEvent 
event) {
+                                               if (!commitChanges) {
+                                                       cancelChanges();
+                                               }
+                                       }
+                                       
+                                       @Override
+                                       public void windowActivated(WindowEvent 
arg0) {
+                                       }
+                               });
+                       }
+               };
+       }
+
+       @SuppressWarnings("unchecked")
+       private ContinuousMapping<K, V> createCopy(VisualMappingFunctionFactory 
continuousMappingFactory, ContinuousMapping<K, V> source) {
+               String attribute = source.getMappingColumnName();
+               Class<?> attributeType = source.getMappingColumnType();
+               VisualProperty<?> visualProperty = source.getVisualProperty();
+               ContinuousMapping<K, V> mapping = (ContinuousMapping<K, V>) 
continuousMappingFactory.createVisualMappingFunction(attribute, attributeType, 
visualProperty);
+               
+               for (ContinuousMappingPoint<K, V> point : 
source.getAllPoints()) {
+                       BoundaryRangeValues<V> range = new 
BoundaryRangeValues<V>(point.getRange());
+                       mapping.addPoint(point.getValue(), range);
+               }
+               return mapping;
+       }
+
        private void setSpinner() {
                spinnerModel = new SpinnerNumberModel(0.0d, 
Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY, 0.01d);
                spinnerModel.addChangeListener(new SpinnerChangeListener());
@@ -261,8 +325,8 @@
                cancelButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
                cancelButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
-                               final JDialog parentComponent = (JDialog) 
mainPanel.getRootPane().getParent();
-                               parentComponent.dispose();
+                               final JDialog dialog = (JDialog) 
mainPanel.getRootPane().getParent();
+                               dialog.dispose();
                        }
                });
 
@@ -270,11 +334,12 @@
                okButton.setMargin(new Insets(2, 2, 2, 2));
                okButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
-                               final JDialog parentComponent = (JDialog) 
mainPanel.getRootPane().getParent();
-                               parentComponent.dispose();
+                               commitChanges = true;
+                               final JDialog dialog = (JDialog) 
mainPanel.getRootPane().getParent();
+                               dialog.dispose();
                        }
                });
-
+               
                // Property value editor components
                final JPanel propValuePanel = new JPanel();
                propValuePanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 
5, 5));
@@ -629,6 +694,16 @@
                }
        }
 
+       void cancelChanges() {
+               while (mapping.getPointCount() > 0) {
+                       mapping.removePoint(0);
+               }
+               
+               for (ContinuousMappingPoint<K, V> point : 
original.getAllPoints()) {
+                       mapping.addPoint(point.getValue(), point.getRange());
+               }
+       }
+
        // End of variables declaration
        protected class ThumbMouseListener extends MouseAdapter {
 

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/GradientEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/GradientEditor.java
      2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/GradientEditor.java
      2012-09-12 19:45:01 UTC (rev 30355)
@@ -8,6 +8,7 @@
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.model.CyTable;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.gui.editor.EditorManager;
 import org.cytoscape.view.vizmap.mappings.ContinuousMapping;
@@ -15,8 +16,8 @@
 public class GradientEditor extends AbstractContinuousMappingEditor<Double, 
Color> {
 
        public GradientEditor(final CyNetworkTableManager manager, final 
CyApplicationManager appManager,
-                       final EditorManager editorManager, final 
VisualMappingManager vmm) {
-               super(manager, appManager, editorManager, vmm);
+                       final EditorManager editorManager, final 
VisualMappingManager vmm, final VisualMappingFunctionFactory 
continuousMappingFactory) {
+               super(manager, appManager, editorManager, vmm, 
continuousMappingFactory);
        }
 
        @Override
@@ -36,6 +37,6 @@
                                .getTargetDataType();
                final CyTable attr = 
manager.getTable(appManager.getCurrentNetwork(), type, CyNetwork.DEFAULT_ATTRS);
                this.editorPanel = new 
GradientEditorPanel(vmm.getCurrentVisualStyle(), mapping, attr, appManager,
-                               editorManager.getValueEditor(Paint.class), vmm);
+                               editorManager.getValueEditor(Paint.class), vmm, 
continuousMappingFactory);
        }
 }

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/GradientEditorPanel.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/GradientEditorPanel.java
 2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/mappingeditor/GradientEditorPanel.java
 2012-09-12 19:45:01 UTC (rev 30355)
@@ -51,6 +51,7 @@
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.model.CyTable;
 import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.view.vizmap.gui.editor.ValueEditor;
@@ -82,9 +83,9 @@
        protected final ValueEditor<Paint> colorEditor;
 
        public GradientEditorPanel(final VisualStyle style, final 
ContinuousMapping<T, Color> mapping, final CyTable attr,
-                       final CyApplicationManager appManager, final 
ValueEditor<Paint> colorEditor, final VisualMappingManager vmm) {
+                       final CyApplicationManager appManager, final 
ValueEditor<Paint> colorEditor, final VisualMappingManager vmm, final 
VisualMappingFunctionFactory continuousMappingFactory) {
 
-               super(style, mapping, attr, appManager, vmm);
+               super(style, mapping, attr, appManager, vmm, 
continuousMappingFactory);
 
                this.colorEditor = colorEditor;
                this.appManager = appManager;
@@ -278,8 +279,6 @@
 
                // Add tooltip as help for users.
                slider.setToolTipText("Double-click handles to edit boundary 
colors.");
-
-               updateMap();
        }
 
        void updateView() {

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/legend/ContinuousMappingLegendPanel.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/legend/ContinuousMappingLegendPanel.java
      2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/legend/ContinuousMappingLegendPanel.java
      2012-09-12 19:45:01 UTC (rev 30355)
@@ -26,6 +26,7 @@
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.model.CyTable;
 import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
 import 
org.cytoscape.view.vizmap.gui.internal.editor.mappingeditor.C2CMappingEditorPanel;
@@ -50,9 +51,10 @@
        final CyTable table;
        final CyApplicationManager appManager;
        final VisualMappingManager vmm;
+       final VisualMappingFunctionFactory continuousMappingFactory;
 
        public ContinuousMappingLegendPanel(final VisualStyle style, final 
ContinuousMapping<?, ?> mapping,
-                       final CyTable table, final CyApplicationManager 
appManager, final VisualMappingManager vmm) {
+                       final CyTable table, final CyApplicationManager 
appManager, final VisualMappingManager vmm, VisualMappingFunctionFactory 
continuousMappingFactory) {
                super();
 
                this.style = style;
@@ -61,6 +63,7 @@
                this.appManager = appManager;
                this.vmm = vmm;
                this.vp = mapping.getVisualProperty();
+               this.continuousMappingFactory = continuousMappingFactory;
 
                // this.points = points;
                // this.type = vpt;
@@ -106,16 +109,16 @@
 
                if (Paint.class.isAssignableFrom(vp.getRange().getType())) {
                        final GradientEditorPanel gPanel = new 
GradientEditorPanel(style,
-                                       (ContinuousMapping<Double, Color>) 
mapping, table, appManager, null, vmm);
+                                       (ContinuousMapping<Double, Color>) 
mapping, table, appManager, null, vmm, continuousMappingFactory);
                        legend = new JLabel(gPanel.getLegend(trackW, 100));
                } else if 
(Number.class.isAssignableFrom(vp.getRange().getType())) {
                        final C2CMappingEditorPanel numberPanel = new 
C2CMappingEditorPanel(style,
-                                       mapping, table, appManager, vmm);
+                                       mapping, table, appManager, vmm, 
continuousMappingFactory);
                        legend = new JLabel(numberPanel.getLegend(trackW, 150));
                } else {
                        try {
                                C2DMappingEditorPanel discretePanel = new 
C2DMappingEditorPanel(style, mapping, table, appManager, vmm,
-                                               null);
+                                               null, continuousMappingFactory);
                                legend = new 
JLabel(discretePanel.getLegend(trackW, 150));
                        } catch (Exception ex) {
                                legend = new JLabel("Legend Generator not 
available");

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateLegendTask.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateLegendTask.java
    2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateLegendTask.java
    2012-09-12 19:45:01 UTC (rev 30355)
@@ -3,6 +3,7 @@
 import javax.swing.SwingUtilities;
 
 import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.view.vizmap.gui.internal.task.ui.LegendDialog;
@@ -13,10 +14,12 @@
 
        private final CyApplicationManager appManager;
        private final VisualMappingManager vmm;
+       private final VisualMappingFunctionFactory continuousMappingFactory;
 
-       public CreateLegendTask(final CyApplicationManager appManager, final 
VisualMappingManager vmm) {
+       public CreateLegendTask(final CyApplicationManager appManager, final 
VisualMappingManager vmm, VisualMappingFunctionFactory 
continuousMappingFactory) {
                this.appManager = appManager;
                this.vmm = vmm;
+               this.continuousMappingFactory = continuousMappingFactory;
        }
 
        @Override
@@ -26,7 +29,7 @@
                        @Override
                        public void run() {
                                final VisualStyle selectedStyle = 
vmm.getCurrentVisualStyle();
-                               final LegendDialog ld = new 
LegendDialog(selectedStyle, appManager, vmm);
+                               final LegendDialog ld = new 
LegendDialog(selectedStyle, appManager, vmm, continuousMappingFactory);
                                ld.showDialog(null);
                        }
                });

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateLegendTaskFactory.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateLegendTaskFactory.java
     2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateLegendTaskFactory.java
     2012-09-12 19:45:01 UTC (rev 30355)
@@ -1,6 +1,7 @@
 package org.cytoscape.view.vizmap.gui.internal.task;
 
 import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.AbstractTaskFactory;
 import org.cytoscape.work.TaskIterator;
@@ -9,15 +10,17 @@
 
        private final CyApplicationManager appManager;
        private final VisualMappingManager vmm;
+       private final VisualMappingFunctionFactory continuousMappingFactory;
 
-       public CreateLegendTaskFactory(final CyApplicationManager appManager, 
final VisualMappingManager vmm) {
+       public CreateLegendTaskFactory(final CyApplicationManager appManager, 
final VisualMappingManager vmm, VisualMappingFunctionFactory 
continuousMappingFactory) {
                this.appManager = appManager;
                this.vmm = vmm;
+               this.continuousMappingFactory = continuousMappingFactory;
        }
 
        @Override
        public TaskIterator createTaskIterator() {
-               return new TaskIterator(new CreateLegendTask(appManager, vmm));
+               return new TaskIterator(new CreateLegendTask(appManager, vmm, 
continuousMappingFactory));
        }
 
 }

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/ui/LegendDialog.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/ui/LegendDialog.java
     2012-09-12 16:49:42 UTC (rev 30354)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/ui/LegendDialog.java
     2012-09-12 19:45:01 UTC (rev 30355)
@@ -22,6 +22,7 @@
 
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.view.vizmap.VisualMappingFunction;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
 import 
org.cytoscape.view.vizmap.gui.internal.legend.ContinuousMappingLegendPanel;
@@ -54,13 +55,16 @@
        private JButton jButton2;
        private JScrollPane jScrollPane1;
 
-       public LegendDialog(final VisualStyle vs, final CyApplicationManager 
appManager, final VisualMappingManager vmm) {
+       private VisualMappingFunctionFactory continuousMappingFactory;
+
+       public LegendDialog(final VisualStyle vs, final CyApplicationManager 
appManager, final VisualMappingManager vmm, VisualMappingFunctionFactory 
continuousMappingFactory) {
                super();
                this.setModal(true);
 
                visualStyle = vs;
                this.appManager = appManager;
                this.vmm = vmm;
+               this.continuousMappingFactory = continuousMappingFactory;
 
                initComponents();
                this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
@@ -94,7 +98,7 @@
 
                        if (map instanceof ContinuousMapping) {
                                mappingLenegd = new 
ContinuousMappingLegendPanel(visualStyle, (ContinuousMapping) map, appManager
-                                               
.getCurrentNetwork().getDefaultNodeTable(), appManager, vmm);
+                                               
.getCurrentNetwork().getDefaultNodeTable(), appManager, vmm, 
continuousMappingFactory);
                        } else if (map instanceof DiscreteMapping) {
                                mappingLenegd = new 
DiscreteLegend((DiscreteMapping<?, ?>) map, appManager);
                        } else if (map instanceof DiscreteMapping) {

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to