KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > plaf > CompiereLookAndFeel


1 /******************************************************************************
2  * The contents of this file are subject to the Compiere License Version 1.1
3  * ("License"); You may not use this file except in compliance with the License
4  * You may obtain a copy of the License at http://www.compiere.org/license.html
5  * Software distributed under the License is distributed on an "AS IS" basis,
6  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
7  * the specific language governing rights and limitations under the License.
8  * The Original Code is Compiere ERP & CRM Business Solution
9  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
10  * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
11  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
12  * Contributor(s): ______________________________________.
13  *****************************************************************************/

14 package org.compiere.plaf;
15
16 import java.awt.Color JavaDoc;
17 import java.awt.Component JavaDoc;
18
19 import javax.swing.UIDefaults JavaDoc;
20 import javax.swing.plaf.metal.MetalLookAndFeel JavaDoc;
21 import javax.swing.plaf.metal.MetalTheme JavaDoc;
22
23 /**
24  * Compiere Look & Feel.
25  * We wanted a nice UI not the battleship gray based stuff.
26  * I guess a matter of taste.
27  * <code>
28  * :
29  * UIManager.setLookAndFeel(new com.compiere.plaf.CompiereLookAndFeel());
30  * // or UIManager.setLookAndFeel("com.compiere.plaf.CompiereLookAndFeel");
31  * </code>
32  *
33  * @author Jorg Janke
34  * @version $Id: CompiereLookAndFeel.java,v 1.12 2003/09/27 11:08:53 jjanke Exp $
35  */

