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