Author: clopes
Date: 2012-05-31 11:37:20 -0700 (Thu, 31 May 2012)
New Revision: 29412

Modified:
   
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
   
core3/impl/trunk/session-impl/impl/src/main/java/org/cytoscape/session/internal/CySessionManagerImpl.java
   
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
   
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/SelectedVisualStyleManagerImpl.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
Log:
Fixes #1047 : Restored network views get the wrong visual style

Modified: 
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
===================================================================
--- 
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
    2012-05-31 17:28:45 UTC (rev 29411)
+++ 
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
    2012-05-31 18:37:20 UTC (rev 29412)
@@ -275,8 +275,13 @@
 
        @Override
        public void setCurrentRenderingEngine(RenderingEngine<CyNetwork> 
engine) {
+               boolean changed = (engine == null && currentRenderer != null)
+                               || (engine != null && 
!engine.equals(currentRenderer));
+               
                this.currentRenderer = engine;
-               cyEventHelper.fireEvent(new 
SetCurrentRenderingEngineEvent(this, this.currentRenderer));
+               
+               if (changed)
+                       cyEventHelper.fireEvent(new 
SetCurrentRenderingEngineEvent(this, this.currentRenderer));
        }
 
        @Override

Modified: 
core3/impl/trunk/session-impl/impl/src/main/java/org/cytoscape/session/internal/CySessionManagerImpl.java
===================================================================
--- 
core3/impl/trunk/session-impl/impl/src/main/java/org/cytoscape/session/internal/CySessionManagerImpl.java
   2012-05-31 17:28:45 UTC (rev 29411)
+++ 
core3/impl/trunk/session-impl/impl/src/main/java/org/cytoscape/session/internal/CySessionManagerImpl.java
   2012-05-31 18:37:20 UTC (rev 29412)
@@ -387,11 +387,16 @@
                final Map<CyNetworkView, String> viewStyleMap = 
