1 /*
2 * Scope: a generic MVC framework.
3 * Copyright (c) 2000-2002, The Scope team
4 * All rights reserved.
5 *
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 *
14 * Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 *
18 * Neither the name "Scope" nor the names of its contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
21 *
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
27 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 *
35 *
36 * $Id: LookAndFeelSelection.java,v 1.4 2002/09/05 15:41:47 ludovicc Exp $
37 */
38 package samples.swing.combobox;
39
40 import java.awt.Component;
41
42 import java.util.*;
43 import javax.swing.*;
44 import org.scopemvc.core.ModelChangeEvent;
45 import org.scopemvc.core.Selector;
46 import org.scopemvc.model.basic.BasicModel;
47
48 /***
49 * @author <A HREF="mailto:daniel.michalik@autel.cz">Daniel Michalik</A>
50 * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A>
51 * @created 05 September 2002
52 * @version $Revision: 1.4 $ $Date: 2002/09/05 15:41:47 $
53 */
54 public class LookAndFeelSelection extends BasicModel {
55
56 /***
57 * TODO: describe of the Field
58 */
59 public final static Selector SELECTED_LF = Selector.fromString("selectedLookAndFeel");
60
61 private LookAndFeel selectedLookAndFeel;
62 private List lookAndFeels = new ArrayList();
63 private Component rootComponent;
64
65 /***
66 * Constructor for the LookAndFeelSelection object
67 */
68 public LookAndFeelSelection() {
69 lookAndFeels.add(new LookAndFeel("Metal", "javax.swing.plaf.metal.MetalLookAndFeel"));
70 lookAndFeels.add(new LookAndFeel("Motif", "com.sun.java.swing.plaf.motif.MotifLookAndFeel"));
71 lookAndFeels.add(new LookAndFeel("Windows", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"));
72 selectedLookAndFeel = (LookAndFeel) lookAndFeels.get(0);
73 }
74
75 /***
76 * Gets the selected look and feel
77 *
78 * @return The selectedLookAndFeel value
79 */
80 public LookAndFeel getSelectedLookAndFeel() {
81 return selectedLookAndFeel;
82 }
83
84 /***
85 * Gets the look and feels
86 *
87 * @return The lookAndFeels value
88 */
89 public List getLookAndFeels() {
90 return lookAndFeels;
91 }
92
93 /***
94 * Gets the look and feels count
95 *
96 * @return The lookAndFeelsCount value
97 */
98 public int getLookAndFeelsCount() {
99 return lookAndFeels.size();
100 }
101
102 /***
103 * Sets the selected look and feel
104 *
105 * @param l The new selectedLookAndFeel value
106 */
107 public void setSelectedLookAndFeel(LookAndFeel l) {
108 selectedLookAndFeel = l;
109 if (l != null) {
110 l.setAsCurrent(rootComponent);
111 }
112 super.fireModelChange(ModelChangeEvent.VALUE_CHANGED, SELECTED_LF);
113 }
114
115 /***
116 * Sets the root component
117 *
118 * @param root The new rootComponent value
119 */
120 public void setRootComponent(Component root) {
121 rootComponent = root;
122 }
123
124 /***
125 * TODO: document the method
126 */
127 public void nextLookAndFeel() {
128 int index = 0;
129 if (selectedLookAndFeel != null) {
130 index = (lookAndFeels.indexOf(selectedLookAndFeel) + 1) % lookAndFeels.size();
131 }
132 setSelectedLookAndFeel((LookAndFeel) lookAndFeels.get(index));
133 }
134 }
This page was automatically generated by Maven