36 public class CompiereLookAndFeel extends MetalLookAndFeel JavaDoc
37 {
38     /**
39      * Constructor
40      */

41     public CompiereLookAndFeel()
42     {
43         super();
44     // System.setProperty("awt.visualbell", "true");
45
} // CompiereLookAndFeel
46

47     /** The name */
48     public static final String JavaDoc NAME = "Compiere";
49
50     /** The Theme */
51     private static CompiereTheme s_compiereTheme = new CompiereTheme();
52     private static MetalTheme JavaDoc s_theme = s_compiereTheme;
53
54     /** Paint Round Corners */
55     protected static boolean ROUND = false;
56
57     /**
58      * The Name
59      * @return Name
60      */

61     public String JavaDoc getName()
62     {
63         return NAME;
64     } // getName
65

66     /**
67      * The ID
68      * @return Name
69      */

70     public String JavaDoc getID()
71     {
72         return NAME;
73     } // getID
74

75     /**
76      * The Description
77      * @return description
78      */

79     public String JavaDoc getDescription()
80     {
81         return "Compiere Look & Feel - (c) 2001 Jorg Janke";
82     } // getDescription
83

84     /*************************************************************************/
85
86     /**
87      * Get/Create Defaults
88      * @return UI Defaults
89      */

90     public UIDefaults JavaDoc getDefaults()
91     {
92     // System.out.println("CompiereLookAndFeel.getDefaults");
93
// Theme already created/set
94
MetalLookAndFeel.setCurrentTheme(s_theme);
95         UIDefaults JavaDoc defaults = super.getDefaults(); // calls init..Defaults
96
return defaults;
97     } // getDefaults
98

99     /**
100      * Creates the mapping from UI class IDs to <code>ComponentUI</code> classes,
101      * putting the ID-<code>ComponentUI</code> pairs in the passed-in defaults table.
102      * Each <code>JComponent</code> class specifies its own UI class ID string.
103      *
104      * @param table UI Defaults
105      */

106     protected void initClassDefaults(UIDefaults JavaDoc table)
107     {
108     // System.out.println("CompiereLookAndFeel.initClassDefaults");
109
super.initClassDefaults( table);
110         // Overwrite
111
putDefault (table, "PanelUI");
112         putDefault (table, "ButtonUI");
113         putDefault (table, "ToggleButtonUI");
114         putDefault (table, "TabbedPaneUI");
115         putDefault (table, "TableHeaderUI");
116         putDefault (table, "RadioButtonUI");
117         putDefault (table, "CheckBoxUI");
118         putDefault (table, "ComboBoxUI");
119         putDefault (table, "MenuUI");
120         putDefault (table, "MenuBarUI");
121         putDefault (table, "ToolBarUI");
122         putDefault (table, "RootPaneUI");
123         putDefault (table, "ViewportUI");
124         putDefault (table, "SplitPaneUI");
125         putDefault (table, "ScrollPaneUI");
126
127
128
129         /**
130          * CheckBoxMenuItemUI=javax.swing.plaf.basic.BasicCheckBoxMenuItemUI
131          * CheckBoxUI=javax.swing.plaf.metal.MetalCheckBoxUI
132          * ColorChooserUI=javax.swing.plaf.basic.BasicColorChooserUI
133          * DesktopIconUI=javax.swing.plaf.metal.MetalDesktopIconUI
134          * DesktopPaneUI=javax.swing.plaf.basic.BasicDesktopPaneUI
135          * EditorPaneUI=javax.swing.plaf.basic.BasicEditorPaneUI
136          * FileChooserUI=javax.swing.plaf.metal.MetalFileChooserUI
137          * FormattedTextFieldUI=javax.swing.plaf.basic.BasicFormattedTextFieldUI
138          * InternalFrameUI=javax.swing.plaf.metal.MetalInternalFrameUI
139          * LabelUI=javax.swing.plaf.metal.MetalLabelUI
140          * ListUI=javax.swing.plaf.basic.BasicListUI
141          * MenuItemUI=javax.swing.plaf.basic.BasicMenuItemUI
142          * MenuUI=javax.swing.plaf.basic.BasicMenuUI
143          * OptionPaneUI=javax.swing.plaf.basic.BasicOptionPaneUI
144          * PasswordFieldUI=javax.swing.plaf.basic.BasicPasswordFieldUI
145          * PopupMenuSeparatorUI=javax.swing.plaf.metal.MetalPopupMenuSeparatorUI
146          * PopupMenuUI=javax.swing.plaf.basic.BasicPopupMenuUI
147          * ProgressBarUI=javax.swing.plaf.metal.MetalProgressBarUI
148          * RadioButtonMenuItemUI=javax.swing.plaf.basic.BasicRadioButtonMenuItemUI
149          * ScrollBarUI=javax.swing.plaf.metal.MetalScrollBarUI
150          * ScrollPaneUI=javax.swing.plaf.metal.MetalScrollPaneUI
151          * SeparatorUI=javax.swing.plaf.metal.MetalSeparatorUI
152          * SliderUI=javax.swing.plaf.metal.MetalSliderUI
153          * SpinnerUI=javax.swing.plaf.basic.BasicSpinnerUI
154          * TableUI=javax.swing.plaf.basic.BasicTableUI
155          * TextAreaUI=javax.swing.plaf.basic.BasicTextAreaUI
156          * TextFieldUI=javax.swing.plaf.metal.MetalTextFieldUI
157          * TextPaneUI=javax.swing.plaf.basic.BasicTextPaneUI
158          * ToolBarSeparatorUI=javax.swing.plaf.basic.BasicToolBarSeparatorUI
159          * ToolTipUI=javax.swing.plaf.metal.MetalToolTipUI
160          * TreeUI=javax.swing.plaf.metal.MetalTreeUI
161          */

162     } // initClassDefaaults
163

164     /**
165      * Put "uiKey - ClassName" pair in UIDefaults
166      * @param table
167      * @param uiKey
168      */

169     private void putDefault (UIDefaults JavaDoc table, String JavaDoc uiKey)
170     {
171         try
172         {
173             String JavaDoc className = "org.compiere.plaf.Compiere" + uiKey;
174             table.put(uiKey, className);
175         }
176         catch (Exception JavaDoc ex)
177         {
178             ex.printStackTrace();
179         }
180     } // putDefault
181

182     /**
183      * For overwriting Component defaults
184      * @param table
185      */

186     protected void initSystemColorDefaults (UIDefaults JavaDoc table)
187     {
188     // System.out.println("CompiereLookAndFeel.initSystemColorDefaults");
189
super.initSystemColorDefaults( table);
190
191         // we made the color a bit darker
192
// table.put("textHighlight", CompiereUtils.getTranslucentColor(getTextHighlightColor(), 128));
193
} // initSystemColorDefaults
194

195     /**
196      * For overwriting Component defaults
197      * @param table
198      */

199     protected void initComponentDefaults (UIDefaults JavaDoc table)
200     {
201     // System.out.println("CompiereLookAndFeel.initComponentDefaults");
202
super.initComponentDefaults( table);
203
204         // ComboBox defaults
205
Color JavaDoc c = table.getColor("TextField.background");
206         table.put("ComboBox.background", c);
207         table.put("ComboBox.listBackground", c);
208     } // initComponentDefaults
209

210     /*************************************************************************/
211
212     /**
213      * Create Default Thems
214      */

215     protected void createDefaultTheme()
216     {
217         setCurrentTheme(s_theme);
218     } // createDefaultTheme
219

220     /**
221      * Set Current Theme
222      * @param theme metal theme
223      */

224     public static void setCurrentTheme (MetalTheme JavaDoc theme)
225     {
226         if (theme != null)
227             s_theme = theme;
228         MetalLookAndFeel.setCurrentTheme(s_theme);
229     } // setCurrentTheme
230

231     /**
232      * Get Current Theme
233      * @return Metal Theme
234      */

235     public static MetalTheme JavaDoc getCurrentTheme()
236     {
237         return s_theme;
238     } // getCurrentTheme
239

240     /**
241      * Get Compiere Theme
242      * @return Metal Theme
243      */

244     public static CompiereTheme getCompiereTheme()
245     {
246         return s_compiereTheme;
247     } // getCurrentTheme
248

249     /**
250      * Error Feedback.
251      * <p>
252      * Invoked when the user attempts an invalid operation,
253      * such as pasting into an uneditable <code>JTextField</code>
254      * that has focus.
255      * </p>
256      * <p>
257      * If the user has enabled visual error indication on
258      * the desktop, this method will flash the caption bar
259      * of the active window. The user can also set the
260      * property awt.visualbell=true to achieve the same
261      * results.
262      * </p>
263      * @param component Component the error occured in, may be
264      * null indicating the error condition is
265      * not directly associated with a
266      * <code>Component</code>.
267      */

268     public void provideErrorFeedback (Component JavaDoc component)
269     {
270         super.provideErrorFeedback (component);
271     } // provideErrorFeedback
272

273 } // CompiereLookAndFeel
274
Popular Tags