harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From apetre...@apache.org
Subject svn commit: r541469 [1/2] - in /harmony/enhanced/classlib/trunk/modules/swing/src: main/java/common/javax/swing/ main/java/common/javax/swing/plaf/multi/ main/java/common/org/apache/harmony/x/swing/internal/nls/ test/api/java.injected/javax/swing/ test...
Date Thu, 24 May 2007 23:05:42 GMT
Author: apetrenko
Date: Thu May 24 16:05:37 2007
New Revision: 541469

URL: http://svn.apache.org/viewvc?view=rev&rev=541469
Log:
Patch for HARMONY-3904 "[classlib][swing] javax.swing.plaf.multi package is unimplemented"

Added:
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiButtonUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiColorChooserUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiComboBoxUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopIconUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopPaneUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiFileChooserUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiInternalFrameUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLabelUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiListUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLookAndFeel.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuBarUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuItemUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiOptionPaneUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPanelUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPopupMenuUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiProgressBarUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiRootPaneUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollBarUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollPaneUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiSeparatorUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiSliderUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiSpinnerUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiSplitPaneUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiTabbedPaneUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiTableHeaderUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiTableUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiTextUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiToolBarUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiToolTipUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiTreeUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiViewportUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/plaf/multi/
    harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/plaf/multi/MultiLookAndFeelTest.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/plaf/multi/SyserrButtonUI.java   (with props)
    harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/plaf/multi/SyserrLookAndFeel.java   (with props)
Modified:
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/UIManager.java
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/org/apache/harmony/x/swing/internal/nls/messages.properties
    harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/UIManagerTest.java

Modified: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/UIManager.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/UIManager.java?view=diff&rev=541469&r1=541468&r2=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/UIManager.java (original)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/UIManager.java Thu May 24 16:05:37 2007
@@ -28,14 +28,17 @@
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Properties;
+import java.util.Set;
 
 import javax.swing.border.Border;
 import javax.swing.event.SwingPropertyChangeSupport;
 import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.multi.MultiLookAndFeel;
 
 import org.apache.harmony.x.swing.Utilities;
 
@@ -103,6 +106,9 @@
     private static final String CROSSPLATFORM_LAF = "swing.crossplatformlaf";
     private static final String INSTALLED_LAFS = "swing.installedlafs";
     private static final String INSTALLED_LAF = "swing.installedlaf";
+    private static final String AUXILIARY_LAFS = "swing.auxiliarylaf";
+    private static final String MULTIPLEXING_LAF = "swing.plaf.multiplexinglaf";
+    
 
     private static final String LOOK_AND_FEEL_PROPERTY = "lookAndFeel";
 
@@ -115,6 +121,8 @@
     private static List<LookAndFeelInfo> installedLFs;
     private static SwingPropertyChangeSupport propertyChangeSupport = new SwingPropertyChangeSupport(UIManager.class);
     private static UIDefaults userUIDefaults;
+    private static LookAndFeel multiplexingLaf;
+    private static final Set<LookAndFeel> auxillaryLafs = new HashSet<LookAndFeel>();
 
     static {
         initialize();
@@ -202,8 +210,17 @@
     }
 
     public static ComponentUI getUI(final JComponent comp) {
-        return getDefaults().getUI(comp);
-    }
+		if ((multiplexingLaf != null)
+				&& (!auxillaryLafs.isEmpty())
+				&& (multiplexingLaf.getDefaults().get(comp.getUIClassID()) != null)) {
+			/*
+			 * Note that multiplexingLaf.getDefaults().getUI(comp) may return UI
+			 * from defaultlaf if threre are no auxiliary UIs for the comp
+			 */
+			return multiplexingLaf.getDefaults().getUI(comp);
+		}
+		return getDefaults().getUI(comp);
+	}
 
     public static Object get(final Object obj) {
         return getDefaults().get(obj);
@@ -286,16 +303,31 @@
         propertyChangeSupport.firePropertyChange(LOOK_AND_FEEL_PROPERTY, oldValue, laf);
     }
 
