home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / Chip_1998-11_cd.bin / tema / Cafe / jfc.bin / CheckboxPanel.java < prev    next >
Text File  |  1998-02-26  |  8KB  |  243 lines

  1. /*
  2.  * @(#)CheckboxPanel.java    1.6 98/01/31
  3.  * 
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  */
  20.  
  21. import com.sun.java.swing.*;
  22. import com.sun.java.swing.text.*;
  23. import com.sun.java.swing.border.*;
  24.  
  25. import java.awt.*;
  26. import java.awt.event.*;
  27. import java.util.*;
  28.  
  29.  
  30. /**
  31.  * Checkboxes!
  32.  *
  33.  * @version 1.6 01/31/98
  34.  * @author Jeff Dinkins
  35.  */
  36. public class CheckboxPanel extends JPanel 
  37. {
  38.     // The Frame
  39.     SwingSet swing;
  40.  
  41.     ImageIcon bulb1 = SwingSet.sharedInstance().loadImageIcon("images/WebSpice/bulb1.gif","dim light bulb");
  42.     ImageIcon bulb2 = SwingSet.sharedInstance().loadImageIcon("images/WebSpice/bulb2.gif","lit light bulb");
  43.     ImageIcon bulb3 = SwingSet.sharedInstance().loadImageIcon("images/WebSpice/bulb3.gif","greyed out light bulb");
  44.  
  45.     public CheckboxPanel(SwingSet swing) {
  46.     this.swing = swing;
  47.  
  48.     setBorder(swing.emptyBorder5);
  49.     setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
  50.  
  51.     // *************** Checkboxes ****************
  52.     // text buttons
  53.     JPanel textButtons = SwingSet.createHorizontalPanel(false);
  54.     textButtons.setAlignmentX(LEFT_ALIGNMENT);
  55.     Border buttonBorder = new TitledBorder(null, "Text Checkboxes", 
  56.                            TitledBorder.LEFT, TitledBorder.TOP,
  57.                            swing.boldFont);
  58.  
  59.     Border emptyBorder = new EmptyBorder(5,5,5,5);
  60.     Border compoundBorder = new CompoundBorder( buttonBorder, emptyBorder);
  61.     textButtons.setBorder(compoundBorder);
  62.  
  63.     JCheckBox button;
  64.     button = new JCheckBox("One", true);
  65.     button.setToolTipText("This is a Checkbox with Text");
  66.         button.setMnemonic('o');
  67.     swing.checkboxes.addElement(button);
  68.     textButtons.add(button);
  69.     textButtons.add(Box.createRigidArea(swing.hpad10));
  70.     
  71.     button = new JCheckBox("Two");
  72.     button.setToolTipText("This is a Checkbox with Text");
  73.         button.setMnemonic('t');
  74.     swing.checkboxes.addElement(button);
  75.     textButtons.add(button);
  76.     textButtons.add(Box.createRigidArea(swing.hpad10));
  77.  
  78.     button = new JCheckBox("Three");
  79.     button.setToolTipText("This is a Checkbox with Text");
  80.         button.setMnemonic('h');
  81.     swing.checkboxes.addElement(button);
  82.     textButtons.add(button);
  83.  
  84.     
  85.     // image buttons
  86.     JPanel imageButtons = SwingSet.createHorizontalPanel(false);
  87.     imageButtons.setAlignmentX(LEFT_ALIGNMENT);
  88.     buttonBorder = new TitledBorder(null, "Image Checkbox", 
  89.                            TitledBorder.LEFT, TitledBorder.TOP,
  90.                            swing.boldFont);
  91.     compoundBorder = new CompoundBorder(buttonBorder, emptyBorder);
  92.     imageButtons.setBorder(compoundBorder);
  93.  
  94.     button = new JCheckBox("One", bulb1);
  95.     button.setSelectedIcon(bulb2);
  96.     button.setDisabledIcon(bulb3);
  97.     button.getAccessibleContext().setAccessibleDescription("Image of a lightbulb");
  98.     swing.checkboxes.addElement(button);
  99.     imageButtons.add(button);
  100.     imageButtons.add(Box.createRigidArea(swing.hpad10));
  101.  
  102.     button = new JCheckBox("Two", bulb1);
  103.     button.setSelectedIcon(bulb2);
  104.     button.setDisabledIcon(bulb3);
  105.     button.getAccessibleContext().setAccessibleDescription("Image of a lightbulb");
  106.     swing.checkboxes.addElement(button);
  107.     imageButtons.add(button);
  108.     imageButtons.add(Box.createRigidArea(swing.hpad10));
  109.  
  110.     button = new JCheckBox("Three", bulb1);
  111.     button.setSelectedIcon(bulb2);
  112.     button.setDisabledIcon(bulb3);
  113.     button.getAccessibleContext().setAccessibleDescription("Image of a lightbulb");
  114.     swing.checkboxes.addElement(button);
  115.     imageButtons.add(button);
  116.  
  117.     // Add button panels to buttonPanel
  118.     JPanel buttonPanel = swing.createVerticalPanel(true);
  119.     buttonPanel.setAlignmentX(LEFT_ALIGNMENT);
  120.     buttonPanel.setAlignmentY(TOP_ALIGNMENT);
  121.  
  122.  
  123.     buttonPanel.add(textButtons);
  124.     buttonPanel.add(Box.createRigidArea(swing.vpad20));
  125.     buttonPanel.add(imageButtons);
  126.  
  127.     buttonPanel.add(Box.createGlue());
  128.  
  129.  
  130.     // *************** Create the button controls ****************
  131.     JPanel controls = new JPanel() {
  132.         public Dimension getMaximumSize() {
  133.         return new Dimension(300, super.getMaximumSize().height);
  134.         }
  135.     };
  136.     controls.setLayout(new BoxLayout(controls, BoxLayout.Y_AXIS));
  137.     controls.setAlignmentY(TOP_ALIGNMENT);
  138.     controls.setAlignmentX(LEFT_ALIGNMENT);
  139.  
  140.     JPanel buttonControls = swing.createHorizontalPanel(true);
  141.     buttonControls.setAlignmentY(TOP_ALIGNMENT);
  142.     buttonControls.setAlignmentX(LEFT_ALIGNMENT);
  143.  
  144.     JPanel leftColumn = swing.createVerticalPanel(false);
  145.     leftColumn.setAlignmentX(LEFT_ALIGNMENT);
  146.     leftColumn.setAlignmentY(TOP_ALIGNMENT);
  147.  
  148.     JPanel rightColumn = swing.createVerticalPanel(false);
  149.     rightColumn.setAlignmentX(LEFT_ALIGNMENT);
  150.     rightColumn.setAlignmentY(TOP_ALIGNMENT);
  151.  
  152.     buttonControls.add(leftColumn);
  153.     buttonControls.add(Box.createRigidArea(swing.hpad20));
  154.     buttonControls.add(rightColumn);
  155.     buttonControls.add(Box.createRigidArea(swing.hpad20));
  156.  
  157.     controls.add(buttonControls);
  158.  
  159.     // Display Options
  160.     JLabel l = new JLabel("Display Options:");
  161.     leftColumn.add(l);
  162.     l.setFont(swing.boldFont);
  163.  
  164.      JCheckBox bordered = new JCheckBox("Paint Border");
  165.     bordered.setToolTipText("Click here to turn border painting on or off.");
  166.         bordered.setMnemonic('b');
  167.      bordered.addItemListener(swing.buttonDisplayListener);
  168.      leftColumn.add(bordered);
  169.  
  170.      JCheckBox focused = new JCheckBox("Paint Focus");
  171.     focused.setToolTipText("Click here to turn focus painting on or off.");
  172.         focused.setMnemonic('f');
  173.      focused.setSelected(true);
  174.      focused.addItemListener(swing.buttonDisplayListener);
  175.      leftColumn.add(focused);
  176.  
  177.     JCheckBox enabled = new JCheckBox("Enabled");
  178.     enabled.setToolTipText("Click here to enable or disable the checkboxes.");
  179.     enabled.setSelected(true);
  180.         enabled.setMnemonic('e');
  181.     enabled.addItemListener(swing.buttonDisplayListener);
  182.     leftColumn.add(enabled);
  183.  
  184.     leftColumn.add(Box.createRigidArea(swing.vpad20));
  185.  
  186.     
  187.     l = new JLabel("Pad Amount:");
  188.     leftColumn.add(l);
  189.     l.setFont(swing.boldFont);
  190.     
  191.     ButtonGroup group = new ButtonGroup();
  192.     JRadioButton defaultPad = new JRadioButton("Default");
  193.         defaultPad.setMnemonic('d');
  194.     defaultPad.setToolTipText("Uses the default padding between the border and label.");
  195.     group.add(defaultPad);
  196.     defaultPad.setSelected(true);
  197.      defaultPad.addItemListener(swing.buttonPadListener);
  198.     leftColumn.add(defaultPad);
  199.  
  200.     JRadioButton zeroPad = new JRadioButton("0");
  201.     zeroPad.setToolTipText("Uses no padding between the border and label.");
  202.         zeroPad.setMnemonic('0');
  203.     group.add(zeroPad);
  204.      zeroPad.addItemListener(swing.buttonPadListener);
  205.     leftColumn.add(zeroPad);
  206.  
  207.     JRadioButton tenPad = new JRadioButton("10");
  208.     tenPad.setToolTipText("Uses a 10 pixel pad between the border and label.");
  209.         tenPad.setMnemonic('1');
  210.     group.add(tenPad);
  211.      tenPad.addItemListener(swing.buttonPadListener);
  212.     leftColumn.add(tenPad);
  213.  
  214.     leftColumn.add(Box.createRigidArea(swing.vpad20));
  215.  
  216.     
  217.     // *************** Create the layout controls ****************
  218.     // Create Text Position Layout control
  219.     JPanel textPosition = DirectionButton.createDirectionPanel(true, "E", swing.textPositionListener);
  220.     JPanel labelAlignment = DirectionButton.createDirectionPanel(true, "C", swing.labelAlignmentListener);
  221.  
  222.     l = new JLabel("Text Position:");
  223.     rightColumn.add(l);
  224.     l.setFont(swing.boldFont);
  225.      rightColumn.add(textPosition);
  226.  
  227.      rightColumn.add(Box.createRigidArea(swing.vpad20));
  228.  
  229.     l = new JLabel("Content Alignment:");
  230.     rightColumn.add(l);
  231.     l.setFont(swing.boldFont);
  232.      rightColumn.add(labelAlignment);
  233.  
  234.      rightColumn.add(Box.createGlue());
  235.  
  236.     add(buttonPanel);
  237.     add(Box.createRigidArea(swing.hpad10));
  238.      add(controls);
  239.     }
  240.  
  241.     
  242. }
  243.