Source code: jplot/SmallToggleButton.java
1 /*
2 * Class defining a small toggle button
3 *
4 * Copyright stuff goes here.
5 */
6
7 package jplot;
8
9 import javax.swing.*;
10 import javax.swing.event.*;
11 import javax.swing.border.*;
12 import java.io.*;
13
14 import java.awt.event.*;
15 import java.awt.*;
16
17 /**
18 * Class small button displays a toggle button in the new 'window' style,
19 * i.e., pressed lesses the button in a 'lowered' state, else it
20 * remains raised.
21 */
22 public class SmallToggleButton extends JToggleButton implements ItemListener {
23
24 protected Border raised;
25 protected Border lowered;
26
27 /**
28 * Principal constructor, builds the button with a specific
29 * action and a tool tip.
30 * @param action action performed when pressing
31 * @param tip tool tip
32 */
33 public SmallToggleButton(boolean selected, ImageIcon imgUnselected,
34 ImageIcon imgSelected, String tip) {
35 super(imgUnselected,selected);
36 setHorizontalAlignment(CENTER);
37 setBorderPainted(true);
38 raised = new BevelBorder(BevelBorder.RAISED);
39 lowered = new BevelBorder(BevelBorder.LOWERED);
40 setBorder(selected? lowered : raised);
41 setMargin(new Insets(1,1,1,1));
42 setToolTipText(tip);
43 addItemListener(this);
44 setSelectedIcon(imgSelected);
45 setRequestFocusEnabled(false);
46 }
47
48 public void resetBorder() {
49 setBorder(isSelected()? lowered : raised);
50 }
51
52 public float getAlignmentY() {
53 return 0.5f;
54 }
55
56 public void itemStateChanged(ItemEvent e) {
57 setBorder(isSelected()? lowered : raised);
58 }
59 }