java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
com.marginallyclever.ro3.apps.nodedetailview.CollapsiblePanel
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class CollapsiblePanel extends JPanel
The user-triggered collapsable panel containing the component (trigger) in the titled border
See Also:
  • Constructor Details

    • CollapsiblePanel

      public CollapsiblePanel(JRadioButton component)
      Constructor for an option button controlled collapsible panel. This is useful when a group of options each have unique sub contents. The radio buttons should be created, grouped, and then used to construct their own collapsible panels. This way choosing a different option in the same option group will collapse all unselected options. Expanded panels draw a border around the contents and through the radio button in the fashion of a titled border.
      Parameters:
      component - Radio button that expands and collapses the panel based on if it is selected or not
    • CollapsiblePanel

      public CollapsiblePanel(String text)
      Constructor for a label/button controlled collapsable panel. Displays a clickable title that resembles a native titled border except for an arrow on the right side indicating an expandable panel. The actual border only appears when the panel is expanded.
      Parameters:
      text - Title of the collapsable panel in string format, used to create a button with text and an arrow icon
  • Method Details

    • addCollapseListener

      public void addCollapseListener(CollapsiblePanel.CollapseListener collapseListener)
    • removeCollapseListener

      public boolean removeCollapseListener(CollapsiblePanel.CollapseListener collapseListener)
    • setTitleComponentText

      public void setTitleComponentText(String text)
    • getContentPane

      public JPanel getContentPane()
      This class requires that all content be placed within a designated panel, this method returns that panel.
      Returns:
      panel The content panel
    • setContentPane

      public void setContentPane(JPanel panel)
    • setCollapsed

      public void setCollapsed(boolean collapse)
      Collapses or expands the panel. This is done by adding or removing the content pane, alternating between a frame and empty border, and changing the title arrow. Also, the current state is stored in the collapsed boolean.
      Parameters:
      collapse - When set to true, the panel is collapsed, else it is expanded
    • isCollapsed

      public boolean isCollapsed()
      Returns the current state of the panel, collapsed (true) or expanded (false).
      Returns:
      collapsed Returns true if the panel is collapsed and false if it is expanded