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