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.