Author: jm
Date: 2012-03-14 08:59:43 -0700 (Wed, 14 Mar 2012)
New Revision: 28531

Modified:
   
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutSettingsDialog.java
   
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/SettingsAction.java
Log:
Fixes #599: Layout Settings Dialog no longer opens multiple instances

Modified: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutSettingsDialog.java
===================================================================
--- 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutSettingsDialog.java
    2012-03-14 15:54:43 UTC (rev 28530)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutSettingsDialog.java
    2012-03-14 15:59:43 UTC (rev 28531)
@@ -30,29 +30,35 @@
 package org.cytoscape.internal.layout.ui;
 
 
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Font;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Properties;
+
+import javax.swing.BorderFactory;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.ListCellRenderer;
+import javax.swing.border.Border;
+import javax.swing.border.EtchedBorder;
+import javax.swing.border.TitledBorder;
+
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.property.CyProperty;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
-
-import org.cytoscape.work.Tunable;
 import org.cytoscape.work.swing.PanelTaskManager;
 
-import javax.swing.*;
-import javax.swing.border.Border;
-import javax.swing.border.EtchedBorder;
-import javax.swing.border.TitledBorder;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.lang.reflect.Field;
-import java.util.Set;
-import java.util.Properties;
 
-
 /**
  *
  * The LayoutSettingsDialog is a dialog that provides an interface into all of 
the
@@ -75,6 +81,7 @@
        private CyApplicationManager appMgr;
        private PanelTaskManager taskManager;
        private CyProperty cytoscapePropertiesServiceRef;
+       private boolean initialized;
 
        /**
         * Creates a new LayoutSettingsDialog object.
@@ -122,10 +129,17 @@
                        taskManager.execute(currentLayout);
                } else {
                        // OK, initialize and display
-                       initialize();
-                       setLocationRelativeTo(desktop.getJFrame());
-                       setVisible(true);
-                       this.pack();
+                       if (isVisible()) {
+                               requestFocus();
+                       } else {
+                               if (!initialized) {
+                                       initialize();
+                                       
setLocationRelativeTo(desktop.getJFrame());
+                                       pack();
+                               }
+                               setVisible(true);
+                               initialized = true;
+                       }
                }
        }
 
@@ -345,6 +359,7 @@
                        // if it's a string, that means it's the instructions
                        if (!(o instanceof String)) {
                                final CyLayoutAlgorithm newLayout = 
(CyLayoutAlgorithm)o;
+                               
newLayout.setNetworkView(appMgr.getCurrentNetworkView());
                                JPanel tunablePanel = 
taskManager.getConfiguration(newLayout);
 
                                if (tunablePanel == null){

Modified: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/SettingsAction.java
===================================================================
--- 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/SettingsAction.java
  2012-03-14 15:54:43 UTC (rev 28530)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/SettingsAction.java
  2012-03-14 15:59:43 UTC (rev 28531)
@@ -50,6 +50,8 @@
        private CyProperty cytoscapePropertiesServiceRef;
        private CyApplicationManager appMgr;
 
+       private LayoutSettingsDialog settingsDialog;
+
        public SettingsAction(final CyLayoutAlgorithmManager cyl, final 
CySwingApplication desk, final CyApplicationManager appMgr, 
                        final PanelTaskManager tm, CyProperty 
cytoscapePropertiesServiceRef)
        {
@@ -61,10 +63,11 @@
                this.desk = desk;
                this.tm = tm;
                this.cytoscapePropertiesServiceRef = 
cytoscapePropertiesServiceRef;
+               
+               settingsDialog = new LayoutSettingsDialog(cyl, desk, appMgr, 
tm, this.cytoscapePropertiesServiceRef);
        }
 
        public void actionPerformed(ActionEvent e) {
-               LayoutSettingsDialog settingsDialog = new 
LayoutSettingsDialog(cyl, desk, appMgr, tm, this.cytoscapePropertiesServiceRef);
                settingsDialog.actionPerformed(e);
        }
 }

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

Reply via email to