Author: kono
Date: 2012-05-14 18:43:39 -0700 (Mon, 14 May 2012)
New Revision: 29266

Modified:
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AbstractVizMapperPanel.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetTable.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMainPanel.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/CellEditorEventHandler.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/VizMapEventHandlerManagerImpl.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/DeleteMappingFunctionTask.java
Log:
fixes #974, #975 Threading problem and unnecessary event handler problems had 
been fixed.

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AbstractVizMapperPanel.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AbstractVizMapperPanel.java
   2012-05-14 23:16:01 UTC (rev 29265)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AbstractVizMapperPanel.java
   2012-05-15 01:43:39 UTC (rev 29266)
@@ -265,7 +265,7 @@
                bottomPanel = new javax.swing.JPanel();
 
                defaultViewImagePanel = new javax.swing.JPanel();
-               propertySheetPanel.setTable(new PropertySheetTable());
+               propertySheetPanel.setTable(new VizMapPropertySheetTable());
 
                vsSelectPanel = new javax.swing.JPanel();
 

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
        2012-05-14 23:16:01 UTC (rev 29265)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
        2012-05-15 01:43:39 UTC (rev 29266)
@@ -8,7 +8,7 @@
 import org.cytoscape.application.swing.AbstractCyAction;
 import org.cytoscape.view.vizmap.gui.util.PropertySheetUtil;
 
