1 package org.sape.carbon.services.console; 2 3 import java.awt.Component ; 4 5 import javax.swing.JPanel ; 6 7 11 public class ExpandablePanel extends JPanel { 12 private boolean isContentCollapsed = false; 13 14 15 public ExpandablePanel(String title, Component content) { 16 initComponents(); 17 18 this.contentPanel.add(content); 19 this.contentLabel.setText(title); 20 } 21 22 public void setCollapsed(boolean isCollapsed) { 23 this.contentPanel.setVisible(!isCollapsed); 24 if (isCollapsed) { 25 this.collapseButton.setText("+"); 26 } else { 27 this.collapseButton.setText("-"); 28 } 29 this.repaint(); 30 } 31 32 37 private void initComponents() { jPanel1 = new javax.swing.JPanel (); 39 collapseButton = new javax.swing.JButton (); 40 contentLabel = new javax.swing.JLabel (); 41 contentPanel = new javax.swing.JPanel (); 42 43 setLayout(new java.awt.BorderLayout ()); 44 45 setBorder(new javax.swing.border.CompoundBorder (new javax.swing.border.EtchedBorder (), new javax.swing.border.EmptyBorder (new java.awt.Insets (6, 6, 6, 6)))); 46 jPanel1.setLayout(new java.awt.FlowLayout (java.awt.FlowLayout.LEFT)); 47 48 collapseButton.setFont(new java.awt.Font ("Arial", 0, 10)); 49 collapseButton.setText("-"); 50 collapseButton.setMargin(new java.awt.Insets (2, 2, 2, 2)); 51 collapseButton.setPreferredSize(new java.awt.Dimension (18, 18)); 52 collapseButton.addActionListener(new java.awt.event.ActionListener () { 53 public void actionPerformed(java.awt.event.ActionEvent evt) { 54 collapseButtonActionPerformed(evt); 55 } 56 }); 57 58 jPanel1.add(collapseButton); 59 60 contentLabel.setText("ContentLabel"); 61 contentLabel.setMaximumSize(new java.awt.Dimension (200, 15)); 62 contentLabel.setPreferredSize(new java.awt.Dimension (200, 15)); 63 jPanel1.add(contentLabel); 64 65 add(jPanel1, java.awt.BorderLayout.NORTH); 66 67 contentPanel.setLayout(new javax.swing.BoxLayout (contentPanel, javax.swing.BoxLayout.Y_AXIS)); 68 69 add(contentPanel, java.awt.BorderLayout.CENTER); 70 71 } 73 private void collapseButtonActionPerformed(java.awt.event.ActionEvent evt) { this.isContentCollapsed = !this.isContentCollapsed; 76 77 this.setCollapsed(this.isContentCollapsed); 78 } 80 private void contentToggleButtonActionPerformed(java.awt.event.ActionEvent evt) { } 83 84 private javax.swing.JButton collapseButton; 86 private javax.swing.JLabel contentLabel; 87 private javax.swing.JPanel jPanel1; 88 private javax.swing.JPanel contentPanel; 89 91 } 92 | Popular Tags |