/* * @(#)ToggleButtonTest.java * * Copyright (c) 2004 Werner Randelshofer, Immensee, Switzerland. * All rights reserved. * * You may not use, copy or modify this file, except in compliance with the * license agreement you entered into with Werner Randelshofer. * For details see accompanying license terms. */ package test; import ch.randelshofer.quaqua.*; import java.awt.*; import java.util.LinkedList; import javax.swing.*; import javax.swing.border.*; /** * ToggleButtonTest. * * @author Werner Randelshofer * @version $Id: ToggleButtonTest.java 418 2011-08-04 07:59:43Z wrandelshofer $ */ public class ToggleButtonTest extends javax.swing.JPanel { /** Creates new form. */ public ToggleButtonTest() { initComponents(); texturedRadio.setVisible(false); capsuleRadio.setVisible(false); // Segmented properties LinkedList<JComponent> todo = new LinkedList<JComponent>(); todo.add(this); while (!todo.isEmpty()) { JComponent jc = todo.removeFirst(); if (jc instanceof JPanel) { for (Component c : jc.getComponents()) { todo.add((JComponent) c); } } else if (jc instanceof JToggleButton) { JToggleButton jb = (JToggleButton) jc; jb.putClientProperty("JButton.buttonType", "segmented"); if (jb.getText().equals("West")) { jb.putClientProperty("JButton.segmentPosition", "first"); } else if (jb.getText().equals("Center")) { jb.putClientProperty("JButton.segmentPosition", "middle"); } else if (jb.getText().equals("East")) { jb.putClientProperty("JButton.segmentPosition", "last"); } else { jb.putClientProperty("JButton.segmentPosition", "only"); } } } // Size properties for (JComponent jc : new JComponent[]{smallToggle1, smallToggle2, smallToggle3, smallToggle4, smallToggle5, smallLabel}) { jc.putClientProperty("JComponent.sizeVariant", "small"); } for (JComponent jc : new JComponent[]{miniToggle1, miniToggle2, miniToggle3, miniToggle4, miniToggle5, miniLabel}) { jc.putClientProperty("JComponent.sizeVariant", "mini"); } } public static void main(String args[]) { try { UIManager.setLookAndFeel(QuaquaManager.getLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } JFrame f = new JFrame("Quaqua Toggle Button Test"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().add(new ToggleButtonTest()); ((JComponent) f.getContentPane()).setBorder(new EmptyBorder(9, 17, 17, 17)); f.pack(); f.setVisible(true); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; typeGroup = new javax.swing.ButtonGroup(); toggle1 = new javax.swing.JToggleButton(); toggle2 = new javax.swing.JToggleButton(); jPanel1 = new javax.swing.JPanel(); regularPanel = new javax.swing.JPanel(); toggle3 = new javax.swing.JToggleButton(); toggle4 = new javax.swing.JToggleButton(); toggle5 = new javax.swing.JToggleButton(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jSeparator1 = new javax.swing.JSeparator(); smallToggle1 = new javax.swing.JToggleButton(); smallToggle2 = new javax.swing.JToggleButton(); smallLabel = new javax.swing.JLabel(); smallPanel = new javax.swing.JPanel(); smallToggle3 = new javax.swing.JToggleButton(); smallToggle4 = new javax.swing.JToggleButton(); smallToggle5 = new javax.swing.JToggleButton(); jSeparator2 = new javax.swing.JSeparator(); miniToggle1 = new javax.swing.JToggleButton(); miniToggle2 = new javax.swing.JToggleButton(); miniLabel = new javax.swing.JLabel(); miniPanel = new javax.swing.JPanel(); miniToggle3 = new javax.swing.JToggleButton(); miniToggle4 = new javax.swing.JToggleButton(); miniToggle5 = new javax.swing.JToggleButton(); jSeparator3 = new javax.swing.JSeparator(); jPanel3 = new javax.swing.JPanel(); segmentedRadio = new javax.swing.JRadioButton(); texturedRadio = new javax.swing.JRadioButton(); squareButton = new javax.swing.JRadioButton(); roundRectRadio = new javax.swing.JRadioButton(); capsuleRadio = new javax.swing.JRadioButton(); gradientButton = new javax.swing.JRadioButton(); stretcherPanel = new javax.swing.JPanel(); FormListener formListener = new FormListener(); setBorder(javax.swing.BorderFactory.createEmptyBorder(16, 17, 17, 17)); setLayout(new java.awt.GridBagLayout()); toggle1.setSelected(true); toggle1.setText("Ångström H"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; add(toggle1, gridBagConstraints); toggle2.setText("Ångström H"); toggle2.setEnabled(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; add(toggle2, gridBagConstraints); jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 2; add(jPanel1, gridBagConstraints); regularPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0)); toggle3.setText("West"); regularPanel.add(toggle3); toggle4.setText("Center"); regularPanel.add(toggle4); toggle5.setText("East"); regularPanel.add(toggle5); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; add(regularPanel, gridBagConstraints); jLabel1.setText("Enabled"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); add(jLabel1, gridBagConstraints); jLabel2.setText("Disabled"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); add(jLabel2, gridBagConstraints); jLabel3.setText("Segmented"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); add(jLabel3, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(8, 0, 8, 0); add(jSeparator1, gridBagConstraints); smallToggle1.setText("Ångström H"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; add(smallToggle1, gridBagConstraints); smallToggle2.setText("Ångström H"); smallToggle2.setEnabled(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; add(smallToggle2, gridBagConstraints); smallLabel.setText("Small"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); add(smallLabel, gridBagConstraints); smallPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0)); smallToggle3.setText("West"); smallPanel.add(smallToggle3); smallToggle4.setText("Center"); smallPanel.add(smallToggle4); smallToggle5.setText("East"); smallPanel.add(smallToggle5); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; add(smallPanel, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(8, 0, 8, 0); add(jSeparator2, gridBagConstraints); miniToggle1.setText("Ångström H"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; add(miniToggle1, gridBagConstraints); miniToggle2.setText("Ångström H"); miniToggle2.setEnabled(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; add(miniToggle2, gridBagConstraints); miniLabel.setText("Mini"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); add(miniLabel, gridBagConstraints); miniPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0)); miniToggle3.setText("West"); miniPanel.add(miniToggle3); miniToggle4.setText("Center"); miniPanel.add(miniToggle4); miniToggle5.setText("East"); miniPanel.add(miniToggle5); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; add(miniPanel, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(8, 0, 8, 0); add(jSeparator3, gridBagConstraints); jPanel3.setLayout(new java.awt.GridBagLayout()); typeGroup.add(segmentedRadio); segmentedRadio.setSelected(true); segmentedRadio.setText("Segmented"); segmentedRadio.setActionCommand("segmented"); segmentedRadio.addActionListener(formListener); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel3.add(segmentedRadio, gridBagConstraints); typeGroup.add(texturedRadio); texturedRadio.setText("Textured"); texturedRadio.setActionCommand("segmentedTextured"); texturedRadio.addActionListener(formListener); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel3.add(texturedRadio, gridBagConstraints); typeGroup.add(squareButton); squareButton.setText("Square"); squareButton.setActionCommand("square"); squareButton.addActionListener(formListener); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel3.add(squareButton, gridBagConstraints); typeGroup.add(roundRectRadio); roundRectRadio.setText("Round Rect"); roundRectRadio.setActionCommand("segmentedRoundRect"); roundRectRadio.addActionListener(formListener); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel3.add(roundRectRadio, gridBagConstraints); typeGroup.add(capsuleRadio); capsuleRadio.setText("Capsule"); capsuleRadio.setActionCommand("segmentedCapsule"); capsuleRadio.addActionListener(formListener); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel3.add(capsuleRadio, gridBagConstraints); typeGroup.add(gradientButton); gradientButton.setText("Gradient"); gradientButton.setActionCommand("gradient"); gradientButton.addActionListener(formListener); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel3.add(gradientButton, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; add(jPanel3, gridBagConstraints); stretcherPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 99; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.weighty = 1.0; add(stretcherPanel, gridBagConstraints); } // Code for dispatching events from components to event handlers. private class FormListener implements java.awt.event.ActionListener { FormListener() {} public void actionPerformed(java.awt.event.ActionEvent evt) { if (evt.getSource() == segmentedRadio) { ToggleButtonTest.this.typeRadioPerformed(evt); } else if (evt.getSource() == texturedRadio) { ToggleButtonTest.this.typeRadioPerformed(evt); } else if (evt.getSource() == squareButton) { ToggleButtonTest.this.typeRadioPerformed(evt); } else if (evt.getSource() == roundRectRadio) { ToggleButtonTest.this.typeRadioPerformed(evt); } else if (evt.getSource() == capsuleRadio) { ToggleButtonTest.this.typeRadioPerformed(evt); } else if (evt.getSource() == gradientButton) { ToggleButtonTest.this.typeRadioPerformed(evt); } } }// </editor-fold>//GEN-END:initComponents private void typeRadioPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_typeRadioPerformed String type=typeGroup.getSelection().getActionCommand(); // Segmented properties LinkedList<JComponent> todo = new LinkedList<JComponent>(); todo.add(this); while (!todo.isEmpty()) { JComponent jc = todo.removeFirst(); if (jc instanceof JPanel) { for (Component c : jc.getComponents()) { todo.add((JComponent) c); } } else if (jc instanceof JToggleButton) { JToggleButton jb = (JToggleButton) jc; jb.putClientProperty("JButton.buttonType", type); } } regularPanel.revalidate(); smallPanel.revalidate(); miniPanel.revalidate(); }//GEN-LAST:event_typeRadioPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JRadioButton capsuleRadio; private javax.swing.JRadioButton gradientButton; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel3; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JLabel miniLabel; private javax.swing.JPanel miniPanel; private javax.swing.JToggleButton miniToggle1; private javax.swing.JToggleButton miniToggle2; private javax.swing.JToggleButton miniToggle3; private javax.swing.JToggleButton miniToggle4; private javax.swing.JToggleButton miniToggle5; private javax.swing.JPanel regularPanel; private javax.swing.JRadioButton roundRectRadio; private javax.swing.JRadioButton segmentedRadio; private javax.swing.JLabel smallLabel; private javax.swing.JPanel smallPanel; private javax.swing.JToggleButton smallToggle1; private javax.swing.JToggleButton smallToggle2; private javax.swing.JToggleButton smallToggle3; private javax.swing.JToggleButton smallToggle4; private javax.swing.JToggleButton smallToggle5; private javax.swing.JRadioButton squareButton; private javax.swing.JPanel stretcherPanel; private javax.swing.JRadioButton texturedRadio; private javax.swing.JToggleButton toggle1; private javax.swing.JToggleButton toggle2; private javax.swing.JToggleButton toggle3; private javax.swing.JToggleButton toggle4; private javax.swing.JToggleButton toggle5; private javax.swing.ButtonGroup typeGroup; // End of variables declaration//GEN-END:variables }