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.