1 /*
2  * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 package javax.swing.plaf.multi;
26 
27 import java.util.Vector;
28 import javax.swing.plaf.DesktopIconUI;
29 import javax.swing.plaf.ComponentUI;
30 import javax.swing.JComponent;
31 import java.awt.Graphics;
32 import java.awt.Dimension;
33 import javax.accessibility.Accessible;
34 
35 /**
36  * A multiplexing UI used to combine <code>DesktopIconUI</code>s.
37  *
38  * <p>This file was automatically generated by AutoMulti.
39  *
40  * @author  Otto Multey
41  */
42 public class MultiDesktopIconUI extends DesktopIconUI {
43 
44     /**
45      * The vector containing the real UIs.  This is populated
46      * in the call to <code>createUI</code>, and can be obtained by calling
47      * the <code>getUIs</code> method.  The first element is guaranteed to be the real UI
48      * obtained from the default look and feel.
49      */
50     protected Vector<ComponentUI> uis = new Vector<>();
51 
52     /**
53      * Constructs a {@code MultiDesktopIconUI}.
54      */
MultiDesktopIconUI()55     public MultiDesktopIconUI() {}
56 
57 ////////////////////
58 // Common UI methods
59 ////////////////////
60 
61     /**
62      * Returns the list of UIs associated with this multiplexing UI.  This
63      * allows processing of the UIs by an application aware of multiplexing
64      * UIs on components.
65      *
66      * @return an array of the UI delegates
67      */
getUIs()68     public ComponentUI[] getUIs() {
69         return MultiLookAndFeel.uisToArray(uis);
70     }
71 
72 ////////////////////
73 // DesktopIconUI methods
74 ////////////////////
75 
76 ////////////////////
77 // ComponentUI methods
78 ////////////////////
79 
80     /**
81      * Invokes the <code>contains</code> method on each UI handled by this object.
82      *
83      * @return the value obtained from the first UI, which is
84      * the UI obtained from the default <code>LookAndFeel</code>
85      */
contains(JComponent a, int b, int c)86     public boolean contains(JComponent a, int b, int c) {
87         boolean returnValue =
88             uis.elementAt(0).contains(a,b,c);
89         for (int i = 1; i < uis.size(); i++) {
90             uis.elementAt(i).contains(a,b,c);
91         }
92         return returnValue;
93     }
94 
95     /**
96      * Invokes the <code>update</code> method on each UI handled by this object.
97      */
update(Graphics a, JComponent b)98     public void update(Graphics a, JComponent b) {
99         for (int i = 0; i < uis.size(); i++) {
100             uis.elementAt(i).update(a,b);
101         }
102     }
103 
104     /**
105      * Returns a multiplexing UI instance if any of the auxiliary
106      * <code>LookAndFeel</code>s supports this UI.  Otherwise, just returns the
107      * UI object obtained from the default <code>LookAndFeel</code>.
108      *
109      * @param  a the component to create the UI for
110      * @return the UI delegate created
111      */
createUI(JComponent a)112     public static ComponentUI createUI(JComponent a) {
113         MultiDesktopIconUI mui = new MultiDesktopIconUI();
114         return MultiLookAndFeel.createUIs(mui, mui.uis, a);
115     }
116 
117     /**
118      * Invokes the <code>installUI</code> method on each UI handled by this object.
119      */
installUI(JComponent a)120     public void installUI(JComponent a) {
121         for (int i = 0; i < uis.size(); i++) {
122             uis.elementAt(i).installUI(a);
123         }
124     }
125 
126     /**
127      * Invokes the <code>uninstallUI</code> method on each UI handled by this object.
128      */
uninstallUI(JComponent a)129     public void uninstallUI(JComponent a) {
130         for (int i = 0; i < uis.size(); i++) {
131             uis.elementAt(i).uninstallUI(a);
132         }
133     }
134 
135     /**
136      * Invokes the <code>paint</code> method on each UI handled by this object.
137      */
paint(Graphics a, JComponent b)138     public void paint(Graphics a, JComponent b) {
139         for (int i = 0; i < uis.size(); i++) {
140             uis.elementAt(i).paint(a,b);
141         }
142     }
143 
144     /**
145      * Invokes the <code>getPreferredSize</code> method on each UI handled by this object.
146      *
147      * @return the value obtained from the first UI, which is
148      * the UI obtained from the default <code>LookAndFeel</code>
149      */
getPreferredSize(JComponent a)150     public Dimension getPreferredSize(JComponent a) {
151         Dimension returnValue =
152             uis.elementAt(0).getPreferredSize(a);
153         for (int i = 1; i < uis.size(); i++) {
154             uis.elementAt(i).getPreferredSize(a);
155         }
156         return returnValue;
157     }
158 
159     /**
160      * Invokes the <code>getMinimumSize</code> method on each UI handled by this object.
161      *
162      * @return the value obtained from the first UI, which is
163      * the UI obtained from the default <code>LookAndFeel</code>
164      */
getMinimumSize(JComponent a)165     public Dimension getMinimumSize(JComponent a) {
166         Dimension returnValue =
167             uis.elementAt(0).getMinimumSize(a);
168         for (int i = 1; i < uis.size(); i++) {
169             uis.elementAt(i).getMinimumSize(a);
170         }
171         return returnValue;
172     }
173 
174     /**
175      * Invokes the <code>getMaximumSize</code> method on each UI handled by this object.
176      *
177      * @return the value obtained from the first UI, which is
178      * the UI obtained from the default <code>LookAndFeel</code>
179      */
getMaximumSize(JComponent a)180     public Dimension getMaximumSize(JComponent a) {
181         Dimension returnValue =
182             uis.elementAt(0).getMaximumSize(a);
183         for (int i = 1; i < uis.size(); i++) {
184             uis.elementAt(i).getMaximumSize(a);
185         }
186         return returnValue;
187     }
188 
189     /**
190      * Invokes the <code>getAccessibleChildrenCount</code> method on each UI handled by this object.
191      *
192      * @return the value obtained from the first UI, which is
193      * the UI obtained from the default <code>LookAndFeel</code>
194      */
getAccessibleChildrenCount(JComponent a)195     public int getAccessibleChildrenCount(JComponent a) {
196         int returnValue =
197             uis.elementAt(0).getAccessibleChildrenCount(a);
198         for (int i = 1; i < uis.size(); i++) {
199             uis.elementAt(i).getAccessibleChildrenCount(a);
200         }
201         return returnValue;
202     }
203 
204     /**
205      * Invokes the <code>getAccessibleChild</code> method on each UI handled by this object.
206      *
207      * @return the value obtained from the first UI, which is
208      * the UI obtained from the default <code>LookAndFeel</code>
209      */
getAccessibleChild(JComponent a, int b)210     public Accessible getAccessibleChild(JComponent a, int b) {
211         Accessible returnValue =
212             uis.elementAt(0).getAccessibleChild(a,b);
213         for (int i = 1; i < uis.size(); i++) {
214             uis.elementAt(i).getAccessibleChild(a,b);
215         }
216         return returnValue;
217     }
218 }
219