1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.log4j.chainsaw;
18
19 import javax.swing.*;
20 import javax.swing.border.BevelBorder;
21 import javax.swing.border.Border;
22 import javax.swing.border.EmptyBorder;
23 import javax.swing.border.SoftBevelBorder;
24 import java.awt.*;
25 import java.awt.event.MouseEvent;
26 import java.awt.event.MouseListener;
27
28
29
30
31
32
33
34
35
36
37
38
39
40 public class SmallButton extends JButton implements MouseListener {
41 protected Border m_inactive = new EmptyBorder(3, 3, 3, 3);
42 protected Border m_border = m_inactive;
43 protected Border m_lowered = new SoftBevelBorder(BevelBorder.LOWERED);
44 protected Border m_raised = new SoftBevelBorder(BevelBorder.RAISED);
45 protected Insets m_ins = new Insets(4, 4, 4, 4);
46
47 public SmallButton() {
48 super();
49 setBorder(m_inactive);
50 setMargin(m_ins);
51 setRequestFocusEnabled(false);
52 addMouseListener(this);
53 }
54
55 public SmallButton(Action act) {
56 this();
57 setAction(act);
58 setRequestFocusEnabled(false);
59
60
61 addMouseListener(this);
62 }
63
64
65
66
67
68
69 public float getAlignmentY() {
70 return 0.5f;
71 }
72
73
74
75
76
77
78 public Border getBorder() {
79 return m_border;
80 }
81
82
83
84
85
86
87 public Insets getInsets() {
88 return m_ins;
89 }
90
91
92
93
94
95
96 public void mouseClicked(MouseEvent e) {
97 }
98
99
100
101
102
103
104 public void mouseEntered(MouseEvent e) {
105 if (isEnabled()) {
106 m_border = m_raised;
107 setBorder(m_raised);
108 }
109 }
110
111
112
113
114
115
116 public void mouseExited(MouseEvent e) {
117 m_border = m_inactive;
118 setBorder(m_inactive);
119 }
120
121
122
123
124
125
126 public void mousePressed(MouseEvent e) {
127
128 if (isEnabled()) {
129 m_border = m_lowered;
130 setBorder(m_lowered);
131 }
132 }
133
134
135
136
137
138
139 public void mouseReleased(MouseEvent e) {
140 m_border = m_inactive;
141 setBorder(m_inactive);
142 }
143 }