Author: rozagh
Date: 2012-06-25 16:46:17 -0700 (Mon, 25 Jun 2012)
New Revision: 29687
Modified:
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/tunables/JPanelTunableMutator.java
Log:
fixes #1169 adding a repacking function when collapsible panel is expanded or
collapsed.
Modified:
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/tunables/JPanelTunableMutator.java
===================================================================
---
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/tunables/JPanelTunableMutator.java
2012-06-25 23:01:52 UTC (rev 29686)
+++
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/tunables/JPanelTunableMutator.java
2012-06-25 23:46:17 UTC (rev 29687)
@@ -2,7 +2,10 @@
import java.awt.Color;
+import java.awt.Container;
import java.awt.Window;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
@@ -12,6 +15,7 @@
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
+import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
@@ -264,9 +268,27 @@
// Figure out if the collapsable flag is set
final String displayState =
gh.getParams().getProperty("displayState");
if (displayState != null) {
- BasicCollapsiblePanel cp = new
BasicCollapsiblePanel(title);
+ final BasicCollapsiblePanel cp = new
BasicCollapsiblePanel(title);
if
(displayState.equalsIgnoreCase("uncollapsed"))
cp.setCollapsed(false);
+ cp.addPropertyChangeListener(new
PropertyChangeListener() {
+
+ @Override
+ public void
propertyChange(PropertyChangeEvent arg0) {
+ repackEnclosingDialog();
+ }
+
+ /**
+ * Attempts to locate the instance of
the enclosing JDialog. If successful we will call the pack() method on it.
+ */
+ private void repackEnclosingDialog() {
+ Container container =
cp.getParent();
+ while (container != null &&
!(container instanceof JDialog))
+ container =
container.getParent();
+ if (container != null)
+
((JDialog)container).pack();
+ }
+ });
return cp;
// We're not collapsable, so return a normal jpanel
--
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.