1 package net.sourceforge.pmd.swingui;
2
3 import javax.swing.JButton;
4 import javax.swing.JPanel;
5 import javax.swing.JScrollPane;
6 import javax.swing.JSplitPane;
7 import javax.swing.JTextArea;
8 import javax.swing.UIManager;
9 import javax.swing.border.BevelBorder;
10 import javax.swing.border.CompoundBorder;
11 import javax.swing.border.EmptyBorder;
12 import javax.swing.border.EtchedBorder;
13 import javax.swing.border.LineBorder;
14 import javax.swing.border.TitledBorder;
15 import java.awt.Color;
16 import java.awt.Component;
17 import java.awt.Dimension;
18 import java.awt.FlowLayout;
19 import java.awt.Toolkit;
20 import java.awt.event.ActionListener;
21
22 /***
23 *
24 * @author Donald A. Leckie
25 * @since August 29, 2002
26 * @version $Revision: 1.12 $, $Date: 2003/05/28 18:08:32 $
27 */
28 class ComponentFactory {
29
30 /***
31 ******************************************************************************
32 *
33 * @return
34 */
35 protected static final JPanel createButtonPanel() {
36 JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
37 EmptyBorder emptyBorder = new EmptyBorder(3, 3, 3, 3);
38 EtchedBorder etchedBorder = new EtchedBorder(EtchedBorder.RAISED);
39 CompoundBorder compoundBorder = new CompoundBorder(etchedBorder, emptyBorder);
40 buttonPanel.setBorder(compoundBorder);
41
42
43 return buttonPanel;
44 }
45
46 /***
47 ******************************************************************************
48 *
49 * @param title
50 *
51 * @return
52 */
53 protected static final JButton createButton(String title) {
54 return createButton(title, null, null);
55 }
56
57 /***
58 ******************************************************************************
59 *
60 * @param title
61 *
62 * @return
63 */
64 protected static final JButton createButton(String title, Color background, Color foreground) {
65 JButton button;
66 BevelBorder bevelBorder;
67 EtchedBorder etchedBorder;
68 CompoundBorder compoundBorder;
69 LineBorder lineBorder;
70 Dimension size;
71
72 if (background == null) {
73 background = UIManager.getColor("standardButtonBackground");
74 }
75
76 if (foreground == null) {
77 foreground = UIManager.getColor("standardButtonForeground");
78 }
79
80 button = new JButton(title);
81 lineBorder = new LineBorder(Color.DARK_GRAY, 1, true);
82 bevelBorder = new BevelBorder(BevelBorder.RAISED);
83 compoundBorder = new CompoundBorder(bevelBorder, lineBorder);
84 etchedBorder = new EtchedBorder(EtchedBorder.LOWERED);
85 compoundBorder = new CompoundBorder(etchedBorder, compoundBorder);
86 compoundBorder = new CompoundBorder(lineBorder, compoundBorder);
87 size = new Dimension(80, 30);
88
89 button.setBackground(background);
90 button.setForeground(foreground);
91 button.setBorder(compoundBorder);
92 button.setFont(UIManager.getFont("buttonFont"));
93 button.setSize(size);
94 button.setPreferredSize(size);
95 button.setOpaque(true);
96
97 return button;
98 }
99
100 /***
101 *******************************************************************************
102 *
103 */
104 protected static final JButton createSaveButton(ActionListener actionListener) {
105 Color background = UIManager.getColor("pmdGreen");
106 Color foreground = Color.white;
107 JButton saveButton = ComponentFactory.createButton("Save", background, foreground);
108 saveButton.addActionListener(actionListener);
109
110 return saveButton;
111 }
112
113 /***
114 *******************************************************************************
115 *
116 */
117 protected static final JButton createCancelButton(ActionListener actionListener) {
118 Color background = UIManager.getColor("pmdRed");
119 Color foreground = Color.white;
120 JButton cancelButton = ComponentFactory.createButton("Cancel", background, foreground);
121 cancelButton.addActionListener(actionListener);
122
123 return cancelButton;
124 }
125
126 /***
127 *******************************************************************************
128 *
129 */
130 protected static final JPanel createSaveCancelButtonPanel(ActionListener saveActionListener, ActionListener cancelActionListener) {
131 JPanel buttonPanel = createButtonPanel();
132 buttonPanel.add(createSaveButton(saveActionListener));
133 buttonPanel.add(createCancelButton(cancelActionListener));
134
135 return buttonPanel;
136 }
137
138 /***
139 ******************************************************************************
140 *
141 * @param title
142 *
143 * @return
144 */
145 protected static final TitledBorder createTitledBorder(String title) {
146 TitledBorder titledBorder;
147 EtchedBorder etchedBorder;
148 CompoundBorder compoundBorder;
149
150 etchedBorder = new EtchedBorder(EtchedBorder.LOWERED);
151 compoundBorder = new CompoundBorder(etchedBorder, etchedBorder);
152 titledBorder = new TitledBorder(compoundBorder, title);
153
154 titledBorder.setTitleFont(UIManager.getFont("titleFont"));
155 titledBorder.setTitleColor(UIManager.getColor("pmdBlue"));
156 titledBorder.setTitleJustification(TitledBorder.LEFT);
157
158 return titledBorder;
159 }
160
161 /***
162 ******************************************************************************
163 *
164 * @param view
165 *
166 * @return
167 */
168 protected static final JSplitPane createHorizontalSplitPane(Component leftPane, Component rightPane) {
169 JSplitPane splitPane = new JSplitPane();
170
171 splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
172 splitPane.setResizeWeight(0.5);
173 splitPane.setDividerSize(10);
174 splitPane.setLeftComponent(leftPane);
175 splitPane.setRightComponent(rightPane);
176 splitPane.setOpaque(true);
177
178 return splitPane;
179 }
180
181 /***
182 ******************************************************************************
183 *
184 * @param view
185 *
186 * @return
187 */
188 protected static final JSplitPane createVerticalSplitPane(Component topPane, Component bottomPane) {
189 JSplitPane splitPane = new JSplitPane();
190
191 splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
192 splitPane.setResizeWeight(0.5);
193 splitPane.setDividerSize(10);
194 splitPane.setTopComponent(topPane);
195 splitPane.setBottomComponent(bottomPane);
196 splitPane.setOpaque(true);
197
198 return splitPane;
199 }
200
201 /***
202 ******************************************************************************
203 *
204 * @param view
205 *
206 * @return
207 */
208 protected static final JScrollPane createScrollPane(Component view) {
209 JScrollPane scrollPane = new JScrollPane(view);
210
211 scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
212 scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
213 scrollPane.getViewport().setBackground(Color.white);
214 scrollPane.setAutoscrolls(true);
215 scrollPane.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
216
217 return scrollPane;
218 }
219
220 /***
221 ******************************************************************************
222 *
223 * @return
224 */
225 protected static final JTextArea createTextArea(String text) {
226 JTextArea textArea;
227 BevelBorder bevelBorder;
228 EmptyBorder emptyBorder;
229 CompoundBorder compoundBorder;
230
231 textArea = new JTextArea(text);
232 bevelBorder = new BevelBorder(BevelBorder.LOWERED);
233 emptyBorder = new EmptyBorder(3, 3, 3, 3);
234 compoundBorder = new CompoundBorder(bevelBorder, emptyBorder);
235
236 textArea.setFont(UIManager.getFont("dataFont"));
237 textArea.setBackground(Color.white);
238 textArea.setLineWrap(true);
239 textArea.setWrapStyleWord(true);
240 textArea.setBorder(compoundBorder);
241 textArea.setOpaque(true);
242
243 return textArea;
244 }
245
246 /***
247 *******************************************************************************
248 *
249 * @param windowWidth
250 * @param windowHeight
251 */
252 protected static final Dimension adjustWindowSize(int windowWidth, int windowHeight) {
253 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
254
255 if (windowWidth >= screenSize.width) {
256 windowWidth = screenSize.width - 10;
257 }
258
259 if (windowHeight >= screenSize.height) {
260 windowHeight = screenSize.height - 20;
261 }
262
263 return new Dimension(windowWidth, windowHeight);
264 }
265 }
This page was automatically generated by Maven