+    /**
+	 * Adds the auxiliary look and feel if the look and feel hasn't been added
+	 * before.
+	 */
     public static void addAuxiliaryLookAndFeel(final LookAndFeel lf) {
-    }
-
-    public static boolean removeAuxiliaryLookAndFeel(final LookAndFeel lf) {
-        return false;
-    }
-
-    public static LookAndFeel[] getAuxiliaryLookAndFeels() {
-        return new LookAndFeel[] {};
-    }
+		if ((lf.isSupportedLookAndFeel())
+				&& (auxillaryLafs.add(lf)/* <-The addition goes here */)) {
+			/*
+			 * Initialization of mutiplexing laf placed here due to relatively
+			 * small amount of progrmas uses multiplexing. So, the multi look and feel
+			 * defined only if there is any auxiliary laf
+			 */
+			if (multiplexingLaf == null) {
+				multiplexingLaf = getMultiPlexingLaf();
+			}
+		}
+	}
+
+	public static boolean removeAuxiliaryLookAndFeel(final LookAndFeel lf) {
+		return auxillaryLafs.remove(lf);
+	}
+
+	public static LookAndFeel[] getAuxiliaryLookAndFeels() {
+		return auxillaryLafs.toArray(new LookAndFeel[] {});
+	}
 
     public static LookAndFeel getLookAndFeel() {
         return lookAndFeel;
@@ -348,8 +380,9 @@
 
     private static void initialize() {
         props = loadSwingProperties();
-        setDefaultLookAndFeel();
+        setDefaultLookAndFeel();        
         installedLFs = new ArrayList<LookAndFeelInfo>(getDefaultInstalledLFs());
+        fillAuxillaryLafs();
         KeyboardFocusManager.getCurrentKeyboardFocusManager()
             .setDefaultFocusTraversalPolicy(new LayoutFocusTraversalPolicy());
     }
@@ -447,6 +480,43 @@
         return null;
     }
 
