1 /*
2  * Copyright (c) 1997, 2001, 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.SplitPaneUI;
29 import javax.swing.JSplitPane;
30 import java.awt.Graphics;
31 import javax.swing.plaf.ComponentUI;
32 import javax.swing.JComponent;
33 import java.awt.Dimension;
34 import javax.accessibility.Accessible;
35 
36 /**
37  * A multiplexing UI used to combine <code>SplitPaneUI</code>s.
38  *
39  * <p>This file was automatically generated by AutoMulti.
40  *
41  * @author  Otto Multey
42  */
43 public class MultiSplitPaneUI extends SplitPaneUI {
44 
45     /**
46      * The vector containing the real UIs.  This is populated
47      * in the call to <code>createUI</code>, and can be obtained by calling
48      * the <code>getUIs</code> method.  The first element is guaranteed to be the real UI
49      * obtained from the default look and feel.
50      */
51     protected Vector uis = new Vector();
52 
53 ////////////////////
54 // Common UI methods
55 ////////////////////
56 
57     /**
58      * Returns the list of UIs associated with this multiplexing UI.  This
59      * allows processing of the UIs by an application aware of multiplexing
60      * UIs on components.
61      */
getUIs()62     public ComponentUI[] getUIs() {
63         return MultiLookAndFeel.uisToArray(uis);
64     }
65 
66 ////////////////////
67 // SplitPaneUI methods
68 ////////////////////
69 
70     /**
71      * Invokes the <code>resetToPreferredSizes</code> method on each UI handled by this object.
72      */
resetToPreferredSizes(JSplitPane a)73     public void resetToPreferredSizes(JSplitPane a) {
74         for (int i = 0; i < uis.size(); i++) {
75             ((SplitPaneUI) (uis.elementAt(i))).resetToPreferredSizes(a);
76         }
77     }
78 
79     /**
80      * Invokes the <code>setDividerLocation</code> method on each UI handled by this object.
81      */
setDividerLocation(JSplitPane a, int b)82     public void setDividerLocation(JSplitPane a, int b) {
83         for (int i = 0; i < uis.size(); i++) {
84             ((SplitPaneUI) (uis.elementAt(i))).setDividerLocation(a,b);
85         }
86     }
87 
88     /**
89      * Invokes the <code>getDividerLocation</code> method on each UI handled by this object.
90      *
91      * @return the value obtained from the first UI, which is
92      * the UI obtained from the default <code>LookAndFeel</code>
93      */
getDividerLocation(JSplitPane a)94     public int getDividerLocation(JSplitPane a) {
95         int returnValue =
96             ((SplitPaneUI) (uis.elementAt(0))).getDividerLocation(a);
97         for (int i = 1; i < uis.size(); i++) {
98             ((SplitPaneUI) (uis.elementAt(i))).getDividerLocation(a);
99         }
100         return returnValue;
101     }
102 
103     /**
104      * Invokes the <code>getMinimumDividerLocation</code> method on each UI handled by this object.
105      *
106      * @return the value obtained from the first UI, which is
107      * the UI obtained from the default <code>LookAndFeel</code>
108      */
getMinimumDividerLocation(JSplitPane a)109     public int getMinimumDividerLocation(JSplitPane a) {
110         int returnValue =
111             ((SplitPaneUI) (uis.elementAt(0))).getMinimumDividerLocation(a);
112         for (int i = 1; i < uis.size(); i++) {
113             ((SplitPaneUI) (uis.elementAt(i))).getMinimumDividerLocation(a);
114         }
115         return returnValue;
116     }
117 
118     /**
119      * Invokes the <code>getMaximumDividerLocation</code> method on each UI handled by this object.
120      *
121      * @return the value obtained from the first UI, which is
122      * the UI obtained from the default <code>LookAndFeel</code>
123      */
getMaximumDividerLocation(JSplitPane a)124     public int getMaximumDividerLocation(JSplitPane a) {
125         int returnValue =
126             ((SplitPaneUI) (uis.elementAt(0))).getMaximumDividerLocation(a);
127         for (int i = 1; i < uis.size(); i++) {
128             ((SplitPaneUI) (uis.elementAt(i))).getMaximumDividerLocation(a);
129         }
130         return returnValue;
131     }
132 
133     /**
134      * Invokes the <code>finishedPaintingChildren</code> method on each UI handled by this object.
135      */
finishedPaintingChildren(JSplitPane a, Graphics b)136     public void finishedPaintingChildren(JSplitPane a, Graphics b) {
137         for (int i = 0; i < uis.size(); i++) {
138             ((SplitPaneUI) (uis.elementAt(i))).finishedPaintingChildren(a,b);
139         }
140     }
141 
142 ////////////////////
143 // ComponentUI methods
144 ////////////////////
145 
146     /**
147      * Invokes the <code>contains</code> method on each UI handled by this object.
148      *
149      * @return the value obtained from the first UI, which is
150      * the UI obtained from the default <code>LookAndFeel</code>
151      */
contains(JComponent a, int b, int c)152     public boolean contains(JComponent a, int b, int c) {
153         boolean returnValue =
154             ((ComponentUI) (uis.elementAt(0))).contains(a,b,c);
155         for (int i = 1; i < uis.size(); i++) {
156             ((ComponentUI) (uis.elementAt(i))).contains(a,b,c);
157         }
158         return returnValue;
159     }
160 
161     /**
162      * Invokes the <code>update</code> method on each UI handled by this object.
163      */
update(Graphics a, JComponent b)164     public void update(Graphics a, JComponent b) {
165         for (int i = 0; i < uis.size(); i++) {
166             ((ComponentUI) (uis.elementAt(i))).update(a,b);
167         }
168     }
169 
170     /**
171      * Returns a multiplexing UI instance if any of the auxiliary
172      * <code>LookAndFeel</code>s supports this UI.  Otherwise, just returns the
173      * UI object obtained from the default <code>LookAndFeel</code>.
174      */
createUI(JComponent a)175     public static ComponentUI createUI(JComponent a) {
176         ComponentUI mui = new MultiSplitPaneUI();
177         return MultiLookAndFeel.createUIs(mui,
178                                           ((MultiSplitPaneUI) mui).uis,
179                                           a);
180     }
181 
182     /**
183      * Invokes the <code>installUI</code> method on each UI handled by this object.
184      */
installUI(JComponent a)185     public void installUI(JComponent a) {
186         for (int i = 0; i < uis.size(); i++) {
187             ((ComponentUI) (uis.elementAt(i))).installUI(a);
188         }
189     }
190 
191     /**
192      * Invokes the <code>uninstallUI</code> method on each UI handled by this object.
193      */
uninstallUI(JComponent a)194     public void uninstallUI(JComponent a) {
195         for (int i = 0; i < uis.size(); i++) {
196             ((ComponentUI) (uis.elementAt(i))).uninstallUI(a);
197         }
198     }
199 
200     /**
201      * Invokes the <code>paint</code> method on each UI handled by this object.
202      */
paint(Graphics a, JComponent b)203     public void paint(Graphics a, JComponent b) {
204         for (int i = 0; i < uis.size(); i++) {
205             ((ComponentUI) (uis.elementAt(i))).paint(a,b);
206         }
207     }
208 
209     /**
210      * Invokes the <code>getPreferredSize</code> method on each UI handled by this object.
211      *
212      * @return the value obtained from the first UI, which is
213      * the UI obtained from the default <code>LookAndFeel</code>
214      */
getPreferredSize(JComponent a)215     public Dimension getPreferredSize(JComponent a) {
216         Dimension returnValue =
217             ((ComponentUI) (uis.elementAt(0))).getPreferredSize(a);
218         for (int i = 1; i < uis.size(); i++) {
219             ((ComponentUI) (uis.elementAt(i))).getPreferredSize(a);
220         }
221         return returnValue;
222     }
223 
224     /**
225      * Invokes the <code>getMinimumSize</code> method on each UI handled by this object.
226      *
227      * @return the value obtained from the first UI, which is
228      * the UI obtained from the default <code>LookAndFeel</code>
229      */
getMinimumSize(JComponent a)230     public Dimension getMinimumSize(JComponent a) {
231         Dimension returnValue =
232             ((ComponentUI) (uis.elementAt(0))).getMinimumSize(a);
233         for (int i = 1; i < uis.size(); i++) {
234             ((ComponentUI) (uis.elementAt(i))).getMinimumSize(a);
235         }
236         return returnValue;
237     }
238 
239     /**
240      * Invokes the <code>getMaximumSize</code> method on each UI handled by this object.
241      *
242      * @return the value obtained from the first UI, which is
243      * the UI obtained from the default <code>LookAndFeel</code>
244      */
getMaximumSize(JComponent a)245     public Dimension getMaximumSize(JComponent a) {
246         Dimension returnValue =
247             ((ComponentUI) (uis.elementAt(0))).getMaximumSize(a);
248         for (int i = 1; i < uis.size(); i++) {
249             ((ComponentUI) (uis.elementAt(i))).getMaximumSize(a);
250         }
251         return returnValue;
252     }
253 
254     /**
255      * Invokes the <code>getAccessibleChildrenCount</code> method on each UI handled by this object.
256      *
257      * @return the value obtained from the first UI, which is
258      * the UI obtained from the default <code>LookAndFeel</code>
259      */
getAccessibleChildrenCount(JComponent a)260     public int getAccessibleChildrenCount(JComponent a) {
261         int returnValue =
262             ((ComponentUI) (uis.elementAt(0))).getAccessibleChildrenCount(a);
263         for (int i = 1; i < uis.size(); i++) {
264             ((ComponentUI) (uis.elementAt(i))).getAccessibleChildrenCount(a);
265         }
266         return returnValue;
267     }
268 
269     /**
270      * Invokes the <code>getAccessibleChild</code> method on each UI handled by this object.
271      *
272      * @return the value obtained from the first UI, which is
273      * the UI obtained from the default <code>LookAndFeel</code>
274      */
getAccessibleChild(JComponent a, int b)275     public Accessible getAccessibleChild(JComponent a, int b) {
276         Accessible returnValue =
277             ((ComponentUI) (uis.elementAt(0))).getAccessibleChild(a,b);
278         for (int i = 1; i < uis.size(); i++) {
279             ((ComponentUI) (uis.elementAt(i))).getAccessibleChild(a,b);
280         }
281         return returnValue;
282     }
283 }
284