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.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 * 62 * @return an array of the UI delegates 63 */ 64 public ComponentUI[] getUIs() { 65 return MultiLookAndFeel.uisToArray(uis); 66 } 67 68 //////////////////// 69 // SplitPaneUI methods 70 //////////////////// 71 72 /** 73 * Invokes the <code>resetToPreferredSizes</code> method on each UI handled by this object. 74 */ 75 public void resetToPreferredSizes(JSplitPane a) { 76 for (int i = 0; i < uis.size(); i++) { 77 ((SplitPaneUI) (uis.elementAt(i))).resetToPreferredSizes(a); 78 } 79 } 80 81 /** 82 * Invokes the <code>setDividerLocation</code> method on each UI handled by this object. 83 */ 84 public void setDividerLocation(JSplitPane a, int b) { 85 for (int i = 0; i < uis.size(); i++) { 86 ((SplitPaneUI) (uis.elementAt(i))).setDividerLocation(a,b); 87 } 88 } 89 90 /** 91 * Invokes the <code>getDividerLocation</code> method on each UI handled by this object. 92 * 93 * @return the value obtained from the first UI, which is 94 * the UI obtained from the default <code>LookAndFeel</code> 95 */ 96 public int getDividerLocation(JSplitPane a) { 97 int returnValue = 98 ((SplitPaneUI) (uis.elementAt(0))).getDividerLocation(a); 99 for (int i = 1; i < uis.size(); i++) { 100 ((SplitPaneUI) (uis.elementAt(i))).getDividerLocation(a); 101 } 102 return returnValue; 103 } 104 105 /** 106 * Invokes the <code>getMinimumDividerLocation</code> method on each UI handled by this object. 107 * 108 * @return the value obtained from the first UI, which is 109 * the UI obtained from the default <code>LookAndFeel</code> 110 */ 111 public int getMinimumDividerLocation(JSplitPane a) { 112 int returnValue = 113 ((SplitPaneUI) (uis.elementAt(0))).getMinimumDividerLocation(a); 114 for (int i = 1; i < uis.size(); i++) { 115 ((SplitPaneUI) (uis.elementAt(i))).getMinimumDividerLocation(a); 116 } 117 return returnValue; 118 } 119 120 /** 121 * Invokes the <code>getMaximumDividerLocation</code> method on each UI handled by this object. 122 * 123 * @return the value obtained from the first UI, which is 124 * the UI obtained from the default <code>LookAndFeel</code> 125 */ 126 public int getMaximumDividerLocation(JSplitPane a) { 127 int returnValue = 128 ((SplitPaneUI) (uis.elementAt(0))).getMaximumDividerLocation(a); 129 for (int i = 1; i < uis.size(); i++) { 130 ((SplitPaneUI) (uis.elementAt(i))).getMaximumDividerLocation(a); 131 } 132 return returnValue; 133 } 134 135 /** 136 * Invokes the <code>finishedPaintingChildren</code> method on each UI handled by this object. 137 */ 138 public void finishedPaintingChildren(JSplitPane a, Graphics b) { 139 for (int i = 0; i < uis.size(); i++) { 140 ((SplitPaneUI) (uis.elementAt(i))).finishedPaintingChildren(a,b); 141 } 142 } 143 144 //////////////////// 145 // ComponentUI methods 146 //////////////////// 147 148 /** 149 * Invokes the <code>contains</code> method on each UI handled by this object. 150 * 151 * @return the value obtained from the first UI, which is 152 * the UI obtained from the default <code>LookAndFeel</code> 153 */ 154 public boolean contains(JComponent a, int b, int c) { 155 boolean returnValue = 156 ((ComponentUI) (uis.elementAt(0))).contains(a,b,c); 157 for (int i = 1; i < uis.size(); i++) { 158 ((ComponentUI) (uis.elementAt(i))).contains(a,b,c); 159 } 160 return returnValue; 161 } 162 163 /** 164 * Invokes the <code>update</code> method on each UI handled by this object. 165 */ 166 public void update(Graphics a, JComponent b) { 167 for (int i = 0; i < uis.size(); i++) { 168 ((ComponentUI) (uis.elementAt(i))).update(a,b); 169 } 170 } 171 172 /** 173 * Returns a multiplexing UI instance if any of the auxiliary 174 * <code>LookAndFeel</code>s supports this UI. Otherwise, just returns the 175 * UI object obtained from the default <code>LookAndFeel</code>. 176 * 177 * @param a the component to create the UI for 178 * @return the UI delegate created 179 */ 180 public static ComponentUI createUI(JComponent a) { 181 ComponentUI mui = new MultiSplitPaneUI(); 182 return MultiLookAndFeel.createUIs(mui, 183 ((MultiSplitPaneUI) mui).uis, 184 a); 185 } 186 187 /** 188 * Invokes the <code>installUI</code> method on each UI handled by this object. 189 */ 190 public void installUI(JComponent a) { 191 for (int i = 0; i < uis.size(); i++) { 192 ((ComponentUI) (uis.elementAt(i))).installUI(a); 193 } 194 } 195 196 /** 197 * Invokes the <code>uninstallUI</code> method on each UI handled by this object. 198 */ 199 public void uninstallUI(JComponent a) { 200 for (int i = 0; i < uis.size(); i++) { 201 ((ComponentUI) (uis.elementAt(i))).uninstallUI(a); 202 } 203 } 204 205 /** 206 * Invokes the <code>paint</code> method on each UI handled by this object. 207 */ 208 public void paint(Graphics a, JComponent b) { 209 for (int i = 0; i < uis.size(); i++) { 210 ((ComponentUI) (uis.elementAt(i))).paint(a,b); 211 } 212 } 213 214 /** 215 * Invokes the <code>getPreferredSize</code> method on each UI handled by this object. 216 * 217 * @return the value obtained from the first UI, which is 218 * the UI obtained from the default <code>LookAndFeel</code> 219 */ 220 public Dimension getPreferredSize(JComponent a) { 221 Dimension returnValue = 222 ((ComponentUI) (uis.elementAt(0))).getPreferredSize(a); 223 for (int i = 1; i < uis.size(); i++) { 224 ((ComponentUI) (uis.elementAt(i))).getPreferredSize(a); 225 } 226 return returnValue; 227 } 228 229 /** 230 * Invokes the <code>getMinimumSize</code> method on each UI handled by this object. 231 * 232 * @return the value obtained from the first UI, which is 233 * the UI obtained from the default <code>LookAndFeel</code> 234 */ 235 public Dimension getMinimumSize(JComponent a) { 236 Dimension returnValue = 237 ((ComponentUI) (uis.elementAt(0))).getMinimumSize(a); 238 for (int i = 1; i < uis.size(); i++) { 239 ((ComponentUI) (uis.elementAt(i))).getMinimumSize(a); 240 } 241 return returnValue; 242 } 243 244 /** 245 * Invokes the <code>getMaximumSize</code> method on each UI handled by this object. 246 * 247 * @return the value obtained from the first UI, which is 248 * the UI obtained from the default <code>LookAndFeel</code> 249 */ 250 public Dimension getMaximumSize(JComponent a) { 251 Dimension returnValue = 252 ((ComponentUI) (uis.elementAt(0))).getMaximumSize(a); 253 for (int i = 1; i < uis.size(); i++) { 254 ((ComponentUI) (uis.elementAt(i))).getMaximumSize(a); 255 } 256 return returnValue; 257 } 258 259 /** 260 * Invokes the <code>getAccessibleChildrenCount</code> method on each UI handled by this object. 261 * 262 * @return the value obtained from the first UI, which is 263 * the UI obtained from the default <code>LookAndFeel</code> 264 */ 265 public int getAccessibleChildrenCount(JComponent a) { 266 int returnValue = 267 ((ComponentUI) (uis.elementAt(0))).getAccessibleChildrenCount(a); 268 for (int i = 1; i < uis.size(); i++) { 269 ((ComponentUI) (uis.elementAt(i))).getAccessibleChildrenCount(a); 270 } 271 return returnValue; 272 } 273 274 /** 275 * Invokes the <code>getAccessibleChild</code> method on each UI handled by this object. 276 * 277 * @return the value obtained from the first UI, which is 278 * the UI obtained from the default <code>LookAndFeel</code> 279 */ 280 public Accessible getAccessibleChild(JComponent a, int b) { 281 Accessible returnValue = 282 ((ComponentUI) (uis.elementAt(0))).getAccessibleChild(a,b); 283 for (int i = 1; i < uis.size(); i++) { 284 ((ComponentUI) (uis.elementAt(i))).getAccessibleChild(a,b); 285 } 286 return returnValue; 287 } 288 }