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<ComponentUI> 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 uis.elementAt(0).contains(a,b,c); 157 for (int i = 1; i < uis.size(); i++) { 158 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 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 MultiSplitPaneUI mui = new MultiSplitPaneUI(); 182 return MultiLookAndFeel.createUIs(mui, mui.uis, a); 183 } 184 185 /** 186 * Invokes the <code>installUI</code> method on each UI handled by this object. 187 */ 188 public void installUI(JComponent a) { 189 for (int i = 0; i < uis.size(); i++) { 190 uis.elementAt(i).installUI(a); 191 } 192 } 193 194 /** 195 * Invokes the <code>uninstallUI</code> method on each UI handled by this object. 196 */ 197 public void uninstallUI(JComponent a) { 198 for (int i = 0; i < uis.size(); i++) { 199 uis.elementAt(i).uninstallUI(a); 200 } 201 } 202 203 /** 204 * Invokes the <code>paint</code> method on each UI handled by this object. 205 */ 206 public void paint(Graphics a, JComponent b) { 207 for (int i = 0; i < uis.size(); i++) { 208 uis.elementAt(i).paint(a,b); 209 } 210 } 211 212 /** 213 * Invokes the <code>getPreferredSize</code> method on each UI handled by this object. 214 * 215 * @return the value obtained from the first UI, which is 216 * the UI obtained from the default <code>LookAndFeel</code> 217 */ 218 public Dimension getPreferredSize(JComponent a) { 219 Dimension returnValue = 220 uis.elementAt(0).getPreferredSize(a); 221 for (int i = 1; i < uis.size(); i++) { 222 uis.elementAt(i).getPreferredSize(a); 223 } 224 return returnValue; 225 } 226 227 /** 228 * Invokes the <code>getMinimumSize</code> method on each UI handled by this object. 229 * 230 * @return the value obtained from the first UI, which is 231 * the UI obtained from the default <code>LookAndFeel</code> 232 */ 233 public Dimension getMinimumSize(JComponent a) { 234 Dimension returnValue = 235 uis.elementAt(0).getMinimumSize(a); 236 for (int i = 1; i < uis.size(); i++) { 237 uis.elementAt(i).getMinimumSize(a); 238 } 239 return returnValue; 240 } 241 242 /** 243 * Invokes the <code>getMaximumSize</code> method on each UI handled by this object. 244 * 245 * @return the value obtained from the first UI, which is 246 * the UI obtained from the default <code>LookAndFeel</code> 247 */ 248 public Dimension getMaximumSize(JComponent a) { 249 Dimension returnValue = 250 uis.elementAt(0).getMaximumSize(a); 251 for (int i = 1; i < uis.size(); i++) { 252 uis.elementAt(i).getMaximumSize(a); 253 } 254 return returnValue; 255 } 256 257 /** 258 * Invokes the <code>getAccessibleChildrenCount</code> method on each UI handled by this object. 259 * 260 * @return the value obtained from the first UI, which is 261 * the UI obtained from the default <code>LookAndFeel</code> 262 */ 263 public int getAccessibleChildrenCount(JComponent a) { 264 int returnValue = 265 uis.elementAt(0).getAccessibleChildrenCount(a); 266 for (int i = 1; i < uis.size(); i++) { 267 uis.elementAt(i).getAccessibleChildrenCount(a); 268 } 269 return returnValue; 270 } 271 272 /** 273 * Invokes the <code>getAccessibleChild</code> method on each UI handled by this object. 274 * 275 * @return the value obtained from the first UI, which is 276 * the UI obtained from the default <code>LookAndFeel</code> 277 */ 278 public Accessible getAccessibleChild(JComponent a, int b) { 279 Accessible returnValue = 280 uis.elementAt(0).getAccessibleChild(a,b); 281 for (int i = 1; i < uis.size(); i++) { 282 uis.elementAt(i).getAccessibleChild(a,b); 283 } 284 return returnValue; 285 } 286 }