View Javadoc
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