git-svn-id: https://samskivert.googlecode.com/svn/trunk@793 6335cc39-0255-0410-8fd6-9bcaacd3b74c

This commit is contained in:
ray
2002-07-09 21:52:02 +00:00
parent f605a2dc2f
commit 0391ac9277
@@ -1,13 +1,14 @@
// //
// $Id: CollapsiblePanel.java,v 1.1 2002/07/04 04:42:11 ray Exp $ // $Id: CollapsiblePanel.java,v 1.2 2002/07/09 21:52:02 ray Exp $
package com.samskivert.swing; package com.samskivert.swing;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JPanel;
/** /**
* A panel that contains a button which will collapse the rest of the content. * A panel that contains a button which will collapse the rest of the content.
@@ -21,24 +22,8 @@ public class CollapsiblePanel extends JPanel
*/ */
public CollapsiblePanel (JButton trigger) public CollapsiblePanel (JButton trigger)
{ {
_trigger = trigger; setTriggerContainer(trigger);
_text = trigger.getText(); setTrigger(trigger);
VGroupLayout gl = new VGroupLayout(VGroupLayout.NONE);
gl.setOffAxisPolicy(VGroupLayout.STRETCH);
gl.setGap(0);
gl.setJustification(VGroupLayout.TOP);
gl.setOffAxisJustification(VGroupLayout.LEFT);
setLayout(gl);
_trigger.addActionListener(this);
// these are our only two components.
add(_trigger);
add(_content);
// and start us out showing
setCollapsed(false);
} }
/** /**
@@ -49,6 +34,54 @@ public class CollapsiblePanel extends JPanel
this(new JButton(triggertext)); this(new JButton(triggertext));
} }
/**
* Create a collapsible panel to which the trigger button will be
* added later.
*/
public CollapsiblePanel ()
{
_gl = new VGroupLayout(VGroupLayout.NONE);
_gl.setOffAxisPolicy(VGroupLayout.STRETCH);
_gl.setGap(0);
_gl.setJustification(VGroupLayout.TOP);
_gl.setOffAxisJustification(VGroupLayout.LEFT);
setLayout(_gl);
}
/**
* Set a component which contains the trigger button.
* The simple case is to just set the trigger button as this component.
*/
public void setTriggerContainer (JComponent comp)
{
// these are our only two components.
add(comp);
add(_content);
// and start us out not showing
setCollapsed(true);
}
/**
* Set the trigger button.
*/
public void setTrigger (JButton trigger)
{
_trigger = trigger;
_text = trigger.getText();
_trigger.addActionListener(this);
}
/**
* Set the gap between the trigger button and the rest of the content.
* Can be negative for an overlapping effect.
*/
public void setGap (int gap)
{
_gl.setGap(gap);
invalidate();
}
/** /**
* Get the content panel for filling in with sweet content goodness. * Get the content panel for filling in with sweet content goodness.
*/ */
@@ -87,6 +120,9 @@ public class CollapsiblePanel extends JPanel
} }
} }
/** Our layout. */
protected VGroupLayout _gl;
/** The button that triggers collapsion. */ /** The button that triggers collapsion. */
protected JButton _trigger; protected JButton _trigger;