sess.getViewVisualStyleMap();
                
                if (viewStyleMap != null) {
+                       final VisualStyle defStyle = 
vmMgr.getDefaultVisualStyle();
+                       
                        for (Entry<CyNetworkView, String> entry : 
viewStyleMap.entrySet()) {
                                final CyNetworkView netView = entry.getKey();
                                final String stName = entry.getValue();
-                               final VisualStyle vs = stylesMap.get(stName);
+                               VisualStyle vs = stylesMap.get(stName);
 
+                               if (vs == null)
+                                       vs = defStyle;
+                               
                                if (vs != null) {
                                        vmMgr.setVisualStyle(vs, netView);
                                        vs.apply(netView);

Modified: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
===================================================================
--- 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
   2012-05-31 17:28:45 UTC (rev 29411)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
   2012-05-31 18:37:20 UTC (rev 29412)
@@ -42,7 +42,6 @@
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.beans.PropertyVetoException;
-import java.lang.reflect.InvocationTargetException;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -109,8 +108,6 @@
        private final Map<JInternalFrame, CyNetworkView> iFrameMap;
        private final Properties props;
 
-       private CyNetworkView currentView;
-
        // Supports multiple presentations
        private final Map<String, RenderingEngineFactory<CyNetwork>> factories;
        private RenderingEngineFactory<CyNetwork> currentRenderingEngineFactory;
@@ -125,6 +122,8 @@
        private final CyNetworkViewManager netViewMgr;
        private final CyApplicationManager appMgr;
        private final RenderingEngineManager renderingEngineMgr;
+       
+       private boolean ignoreInternalFrameActivated;
 
        
        public NetworkViewManager(final CyApplicationManager appMgr,
@@ -186,8 +185,6 @@
 
        /**
         * Desktop for JInternalFrames which contains actual network 
presentations.
-        * 
-        * @return DOCUMENT ME!
         */
        public JDesktopPane getDesktopPane() {
                return desktopPane;
@@ -222,17 +219,20 @@
         */
        @Override
        public void internalFrameActivated(InternalFrameEvent e) {
-               final CyNetworkView view = iFrameMap.get(e.getInternalFrame());
-               if (view == null)
+               if (ignoreInternalFrameActivated)
                        return;
-
-               final RenderingEngine<CyNetwork> currentEngine = 
appMgr.getCurrentRenderingEngine();
                
-               if (netViewMgr.getNetworkViewSet().contains(view) && 
!view.equals(appMgr.getCurrentNetworkView()))
-                       appMgr.setCurrentNetworkView(view);
-
-               if (currentEngine == null || currentEngine.getViewModel() != 
view)
-                       
appMgr.setCurrentRenderingEngine(presentationMap.get(view));
+               final CyNetworkView view = iFrameMap.get(e.getInternalFrame());
+               
+               if (view != null) {
+                       final RenderingEngine<CyNetwork> currentEngine = 
appMgr.getCurrentRenderingEngine();
+                       
+                       if (netViewMgr.getNetworkViewSet().contains(view) && 
!view.equals(appMgr.getCurrentNetworkView()))
+                               appMgr.setCurrentNetworkView(view);
+       
+                       if (currentEngine == null || 
currentEngine.getViewModel() != view)
+                               
appMgr.setCurrentRenderingEngine(presentationMap.get(view));
+               }
        }
 
        /**
@@ -247,8 +247,6 @@
        @Override
        public void handleEvent(SetCurrentNetworkViewEvent e) {
                final CyNetworkView view = e.getNetworkView();
-               logger.debug("Attempting to set current network view: " + view);
-
                // Do not use invokeLater() here! It cause all kinds of 
threading problem.
                setFocus(view);
        }
@@ -256,8 +254,6 @@
        @Override
        public void handleEvent(SetCurrentNetworkEvent e) {
                final CyNetwork net = e.getNetwork();
-               logger.debug("Attempting to set current network: " + net);
-               
                CyNetworkView view = null;
                
                if (net != null) {
@@ -266,15 +262,16 @@
                        if (!views.isEmpty())
                                view = views.iterator().next();
                }
-       
+               
                // Do not use invokeLater() here! It cause all kinds of 
threading problem.
                setFocus(view);
        }
 
        @Override
        public void handleEvent(NetworkViewAboutToBeDestroyedEvent nvde) {
-               logger.info("Network view destroyed: View ID = " + 
nvde.getNetworkView());
+               logger.info("Network view destroyed: " + nvde.getNetworkView());
                final CyNetworkView view = nvde.getNetworkView();
+               
                SwingUtilities.invokeLater(new Runnable() {
                        @Override
                        public void run() {
@@ -293,6 +290,7 @@
 
                final String viewThresholdString = 
props.getProperty(VIEW_THRESHOLD);
                int viewThreshold;
+               
                try {
                        viewThreshold = Integer.parseInt(viewThresholdString);
                } catch (Exception e) {
@@ -310,12 +308,14 @@
                                        "(Current View Threshold = " + 
viewThreshold + ")");
                        // TODO: Should we cancel visualization?
                }
-               SwingUtilities.invokeLater(new Runnable() {
-                       @Override
-                       public void run() {
-                               render(networkView);
-                       }
-               });
+               
+               ignoreInternalFrameActivated = true;
+               
+               try {
+                       render(networkView);
+               } finally {
+                       ignoreInternalFrameActivated = false;
+               }
        }
 
        private final void removeView(final CyNetworkView view) {
@@ -326,11 +326,6 @@
                                logger.debug("Removing rendering engine: " + 
removed);
                                removed = null;
                                iFrameMap.remove(frame);
-                               
-                               synchronized (presentationContainerMap) {
-                                       presentationContainerMap.remove(view);
-                               }
-                               
                                frame.dispose();
                                frame = null;
                        }
@@ -347,7 +342,6 @@
 
        /**
         * Create a visualization container and add presentation to it.
-        * 
         */
        private final void render(final CyNetworkView view) {
                // If already registered in this manager, do not render.
@@ -367,7 +361,6 @@
                                        iframe.setLocation(originalPoint.x, 0);
                        }
                });
-               
 
                iframe.addInternalFrameListener(new InternalFrameAdapter() {
                        public void internalFrameClosing(InternalFrameEvent e) {
@@ -509,33 +502,30 @@
                        frame.setSize(new Dimension(width, height));
        }
 
-       private void setFocus(CyNetworkView targetViewModel) {
-               if ((currentView == null && targetViewModel == null)
-                               || (currentView != null && 
currentView.equals(targetViewModel))) {
-                       logger.debug("Same as current focus.  No need to update 
focus view model: " + targetViewModel);
+       private void setFocus(CyNetworkView targetView) {
+               final CyNetworkView curView = getSelectedNetworkView();
+               
+               if ((curView == null && targetView == null) || (curView != null 
&& curView.equals(targetView))) {
+                       logger.debug("Same as current focus.  No need to update 
focus view model: " + targetView);
                        return;
                }
 
-               currentView = targetViewModel;
-
                // Reset focus on frames
-               synchronized (presentationContainerMap) {
-                       for (JInternalFrame f : 
presentationContainerMap.values()) {
-                               try {
-                                       f.setSelected(false);
-                               } catch (PropertyVetoException pve) {
-                                       logger.error("Couldn't reset focus for 
internal frames.", pve);
-                               }
+               for (JInternalFrame f : presentationContainerMap.values()) {
+                       try {
+                               f.setSelected(false);
+                       } catch (PropertyVetoException pve) {
+                               logger.error("Couldn't reset focus for internal 
frames.", pve);
                        }
                }
 
                // Set focus
-               if (targetViewModel != null) {
-                       final JInternalFrame curr = 
presentationContainerMap.get(targetViewModel);
+               if (targetView != null) {
+                       final JInternalFrame curr = 
presentationContainerMap.get(targetView);
                        
                        if (curr != null) {
                                try {
-                                       logger.debug("Updating JInternalFrame 
selection");
+                                       logger.debug("Selecting JInternalFrame 
of: " + targetView);
        
                                        curr.setIcon(false);
                                        curr.show();
@@ -555,6 +545,7 @@
        public void handleEvent(final RowsSetEvent e) {
                final Collection<RowSetRecord> records = 
e.getColumnRecords(CyNetwork.NAME);
                final CyTable source = e.getSource();
+               
                SwingUtilities.invokeLater(new Runnable() {
                        @Override
                        public void run() {
@@ -574,4 +565,21 @@
                        }
                }
        }
+       
+       private JInternalFrame getSelectedFrame() {
+               synchronized (presentationContainerMap) {
+                       for (JInternalFrame f : 
presentationContainerMap.values()) {
+                               if (f.isSelected())
+                                       return f;
+                       }
+               }
+               
+               return null;
+       }
+       
+       private CyNetworkView getSelectedNetworkView() {
+               final JInternalFrame selectedFrame = getSelectedFrame();
+               
+               return iFrameMap.get(selectedFrame);
+       }
 }

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-31 17:28:45 UTC (rev 29411)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AbstractVizMapperPanel.java
   2012-05-31 18:37:20 UTC (rev 29412)
@@ -72,7 +72,6 @@
 import com.l2fprod.common.propertysheet.PropertyEditorRegistry;
 import com.l2fprod.common.propertysheet.PropertyRendererRegistry;
 import com.l2fprod.common.propertysheet.PropertySheetPanel;
-import com.l2fprod.common.propertysheet.PropertySheetTable;
 import com.l2fprod.common.swing.plaf.blue.BlueishButtonUI;
 
 /**
@@ -82,8 +81,8 @@
  * functions are in the VizMapperMainPanel.
  * 
  */
-public abstract class AbstractVizMapperPanel extends JPanel implements
-               VizMapGUI {
+public abstract class AbstractVizMapperPanel extends JPanel implements 
VizMapGUI {
+       
        // Visual Properties which are not used in mapping now.
        public static final String CATEGORY_UNUSED = "Unused Properties";
 

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SelectedVisualStyleManagerImpl.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SelectedVisualStyleManagerImpl.java
   2012-05-31 17:28:45 UTC (rev 29411)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SelectedVisualStyleManagerImpl.java
   2012-05-31 18:37:20 UTC (rev 29412)
@@ -1,10 +1,8 @@
 package org.cytoscape.view.vizmap.gui.internal;
 
-import org.cytoscape.application.events.SetCurrentRenderingEngineEvent;
-import org.cytoscape.application.events.SetCurrentRenderingEngineListener;
-import org.cytoscape.model.CyNetwork;
+import org.cytoscape.application.events.SetCurrentNetworkViewEvent;
+import org.cytoscape.application.events.SetCurrentNetworkViewListener;
 import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.view.presentation.RenderingEngine;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.view.vizmap.gui.SelectedVisualStyleManager;
@@ -14,7 +12,7 @@
 import org.slf4j.LoggerFactory;
 
 public class SelectedVisualStyleManagerImpl implements
-               SelectedVisualStyleManager, 
SelectedVisualStyleSwitchedListener, SetCurrentRenderingEngineListener {
+               SelectedVisualStyleManager, 
SelectedVisualStyleSwitchedListener, SetCurrentNetworkViewListener {
        
        private static final Logger logger = 
LoggerFactory.getLogger(SelectedVisualStyleManagerImpl.class);
        
@@ -25,7 +23,7 @@
        protected final VisualStyle defaultVS;
        
        public SelectedVisualStyleManagerImpl(final VisualMappingManager vmm) {
-               if(vmm == null)
+               if (vmm == null)
                        throw new NullPointerException("Visual Mapping Manager 
is missing.");
                this.vmm = vmm;
                
@@ -41,7 +39,8 @@
        @Override
        public void handleEvent(SelectedVisualStyleSwitchedEvent e) {
                final VisualStyle style = e.getNewVisualStyle();
-               if(style == null)
+               
+               if (style == null)
                        throw new NullPointerException("Tried to set selected 
Visual Style to null.");
                
                this.selectedStyle = style;
@@ -59,14 +58,16 @@
        }
 
        @Override
-       public void handleEvent(SetCurrentRenderingEngineEvent e) {
-               logger.debug("Presentation switched: " + 
e.getRenderingEngine());
-               final RenderingEngine<CyNetwork> engine = 
e.getRenderingEngine();
-               final VisualStyle targetStyle = 
vmm.getVisualStyle((CyNetworkView) engine.getViewModel());
-               logger.debug("New Style ========= " + targetStyle.getTitle());
-               if(targetStyle != this.selectedStyle) {
-                       selectedStyle = targetStyle;
-                       logger.debug("Presentation switch ========= Selected 
Style Switched to " + selectedStyle.getTitle());
+       public void handleEvent(SetCurrentNetworkViewEvent e) {
+               final CyNetworkView view = e.getNetworkView();
+               logger.debug("Presentation switched: " + view);
+               
+               final VisualStyle newStyle = view != null ? 
vmm.getVisualStyle(view) : null;
+               logger.debug("New Style ========= " + newStyle);
+               
+               if (newStyle != null && !newStyle.equals(selectedStyle)) {
+                       selectedStyle = newStyle;
+                       logger.debug("Presentation switch ========= Selected 
Style Switched to " + selectedStyle);
                }
        }
 }

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-31 17:28:45 UTC (rev 29411)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMainPanel.java
       2012-05-31 18:37:20 UTC (rev 29412)
@@ -51,8 +51,8 @@
 import javax.swing.event.PopupMenuListener;
 
 import org.cytoscape.application.CyApplicationManager;
-import org.cytoscape.application.events.SetCurrentRenderingEngineEvent;
-import org.cytoscape.application.events.SetCurrentRenderingEngineListener;
+import org.cytoscape.application.events.SetCurrentNetworkViewEvent;
+import org.cytoscape.application.events.SetCurrentNetworkViewListener;
 import org.cytoscape.application.swing.CytoPanelComponent;
 import org.cytoscape.application.swing.CytoPanelName;
 import org.cytoscape.event.CyEventHelper;
@@ -100,12 +100,11 @@
  * <li>Default editor panel
  * <li>Visual Mapping Browser
  * </ul>
- * 
  */
 public class VizMapperMainPanel extends AbstractVizMapperPanel implements 
VisualStyleAddedListener,
                VisualStyleSetListener, VisualStyleAboutToBeRemovedListener, 
PopupMenuListener, NetworkViewAddedListener,
-               CytoPanelComponent, SelectedVisualStyleSwitchedListener, 
SetCurrentRenderingEngineListener,
-               PropertyChangeListener, LexiconStateChangedListener {
+               SetCurrentNetworkViewListener, CytoPanelComponent, 
SelectedVisualStyleSwitchedListener, PropertyChangeListener,
+               LexiconStateChangedListener {
 
        private final static long serialVersionUID = 1202339867854959L;
 
@@ -127,17 +126,26 @@
         * @param menuMgr
         * @param editorFactory
         */
-       public VizMapperMainPanel(final VisualStyleFactory vsFactory, 
DefaultViewEditor defViewEditor, IconManager iconMgr,
-                       ColorManager colorMgr, VisualMappingManager vmm, 
VizMapperMenuManager menuMgr, EditorManager editorFactory,
-                       final PropertySheetPanel propertySheetPanel, 
VizMapPropertySheetBuilder vizMapPropertySheetBuilder,
-                       EditorWindowManager editorWindowManager, 
CyApplicationManager applicationManager,
-                       CyEventHelper eventHelper, final 
SelectedVisualStyleManager manager,
-                       final ImportDefaultVizmapTaskFactory taskFactory, final 
TaskManager<?, ?> tManager, final SetViewModeAction viewModeAction) {
+       public VizMapperMainPanel(final VisualStyleFactory vsFactory,
+                                                         final 
DefaultViewEditor defViewEditor,
+                                                         final IconManager 
iconMgr,
+                                                         final ColorManager 
colorMgr,
+                                                         final 
VisualMappingManager vmm,
+                                                         final 
VizMapperMenuManager menuMgr,
+                                                         final EditorManager 
editorFactory,
+                                                         final 
PropertySheetPanel propertySheetPanel,
+                                                         final 
VizMapPropertySheetBuilder vizMapPropertySheetBuilder,
+                                                         final 
EditorWindowManager editorWindowManager,
+                                                         final 
CyApplicationManager applicationManager,
+                                                         final CyEventHelper 
eventHelper,
+                                                         final 
SelectedVisualStyleManager manager,
+                                                         final 
ImportDefaultVizmapTaskFactory taskFactory,
+                                                         final TaskManager<?, 
?> tManager,
+                                                         final 
SetViewModeAction viewModeAction) {
+               super(vsFactory, defViewEditor, iconMgr, colorMgr, vmm, 
menuMgr, editorFactory, propertySheetPanel,
+                               vizMapPropertySheetBuilder, 
editorWindowManager, applicationManager, eventHelper, manager,
+                               viewModeAction);
 
-               super(vsFactory, defViewEditor, iconMgr, colorMgr, vmm, menuMgr,
-                               editorFactory, propertySheetPanel, 
vizMapPropertySheetBuilder,
-                               editorWindowManager, applicationManager, 
eventHelper, manager, viewModeAction);
-
                this.defaultViewMouseListener = new 
DefaultViewMouseListener(defViewEditor, this, manager);
                
                // Initialize all components
@@ -149,7 +157,11 @@
        }
 
        private void initPanel() {
-               addVisualStyleChangeAction();
+               visualStyleComboBox.addActionListener(new ActionListener() {
+                       public void actionPerformed(ActionEvent evt) {
+                               switchSelected();
+                       }
+               });
 
                // By default, force to sort property by prop name.
                propertySheetPanel.setSorting(true);
@@ -161,7 +173,6 @@
                        }
                });
        }
-       
 
        private void resizeImage() {
                final VisualStyle style = manager.getCurrentVisualStyle();
@@ -178,30 +189,17 @@
                setDefaultViewImagePanel(defImg, style);
        }
        
-       
-       private void addVisualStyleChangeAction() {
-               visualStyleComboBox.addActionListener(new ActionListener() {
-                       public void actionPerformed(ActionEvent evt) {
-                               switchSelected();
-                       }
-               });
-       }
-       
        private void switchSelected() {
                final VisualStyle lastStyle = manager.getCurrentVisualStyle();
                final VisualStyle style = (VisualStyle) 
visualStyleComboBox.getSelectedItem();
-               if (style.equals(lastStyle))
-                       return;
-
-               switchVS(style);
-               eventHelper.fireEvent(new 
SelectedVisualStyleSwitchedEvent(this, lastStyle, style));
+               
+               if (!style.equals(lastStyle)) {
+                       switchVS(style);
+                       eventHelper.fireEvent(new 
SelectedVisualStyleSwitchedEvent(this, lastStyle, style));
+               }
        }
 
        private void switchVS(final VisualStyle style) {
-               switchVS(style, false);
-       }
-
-       protected void switchVS(final VisualStyle style, boolean forceUpdate) {
                // Close editor windows
                editorWindowManager.closeAllEditorWindows();
                vizMapPropertySheetBuilder.setPropertyTable(style);
@@ -211,18 +209,14 @@
                final VisualStyle selectedStyle = (VisualStyle) 
visualStyleComboBox.getModel().getSelectedItem();
                
                // Apply only if necessary.
-               if (currentView != null && 
style.equals(manager.getCurrentVisualStyle()) == false) {
-                       SwingUtilities.invokeLater(new Runnable() {
-                               public void run() {
-                                       final VisualStyle 
currentluyAppliedStyle = vmm.getVisualStyle(currentView);
-                                       if 
(currentluyAppliedStyle.equals(selectedStyle) == false) {
-                                               
vmm.setVisualStyle(selectedStyle, currentView);
-                                               style.apply(currentView);
-                                               // Update view
-                                               currentView.updateView();
-                                       }
-                               }
-                       });
+               if (currentView != null && 
!style.equals(manager.getCurrentVisualStyle())) {
+                       final VisualStyle curViewStyle = 
vmm.getVisualStyle(currentView);
+                       
+                       if (curViewStyle == null || 
!curViewStyle.equals(selectedStyle)) {
+                               vmm.setVisualStyle(selectedStyle, currentView);
+                               style.apply(currentView);
+                               currentView.updateView();
+                       }
                }
                
                Image defImg = defaultImageManager.get(style);
@@ -237,9 +231,9 @@
                                        newSize);
                        defImg = defaultImageManager.get(style);
                }
+               
                // Set the default view to the panel.
                setDefaultViewImagePanel(defImg, style);
-
                // Set the default view to the panel.
                propertySheetPanel.setSorting(true);
        }
@@ -281,7 +275,6 @@
                for (int i = 0; i < li.length; i++)
                        visualStyleComboBox.addActionListener(li[i]);
        }
-
        
        void updateDefaultImage(final VisualStyle vs, final 
RenderingEngine<CyNetwork> engine, final Dimension size) {
 
@@ -296,11 +289,6 @@
                defaultImageManager.put(vs, engine.createImage((int) 
size.getWidth(), (int) size.getHeight()));
        }
 
-
-       /**
-        * 
-        * @param defImage
-        */
        void setDefaultViewImagePanel(final Image defImage, final VisualStyle 
newStyle) {
                if (defImage == null) {
                        logger.debug("Default image is null!");
@@ -314,8 +302,7 @@
                
defaultImageButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
 
                defaultImageButton.setIcon(new ImageIcon(defImage));
-               defaultImageButton.setBackground((Color) newStyle
-                               
.getDefaultValue(BasicVisualLexicon.NETWORK_BACKGROUND_PAINT));
+               defaultImageButton.setBackground((Color) 
newStyle.getDefaultValue(BasicVisualLexicon.NETWORK_BACKGROUND_PAINT));
 
                defaultViewImagePanel.add(defaultImageButton, 
BorderLayout.CENTER);
                defaultImageButton.addMouseListener(defaultViewMouseListener);
@@ -323,7 +310,6 @@
                defaultViewImagePanel.revalidate();
        }
 
-
        @Override
        public void popupMenuCanceled(PopupMenuEvent arg0) {
                // disableAllPopup();
@@ -333,7 +319,6 @@
        public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
        }
        
-       
        @Override
        public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
                // TODO: FIXME
@@ -351,7 +336,6 @@
                return;
        }
 
-
        public Object getSelectedItem() {
                final JTable table = propertySheetPanel.getTable();
                return table.getModel().getValueAt(table.getSelectedRow(), 0);
@@ -362,7 +346,6 @@
                return this.defViewEditor;
        }
 
-
        /**
         * Update GUI components when new Visual Style is created.
         */
@@ -370,15 +353,15 @@
        public void handleEvent(final VisualStyleAddedEvent e) {
                final VisualStyle newStyle = e.getVisualStyleAdded();
                
-               if(newStyle == null) {
+               if (newStyle == null) {
                        logger.warn("New Visual Style is null.");
                        return;
                }
                
                // Style already exists
-               if(vsComboBoxModel.getIndexOf(newStyle) != -1) {
+               if (vsComboBoxModel.getIndexOf(newStyle) != -1) {
                        logger.info(newStyle.getTitle() + " is already in the 
combobox.");
-                       switchVS(newStyle, true);
+                       switchVS(newStyle);
                        return;
                }
 
@@ -387,23 +370,40 @@
 
        @Override
        public void handleEvent(final NetworkViewAddedEvent e) {
-               final CyNetworkView newView = e.getNetworkView();
-               final VisualStyle selectedStyle = 
manager.getCurrentVisualStyle();
-               final VisualStyle curStyle = vmm.getVisualStyle(newView);
+               final CyNetworkView view = e.getNetworkView();
+               final VisualStyle viewStyle = vmm.getVisualStyle(view);
+               final VisualStyle curStyle = manager.getCurrentVisualStyle();
                
-               if (curStyle == null || 
curStyle.equals(vmm.getDefaultVisualStyle()) || curStyle.equals(selectedStyle) 
== false ) {
-                       vmm.setVisualStyle(selectedStyle, newView);
-                       selectedStyle.apply(newView);
-                       newView.updateView();
+               if (viewStyle == null) {System.out.println("%% NULL style for " 
+ view);
+                       vmm.setVisualStyle(curStyle, view);
+                       curStyle.apply(view);
+                       view.updateView();
+               } else if (!viewStyle.equals(curStyle)) {
+                       switchVS(viewStyle);
+                       eventHelper.fireEvent(new 
SelectedVisualStyleSwitchedEvent(this, curStyle, viewStyle));
                }
        }
 
+       @Override
+       public void handleEvent(SetCurrentNetworkViewEvent e) {
+               final CyNetworkView view = e.getNetworkView();
+               
+               if (view != null) {
+                       final VisualStyle viewStyle = vmm.getVisualStyle(view);
+                       final VisualStyle curStyle = (VisualStyle) 
visualStyleComboBox.getSelectedItem();
+                       
+                       if (curStyle == null || !curStyle.equals(viewStyle)) {
+                               switchVS(viewStyle);
+                               eventHelper.fireEvent(new 
SelectedVisualStyleSwitchedEvent(this, curStyle, viewStyle));
+                       }
+               }
+       }
+       
        /**
         * Update panel when removed
         */
        @Override
        public void handleEvent(VisualStyleAboutToBeRemovedEvent e) {
-
                final VisualStyle toBeRemoved = e.getVisualStyleToBeRemoved();
                final VisualStyle selectedStyle = 
manager.getCurrentVisualStyle();
 
@@ -413,31 +413,35 @@
                visualStyleComboBox.removeItem(toBeRemoved);
 
                // Switch to the default style if necessary
-               if(toBeRemoved.equals(selectedStyle) == false)
-                       return;
+               if (toBeRemoved.equals(selectedStyle)) {
+                       final VisualStyle defaultStyle = 
manager.getDefaultStyle();
+                       switchVS(defaultStyle);
+                       
+                       // Apply to the current view
+                       final CyNetworkView view = 
applicationManager.getCurrentNetworkView();
+                       
+                       if (view != null) {
+                               vmm.setVisualStyle(defaultStyle, view);
+                               defaultStyle.apply(view);
+                               view.updateView();
+                       }
                
-               final VisualStyle defaultStyle = manager.getDefaultStyle();
-               switchVS(defaultStyle);
-               // Apply to the current view
-               final CyNetworkView view = 
applicationManager.getCurrentNetworkView();
-               if (view != null)
-                       vmm.setVisualStyle(defaultStyle, view);
-               eventHelper.fireEvent(new 
SelectedVisualStyleSwitchedEvent(this, toBeRemoved, defaultStyle));
+                       eventHelper.fireEvent(new 
SelectedVisualStyleSwitchedEvent(this, toBeRemoved, defaultStyle));
+               }
        }
-
+       
        @Override
        public void handleEvent(VisualStyleSetEvent e) {
                final CyNetworkView view = e.getNetworkView();
                
-               if(view.equals(applicationManager.getCurrentNetworkView())) {
+               if (view.equals(applicationManager.getCurrentNetworkView())) {
                        // Only switch the selected style if the network view 
is the current one 
                        final VisualStyle style = e.getVisualStyle();
                        final VisualStyle lastStyle = (VisualStyle) 
visualStyleComboBox.getSelectedItem();
                        
                        // Also check if the style is not already selected
-                       if(style.equals(lastStyle) == false) {
+                       if (style.equals(lastStyle) == false)
                                eventHelper.fireEvent(new 
SelectedVisualStyleSwitchedEvent(this, lastStyle, style));
-                       }
                }
        }
        
@@ -464,21 +468,9 @@
        @Override
        public void handleEvent(SelectedVisualStyleSwitchedEvent e) {
                final VisualStyle newStyle = e.getNewVisualStyle();
-               
                final Object currentSelected = 
visualStyleComboBox.getSelectedItem();
-               if(newStyle.equals(currentSelected) == false)
-                       this.visualStyleComboBox.setSelectedItem(newStyle);
-       }
-       
-       @Override
-       public void handleEvent(SetCurrentRenderingEngineEvent e) {
                
-               final RenderingEngine<CyNetwork> engine = 
e.getRenderingEngine();
-               final CyNetworkView view = (CyNetworkView) 
engine.getViewModel();
-               final VisualStyle newStyle = vmm.getVisualStyle(view);
-               
-               final Object currentSelected = 
visualStyleComboBox.getSelectedItem();
-               if(newStyle != currentSelected)
+               if (newStyle != null && !newStyle.equals(currentSelected))
                        this.visualStyleComboBox.setSelectedItem(newStyle);
        }
 
@@ -493,11 +485,10 @@
                        SwingUtilities.invokeLater(new Runnable() {
                                @Override
                                public void run() {
-                                       
switchVS(manager.getCurrentVisualStyle(), true);
+                                       
switchVS(manager.getCurrentVisualStyle());
                                }
                        });
                }
-
        }
 
        @Override

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-31 17:28:45 UTC (rev 29411)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/CellEditorEventHandler.java
     2012-05-31 18:37:20 UTC (rev 29412)
@@ -292,17 +292,23 @@
                logger.debug("!! Current Mapping type: " + currentMapping);
 
                if (currentMapping == null || currentMapping.getClass() != 
factory.getMappingFunctionType()) {
-
                        // Mapping does not exist. Need to create new one.
                        final AttributeSet attrSet = 
attrManager.getAttributeSet(applicationManager.getCurrentNetwork(),
                                        vp.getTargetDataType());
                        final Class<?> attributeDataType = 
attrSet.getAttrMap().get(controllingAttrName);
 
                        if (factory.getMappingFunctionType() == 
ContinuousMapping.class) {
-                               if 
(Number.class.isAssignableFrom(attributeDataType) == false) {
+                               if (attributeDataType == null) {
                                        JOptionPane.showMessageDialog(null,
+                                                       "The current table does 
not have the selected column (\"" + controllingAttrName+ "\").\nPlease select 
another column.",
+                                                       "Invalid Column!", 
JOptionPane.WARNING_MESSAGE);
+                                       return;
+                               }
+                               
+                               if 
(!Number.class.isAssignableFrom(attributeDataType)) {
+                                       JOptionPane.showMessageDialog(null,
                                                        "Selected column data 
type is not Number.\nPlease select numerical attributes.",
-                                                       "Incompatible Column 
Type!", JOptionPane.INFORMATION_MESSAGE);
+                                                       "Incompatible Column 
Type!", JOptionPane.WARNING_MESSAGE);
                                        return;
                                }
                        }

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