+    /**
+	 * Verifies the "swing.plaf.multiplexinglaf" and sets the defined look and
+	 * feel as multiplexing. In the case of error of the property is undefined
+	 * returns defaulr multiplexing laf
+	 * 
+	 * @return the look and feel used as Multiplexing
+	 */
+    private static LookAndFeel getMultiPlexingLaf() {
+		if (props.getProperty(MULTIPLEXING_LAF) != null) {
+			try {
+				return (LookAndFeel) Class.forName(MULTIPLEXING_LAF, false,
+						ClassLoader.getSystemClassLoader()).newInstance();
+			} catch (Exception ignored) {
+				// Compartibility
+			}
+		}
+		return new MultiLookAndFeel();
+	}
+
+    /**
+	 * The private method used while UIManager initialization to obtain
+	 * auxillary look and feels if any
+	 */
+	private static void fillAuxillaryLafs() {
+		String auxProperty = props.getProperty(AUXILIARY_LAFS);
+		if (auxProperty != null) {
+			for (String auxLafName : auxProperty.split(",")) { //$NON-NLS-1$
+				try {
+					addAuxiliaryLookAndFeel((LookAndFeel) Class.forName(auxLafName,
+							false, ClassLoader.getSystemClassLoader()).newInstance());
+				} catch (Exception ignored) {
+					// Compartibility
+				}
+			}
+		}
+	}
+    
     /**
      * Default values specified by user
      * @return UIDefaults userUIDefaults

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiButtonUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiButtonUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiButtonUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiButtonUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,111 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ButtonUI;
+import javax.swing.plaf.ComponentUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiButtonUI extends ButtonUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiButtonUI mui = new MultiButtonUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiButtonUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiColorChooserUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiColorChooserUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiColorChooserUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiColorChooserUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,112 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ColorChooserUI;
+import javax.swing.plaf.ComponentUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiColorChooserUI extends ColorChooserUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiColorChooserUI mui = new MultiColorChooserUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiColorChooserUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiComboBoxUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiComboBoxUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiComboBoxUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiComboBoxUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,136 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComboBox;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComboBoxUI;
+import javax.swing.plaf.ComponentUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiComboBoxUI extends ComboBoxUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiComboBoxUI mui = new MultiComboBoxUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+
+	@Override
+	public void setPopupVisible(JComboBox c, boolean isVisible) {
+		for (Object ui : uis) {
+			((ComboBoxUI) ui).setPopupVisible(c, isVisible);
+		}
+	}
+
+	@Override
+	public boolean isPopupVisible(JComboBox c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComboBoxUI) uis.get(i)).isPopupVisible(c);
+		}
+		return ((ComboBoxUI) uis.firstElement()).isPopupVisible(c);		
+	}
+
+	@Override
+	public boolean isFocusTraversable(JComboBox c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComboBoxUI) uis.get(i)).isFocusTraversable(c);
+		}
+		return ((ComboBoxUI) uis.firstElement()).isFocusTraversable(c);
+	}
+
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiComboBoxUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopIconUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopIconUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopIconUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopIconUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,112 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.DesktopIconUI;
+
+/**
+ * All the methods described in public api
+ * */
+public class MultiDesktopIconUI extends DesktopIconUI{
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiDesktopIconUI mui = new MultiDesktopIconUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+	
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopIconUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopPaneUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopPaneUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopPaneUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopPaneUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,112 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.DesktopPaneUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiDesktopPaneUI extends DesktopPaneUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiDesktopPaneUI mui = new MultiDesktopPaneUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiDesktopPaneUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiFileChooserUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiFileChooserUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiFileChooserUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiFileChooserUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,163 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.io.File;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.JFileChooser;
+import javax.swing.filechooser.FileFilter;
+import javax.swing.filechooser.FileView;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.FileChooserUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiFileChooserUI extends FileChooserUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiFileChooserUI mui = new MultiFileChooserUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+
+	@Override
+	public FileFilter getAcceptAllFileFilter(JFileChooser fc) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((FileChooserUI) uis.get(i)).getAcceptAllFileFilter(fc);
+		}
+		return ((FileChooserUI) uis.firstElement()).getAcceptAllFileFilter(fc);
+	}
+
+	@Override
+	public FileView getFileView(JFileChooser fc) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((FileChooserUI) uis.get(i)).getFileView(fc);
+		}
+		return ((FileChooserUI) uis.firstElement()).getFileView(fc);
+	}
+
+	@Override
+	public String getApproveButtonText(JFileChooser fc) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((FileChooserUI) uis.get(i)).getApproveButtonText(fc);
+		}
+		return ((FileChooserUI) uis.firstElement()).getApproveButtonText(fc);
+	}
+
+	@Override
+	public String getDialogTitle(JFileChooser fc) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((FileChooserUI) uis.get(i)).getDialogTitle(fc);
+		}
+		return ((FileChooserUI) uis.firstElement()).getDialogTitle(fc);
+	}
+
+	@Override
+	public void rescanCurrentDirectory(JFileChooser fc) {
+		for (Object ui : uis) {
+			((FileChooserUI) ui).rescanCurrentDirectory(fc);
+		}
+
+	}
+
+	@Override
+	public void ensureFileIsVisible(JFileChooser fc, File f) {
+		for (Object ui : uis) {
+			((FileChooserUI) ui).ensureFileIsVisible(fc, f);
+		}
+	}
+
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiFileChooserUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiInternalFrameUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiInternalFrameUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiInternalFrameUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiInternalFrameUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,111 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.InternalFrameUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiInternalFrameUI extends InternalFrameUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiInternalFrameUI mui = new MultiInternalFrameUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiInternalFrameUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLabelUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLabelUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLabelUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLabelUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,111 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.LabelUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiLabelUI extends LabelUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiLabelUI mui = new MultiLabelUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLabelUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiListUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiListUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiListUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiListUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,138 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.JList;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.ListUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiListUI extends ListUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiListUI mui = new MultiListUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+
+	@Override
+	public int locationToIndex(JList list, Point location) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ListUI) uis.get(i)).locationToIndex(list, location);
+		}
+		return ((ListUI) uis.firstElement()).locationToIndex(list, location);
+	}
+
+	@Override
+	public Point indexToLocation(JList list, int index) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ListUI) uis.get(i)).indexToLocation(list, index);
+		}
+		return ((ListUI) uis.firstElement()).indexToLocation(list, index);
+	}
+
+	@Override
+	public Rectangle getCellBounds(JList list, int index1, int index2) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ListUI) uis.get(i)).getCellBounds(list, index1, index2);
+		}
+		return ((ListUI) uis.firstElement()).getCellBounds(list, index1, index2);
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiListUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLookAndFeel.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLookAndFeel.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLookAndFeel.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLookAndFeel.java Thu May 24 16:05:37 2007
@@ -0,0 +1,128 @@
+package javax.swing.plaf.multi;
+
+import java.util.Vector;
+
+import javax.swing.JComponent;
+import javax.swing.LookAndFeel;
+import javax.swing.UIDefaults;
+import javax.swing.UIManager;
+import javax.swing.plaf.ComponentUI;
+
+import org.apache.harmony.x.swing.internal.nls.Messages;
+
+public class MultiLookAndFeel extends LookAndFeel {
+
+	private static final String prefix = "javax.swing.plaf.multi.Multi"; //$NON-NLS-1$
+	
+	@SuppressWarnings("nls")
+	private static final UIDefaults classDefaults=new UIDefaults(new Object[] { 
+			"InternalFrameUI", prefix + "InternalFrameUI", 
+			"ViewportUI", prefix + "ViewportUI",
+			"ScrollBarUI", prefix + "ScrollBarUI",
+			"ToolTipUI", prefix + "ToolTipUI", 
+			"MenuItemUI", prefix + "MenuItemUI", 
+			"MenuUI", prefix + "MenuUI",
+			"TextAreaUI", prefix + "TextAreaUI", 
+			"PopupMenuUI", prefix + "PopupMenuUI", 
+			"ScrollPaneUI",	prefix + "ScrollPaneUI", 
+			"SliderUI",	prefix + "SliderUI", 
+			"ComboBoxUI", prefix + "ComboBoxUI", 
+			"RadioButtonUI", prefix + "RadioButtonUI", 
+			"FormattedTextFieldUI",	prefix + "FormattedTextFieldUI", 
+			"TreeUI", prefix + "TreeUI", 
+			"MenuBarUI", prefix + "MenuBarUI",
+			"RadioButtonMenuItemUI", prefix + "RadioButtonMenuItemUI",
+			"ProgressBarUI", prefix + "ProgressBarUI", 
+			"ToolBarUI", prefix + "ToolBarUI", 
+			"ColorChooserUI", prefix + "ColorChooserUI",
+			"ToolBarSeparatorUI", prefix + "ToolBarSeparatorUI", 
+			"TabbedPaneUI", prefix + "TabbedPaneUI", 
+			"DesktopPaneUI", prefix + "DesktopPaneUI", 
+			"TableUI", prefix + "TableUI", 
+			"PanelUI", prefix + "PanelUI",
+			"CheckBoxMenuItemUI", prefix + "CheckBoxMenuItemUI",
+			"PasswordFieldUI", prefix + "PasswordFieldUI",
+			"CheckBoxUI", prefix + "CheckBoxUI", 
+			"TableHeaderUI", prefix + "TableHeaderUI", 
+			"SplitPaneUI", prefix + "SplitPaneUI",
+			"EditorPaneUI",	prefix + "EditorPaneUI", 
+			"ListUI", prefix + "ListUI",
+			"SpinnerUI", prefix + "SpinnerUI",
+			"DesktopIconUI", prefix + "DesktopIconUI", 
+			"TextFieldUI", prefix + "TextFieldUI", 
+			"TextPaneUI", prefix + "TextPaneUI", 
+			"LabelUI", prefix + "LabelUI",
+			"ButtonUI", prefix + "ButtonUI", 
+			"ToggleButtonUI", prefix + "ToggleButtonUI", 
+			"OptionPaneUI",	prefix + "OptionPaneUI", 
+			"PopupMenuSeparatorUI", prefix + "PopupMenuSeparatorUI", 
+			"RootPaneUI", prefix + "RootPaneUI", 
+			"SeparatorUI", prefix + "SeparatorUI" });
+
+	@Override
+	public String getName() {
+		return "Multiplexing Look and Feel"; //$NON-NLS-1$
+	}
+
+	@Override
+	public String getID() {
+		return "Multiplex"; //$NON-NLS-1$
+	}
+
+	@Override
+	public String getDescription() {
+		return Messages.getString("swing.B5"); //$NON-NLS-1$
+	}
+
+	@Override
+	public boolean isNativeLookAndFeel() {
+		return false;
+	}
+
+	@Override
+	public boolean isSupportedLookAndFeel() {
+		return true;
+	}
+
+	@SuppressWarnings("unchecked")
+	public static ComponentUI createUIs(ComponentUI mui, Vector uis,
+			JComponent target) {
+		
+		LookAndFeel[] auxLafs = UIManager.getAuxiliaryLookAndFeels();
+		ComponentUI primaryUI = UIManager.getLookAndFeel().getDefaults().getUI(
+				target);
+		ComponentUI auxiliaryUI;
+
+		if (auxLafs != null) {
+			for (LookAndFeel l : auxLafs) {
+				auxiliaryUI = l.getDefaults().getUI(target);
+				if (auxiliaryUI != null) {
+					uis.add(auxiliaryUI);
+				}
+			}
+		}
+		if (uis.isEmpty()) {
+			return primaryUI;
+		}
+		uis.add(0, primaryUI);
+		return mui;
+	}
+
+	@Override
+	public UIDefaults getDefaults() {
+		return classDefaults;
+	}
+
+	@SuppressWarnings("unchecked")
+	protected static ComponentUI[] uisToArray(Vector uis) {
+		if (uis == null) {
+			return new ComponentUI[] {};
+		}
+		if (uis.isEmpty()) {
+			return null;
+		}
+
+		return (ComponentUI[]) uis.toArray(new ComponentUI[0]);
+
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiLookAndFeel.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuBarUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuBarUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuBarUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuBarUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,111 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.MenuBarUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiMenuBarUI extends MenuBarUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiMenuBarUI mui = new MultiMenuBarUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuBarUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuItemUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuItemUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuItemUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuItemUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,111 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.MenuItemUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiMenuItemUI extends MenuItemUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiMenuItemUI mui = new MultiMenuItemUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiMenuItemUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiOptionPaneUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiOptionPaneUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiOptionPaneUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiOptionPaneUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,128 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.JOptionPane;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.OptionPaneUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiOptionPaneUI extends OptionPaneUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiOptionPaneUI mui = new MultiOptionPaneUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+
+	@Override
+	public void selectInitialValue(JOptionPane op) {
+		for (Object ui : uis) {
+			((OptionPaneUI) ui).selectInitialValue(op);
+		}
+
+	}
+
+	@Override
+	public boolean containsCustomComponents(JOptionPane op) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((OptionPaneUI) uis.get(i)).containsCustomComponents(op);
+		}
+		return ((OptionPaneUI) uis.firstElement()).containsCustomComponents(op);
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiOptionPaneUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPanelUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPanelUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPanelUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPanelUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,111 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.PanelUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiPanelUI extends PanelUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiPanelUI mui = new MultiPanelUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPanelUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPopupMenuUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPopupMenuUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPopupMenuUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPopupMenuUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,130 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.event.MouseEvent;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.JPopupMenu;
+import javax.swing.Popup;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.PopupMenuUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiPopupMenuUI extends PopupMenuUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiPopupMenuUI mui = new MultiPopupMenuUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+
+	@Override
+	public Popup getPopup(JPopupMenu popup, int x, int y) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((PopupMenuUI) uis.get(i)).getPopup(popup, x, y);
+		}
+		return ((PopupMenuUI) uis.firstElement()).getPopup(popup, x, y);		
+	}
+
+	@Override
+	public boolean isPopupTrigger(MouseEvent event) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((PopupMenuUI) uis.get(i)).isPopupTrigger(event);
+		}
+		return ((PopupMenuUI) uis.firstElement()).isPopupTrigger(event);	
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiPopupMenuUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiProgressBarUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiProgressBarUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiProgressBarUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiProgressBarUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,111 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.ProgressBarUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiProgressBarUI extends ProgressBarUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiProgressBarUI mui = new MultiProgressBarUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+	
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiProgressBarUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiRootPaneUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiRootPaneUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiRootPaneUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiRootPaneUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,111 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.RootPaneUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiRootPaneUI extends RootPaneUI {
+
+	protected Vector uis = new Vector();
+	
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiRootPaneUI mui = new MultiRootPaneUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiRootPaneUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollBarUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollBarUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollBarUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollBarUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,111 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.ScrollBarUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiScrollBarUI extends ScrollBarUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+
+	public static ComponentUI createUI(JComponent a) {
+		MultiScrollBarUI mui = new MultiScrollBarUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollBarUI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollPaneUI.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollPaneUI.java?view=auto&rev=541469
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollPaneUI.java (added)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollPaneUI.java Thu May 24 16:05:37 2007
@@ -0,0 +1,111 @@
+package javax.swing.plaf.multi;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.util.Vector;
+
+import javax.accessibility.Accessible;
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.ScrollPaneUI;
+
+/**
+ * All the methods described in public api
+ */
+public class MultiScrollPaneUI extends ScrollPaneUI {
+
+	protected Vector uis = new Vector();
+
+	/**
+	 * Used in cycles. numberOfUIs = Correct number of UIs + 1, but the variable
+	 * used in that sence
+	 */
+	private int numberOfUIs;
+	
+	public static ComponentUI createUI(JComponent a) {
+		MultiScrollPaneUI mui = new MultiScrollPaneUI();
+		ComponentUI result = MultiLookAndFeel.createUIs(mui, mui.uis, a);
+		mui.numberOfUIs = mui.uis.size();
+		return result;
+	}
+
+	@Override
+	public boolean contains(JComponent a, int b, int c) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).contains(a, b, c);
+		}
+		return ((ComponentUI) uis.firstElement()).contains(a, b, c);
+	}
+
+	@Override
+	public Accessible getAccessibleChild(JComponent a, int b) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChild(a, b);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChild(a, b);
+	}
+
+	@Override
+	public int getAccessibleChildrenCount(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getAccessibleChildrenCount(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getAccessibleChildrenCount(a);
+	}
+
+	@Override
+	public Dimension getMaximumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMaximumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMaximumSize(a);
+	}
+
+	@Override
+	public Dimension getMinimumSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getMinimumSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getMinimumSize(a);
+	}
+
+	@Override
+	public Dimension getPreferredSize(JComponent a) {
+		for (int i = 1; i < numberOfUIs; i++) {
+			((ComponentUI) uis.get(i)).getPreferredSize(a);
+		}
+		return ((ComponentUI) uis.firstElement()).getPreferredSize(a);
+	}
+
+	public ComponentUI[] getUIs() {
+		return MultiLookAndFeel.uisToArray(uis);
+	}
+
+	@Override
+	public void installUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).installUI(a);
+		}
+	}
+
+	@Override
+	public void paint(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).paint(a, b);
+		}
+	}
+
+	@Override
+	public void uninstallUI(JComponent a) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).uninstallUI(a);
+		}
+	}
+
+	@Override
+	public void update(Graphics a, JComponent b) {
+		for (Object ui : uis) {
+			((ComponentUI) ui).update(a, b);
+		}
+	}
+}

Propchange: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/multi/MultiScrollPaneUI.java
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message