-public class SetViewModeAction extends AbstractCyAction {
+public final class SetViewModeAction extends AbstractCyAction {
        
        private static final long serialVersionUID = -832910068413870738L;
 

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
       2012-05-14 23:16:01 UTC (rev 29265)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
       2012-05-15 01:43:39 UTC (rev 29266)
@@ -56,7 +56,7 @@
        private static final int ROW_HEIGHT_MAPPING_CELL = 90;
        private static final Color CATEGORY_BACKGROUND_COLOR = new Color(10, 
10, 50, 20);
 
-       private PropertySheetPanel propertySheetPanel;
+       private final PropertySheetPanel propertySheetPanel;
 
        private DefaultTableCellRenderer emptyBoxRenderer;
        private DefaultTableCellRenderer filledBoxRenderer;

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetTable.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetTable.java
 2012-05-14 23:16:01 UTC (rev 29265)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetTable.java
 2012-05-15 01:43:39 UTC (rev 29266)
@@ -12,6 +12,8 @@
 
        private final static long serialVersionUID = 1213748836812161L;
 
+       
+       @Override
        public String getToolTipText(MouseEvent me) {
                final Point pt = me.getPoint();
                final int row = rowAtPoint(pt);

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMainPanel.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMainPanel.java
       2012-05-14 23:16:01 UTC (rev 29265)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMainPanel.java
       2012-05-15 01:43:39 UTC (rev 29266)
@@ -204,7 +204,6 @@
        protected void switchVS(final VisualStyle style, boolean forceUpdate) {
                // Close editor windows
                editorWindowManager.closeAllEditorWindows();
-               
                vizMapPropertySheetBuilder.setPropertyTable(style);
 
                // Apply style to the current network view if necessary.
@@ -490,8 +489,14 @@
        @Override
        public void propertyChange(PropertyChangeEvent fromSetViewMode) {
                // Need to update property sheet.
-               
if(fromSetViewMode.getPropertyName().equals(SetViewModeAction.VIEW_MODE_CHANGED))
-                       switchVS(manager.getCurrentVisualStyle(), true);
+               if 
(fromSetViewMode.getPropertyName().equals(SetViewModeAction.VIEW_MODE_CHANGED)) 
{
+                       SwingUtilities.invokeLater(new Runnable() {
+                               @Override
+                               public void run() {
+                                       
switchVS(manager.getCurrentVisualStyle(), true);
+                               }
+                       });
+               }
 
        }
 

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/CellEditorEventHandler.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/CellEditorEventHandler.java
     2012-05-14 23:16:01 UTC (rev 29265)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/CellEditorEventHandler.java
     2012-05-15 01:43:39 UTC (rev 29266)
@@ -28,9 +28,12 @@
 package org.cytoscape.view.vizmap.gui.internal.event;
 
 import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.EventListener;
 import java.util.List;
 
 import javax.swing.JOptionPane;
+import javax.swing.event.TableModelListener;
 
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.model.CyIdentifiable;
@@ -59,6 +62,7 @@
 import com.l2fprod.common.propertysheet.Property;
 import com.l2fprod.common.propertysheet.PropertySheetPanel;
 import com.l2fprod.common.propertysheet.PropertySheetTable;
+import com.l2fprod.common.propertysheet.PropertySheetTableModel;
 import com.l2fprod.common.propertysheet.PropertySheetTableModel.Item;
 
 // TODO: Should be refactored for readability!!
@@ -112,7 +116,7 @@
         * @param e PCE to be processed in this handler.
         */
        @Override
-       public void processEvent(final PropertyChangeEvent e) {         
+       public void processEvent(final PropertyChangeEvent e) {
 
                final Object newVal = e.getNewValue();
                final Object oldVal = e.getOldValue();
@@ -145,6 +149,9 @@
                                return;
                        final AttributeComboBoxPropertyEditor editor = 
(AttributeComboBoxPropertyEditor) e.getSource();
                        processTableColumnChange(newVal.toString(), prop, 
editor);
+                       
+                       
+                       
                } else if (prop.getCellType() == CellType.MAPPING_TYPE) {
                        // Case 2. Switch mapping type
                        // Parent is always root.
@@ -304,7 +311,13 @@
                        style.addVisualMappingFunction(newMapping);
                } else
                        newMapping = currentMapping;
-
+               
+               // Disable listeners to avoid unnecessary updates
+               final PropertySheetTableModel model = (PropertySheetTableModel) 
this.propertySheetPanel.getTable().getModel();
+               final TableModelListener[] modelListeners = 
model.getTableModelListeners();
+               for(final TableModelListener tm: modelListeners)
+                       model.removeTableModelListener(tm);
+               
                logger.debug("New VisualMappingFunction Created: Mapping Type = 
"
                                + 
style.getVisualMappingFunction(vp).toString());
                logger.debug("New VisualMappingFunction Created: Controlling 
attr = "
@@ -331,6 +344,10 @@
                applicationManager.getCurrentNetworkView().updateView();
 
                vizMapPropertySheetBuilder.updateTableView();
+               
+               // Restore listeners
+               for(final TableModelListener tm: modelListeners)
+                       model.addTableModelListener(tm);
        }
        
        private void processTableColumnChange(final String newColumnName, final 
VizMapperProperty<?, ?, ?> prop,

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/VizMapEventHandlerManagerImpl.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/VizMapEventHandlerManagerImpl.java
      2012-05-14 23:16:01 UTC (rev 29265)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/VizMapEventHandlerManagerImpl.java
      2012-05-15 01:43:39 UTC (rev 29266)
@@ -6,6 +6,8 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.swing.SwingUtilities;
+
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.view.presentation.RenderingEngineFactory;
@@ -118,8 +120,14 @@
                        return;
 
                final VizMapEventHandler handler = 
getHandler(handlerKey.toUpperCase());
-               if (handler != null)
-                       handler.processEvent(e);
+               if (handler != null) {
+                       SwingUtilities.invokeLater(new Runnable() {
+                               @Override
+                               public void run() {
+                                       handler.processEvent(e);
+                               }
+                       });
+               }
        }
 
 }

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/DeleteMappingFunctionTask.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/DeleteMappingFunctionTask.java
   2012-05-14 23:16:01 UTC (rev 29265)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/DeleteMappingFunctionTask.java
   2012-05-15 01:43:39 UTC (rev 29266)
@@ -1,5 +1,7 @@
 package org.cytoscape.view.vizmap.gui.internal.task;
 
+import javax.swing.SwingUtilities;
+
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.VisualProperty;
@@ -30,25 +32,32 @@
 
        @Override
        public void run(TaskMonitor monitor) throws Exception {
-               int selectedRow = table.getSelectedRow();
-               
-               // If not selected, do nothing.
-               if(selectedRow < 0)
-                       return;
-               
-               final Item value = (Item) table.getValueAt(selectedRow, 0);
-               
-               
-               if(value.isProperty()) {
-                       final VizMapperProperty<?, ?, ?> prop = 
(VizMapperProperty<?, ?, ?>) value.getProperty();
-                       
-                       if(prop.getCellType() == CellType.VISUAL_PROPERTY_TYPE) 
{
-                               final VisualProperty<?> vp = 
(VisualProperty<?>) prop.getKey();
-                               removeMapping(manager.getCurrentVisualStyle(), 
vp);
-                               
-                               updatePropertySheet(prop, vp);
+
+               SwingUtilities.invokeLater(new Runnable() {
+                       @Override
+                       public void run() {
+                               int selectedRow = table.getSelectedRow();
+
+                               // If not selected, do nothing.
+                               if (selectedRow < 0)
+                                       return;
+
+                               final Item value = (Item) 
table.getValueAt(selectedRow, 0);
+
+                               if (value.isProperty()) {
+                                       final VizMapperProperty<?, ?, ?> prop = 
(VizMapperProperty<?, ?, ?>) value.getProperty();
+
+                                       if (prop.getCellType() == 
CellType.VISUAL_PROPERTY_TYPE) {
+                                               final VisualProperty<?> vp = 
(VisualProperty<?>) prop.getKey();
+                                               
removeMapping(manager.getCurrentVisualStyle(), vp);
+
+                                               updatePropertySheet(prop, vp);
+                                       }
+                               }
+
                        }
-               }
+               });
+
        }
        
        private void removeMapping(final VisualStyle style, final 
VisualProperty<?> vp) {

-- 
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