You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by to...@apache.org on 2007/07/20 10:22:31 UTC
svn commit: r557923 - in /harmony/enhanced/classlib/trunk/modules/beans:
META-INF/ src/main/java/java/beans/
src/test/java/org/apache/harmony/beans/tests/java/beans/
Author: tonywu
Date: Fri Jul 20 01:22:30 2007
New Revision: 557923
URL: http://svn.apache.org/viewvc?view=rev&rev=557923
Log:
Apply patch Harmony-4486 ([classlib][beans] Persistence delegate for swing classes are missing)
Added:
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingAbstractButtonPersistenceDelegate.java (with props)
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingBoxPersistenceDelegate.java (with props)
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingDefaultComboBoxModelPersistenceDelegate.java (with props)
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJFramePersistenceDelegate.java (with props)
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJTabbedPanePersistenceDelegate.java (with props)
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingToolTipManagerPersistenceDelegate.java (with props)
Modified:
harmony/enhanced/classlib/trunk/modules/beans/META-INF/MANIFEST.MF
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Encoder.java
harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/PersistenceDelegateTest.java
Modified: harmony/enhanced/classlib/trunk/modules/beans/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/META-INF/MANIFEST.MF?view=diff&rev=557923&r1=557922&r2=557923
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/META-INF/MANIFEST.MF (original)
+++ harmony/enhanced/classlib/trunk/modules/beans/META-INF/MANIFEST.MF Fri Jul 20 01:22:30 2007
@@ -28,6 +28,8 @@
java.util.regex;resolution:=optional,
javax.accessibility;resolution:=optional,
javax.swing,
+ javax.swing.plaf.basic,
+ javax.swing.tree,
javax.xml.parsers,
org.apache.harmony.kernel.vm,
org.apache.harmony.testframework.serialization;hy_usage=test;resolution:=optional,
Modified: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Encoder.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Encoder.java?view=diff&rev=557923&r1=557922&r2=557923
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Encoder.java (original)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Encoder.java Fri Jul 20 01:22:30 2007
@@ -26,6 +26,8 @@
import java.util.Map;
import java.util.Hashtable;
+import javax.swing.*;
+
import org.apache.harmony.beans.*;
/**
@@ -101,6 +103,12 @@
delegates.put(Rectangle.class, new AwtRectanglePersistenceDelegate());
delegates.put(SystemColor.class, new AwtSystemColorPersistenceDelegate());
delegates.put(TextAttribute.class, new AwtFontTextAttributePersistenceDelegate());
+
+ delegates.put(Box.class, new SwingBoxPersistenceDelegate());
+ delegates.put(JFrame.class, new SwingJFramePersistenceDelegate());
+ delegates.put(JTabbedPane.class, new SwingJTabbedPanePersistenceDelegate());
+ delegates.put(DefaultComboBoxModel.class, new SwingDefaultComboBoxModelPersistenceDelegate());
+ delegates.put(ToolTipManager.class, new SwingToolTipManagerPersistenceDelegate());
}
Added: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingAbstractButtonPersistenceDelegate.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingAbstractButtonPersistenceDelegate.java?view=auto&rev=557923
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingAbstractButtonPersistenceDelegate.java (added)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingAbstractButtonPersistenceDelegate.java Fri Jul 20 01:22:30 2007
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.beans;
+
+import javax.swing.JComponent;
+
+/**
+ * A special internal <code>PersistenceDelegate</code> for java.awt.JComponent
+ * class.
+ *
+ */
+class SwingAbstractButtonPersistenceDelegate extends DefaultPersistenceDelegate{
+ protected void initialize(Class<?> type, Object oldInstance,
+ Object newInstance, Encoder enc) {
+ // Call the initialization of the super type
+ super.initialize(type, oldInstance, newInstance, enc);
+ // Continue only if initializing the "current" type
+ if (type != oldInstance.getClass()) {
+ return;
+ }
+
+
+ JComponent container = (JComponent) oldInstance;
+ int count = container.getComponentCount();
+ for (int i = 0; i < count; i++) {
+ Expression getterExp = new Expression(container,
+ "getComponent", new Object[] { i });
+ try {
+ // Calculate the old value of the property
+ Object oldVal = getterExp.getValue();
+ // Write the getter expression to the encoder
+ enc.writeExpression(getterExp);
+ // Get the target value that exists in the new environment
+ Object targetVal = enc.get(oldVal);
+ // Get the current property value in the new environment
+ Object newVal = null;
+ try {
+ JComponent newJComponent = (JComponent) newInstance;
+ newVal = new Expression(newJComponent.getComponent(i),
+ newJComponent, "getComponent",
+ new Object[] { i }).getValue();
+ } catch (ArrayIndexOutOfBoundsException ex) {
+ // The newInstance has no elements, so current property
+ // value remains null
+ }
+ /*
+ * Make the target value and current property value equivalent
+ * in the new environment
+ */
+ if (null == targetVal) {
+ if (null != newVal) {
+ // Set to null
+ Statement setterStm = new Statement(oldInstance, "add",
+ new Object[] { null });
+ enc.writeStatement(setterStm);
+ }
+ } else {
+ PersistenceDelegate pd = enc
+ .getPersistenceDelegate(targetVal.getClass());
+ if (!pd.mutatesTo(targetVal, newVal)) {
+ Statement setterStm = new Statement(oldInstance, "add",
+ new Object[] { oldVal });
+ enc.writeStatement(setterStm);
+ }
+ }
+ } catch (Exception ex) {
+ enc.getExceptionListener().exceptionThrown(ex);
+ }
+ }
+ }
+}
Propchange: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingAbstractButtonPersistenceDelegate.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingBoxPersistenceDelegate.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingBoxPersistenceDelegate.java?view=auto&rev=557923
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingBoxPersistenceDelegate.java (added)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingBoxPersistenceDelegate.java Fri Jul 20 01:22:30 2007
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.beans;
+
+import javax.swing.Box;
+
+class SwingBoxPersistenceDelegate extends PersistenceDelegate {
+ protected Expression instantiate(Object oldInstance, Encoder enc) {
+ return new Expression(oldInstance, oldInstance.getClass(),
+ "createVerticalBox", null);
+ }
+
+ protected void initialize(Class<?> type, Object oldInstance,
+ Object newInstance, Encoder enc) {
+ Box box = (Box) oldInstance;
+ Expression getterExp = new Expression(box.getAlignmentX(), box,
+ "getAlignmentX", null);
+ try {
+ // Calculate the old value of the property
+ Object oldVal = getterExp.getValue();
+ // Write the getter expression to the encoder
+ enc.writeExpression(getterExp);
+ // Get the target value that exists in the new environment
+ Object targetVal = enc.get(oldVal);
+ // Get the current property value in the new environment
+ Object newVal = null;
+ Box newBox = (Box) newInstance;
+ newVal = new Expression(newBox.getAlignmentX(), newBox,
+ "AlignmentX", null).getValue();
+ /*
+ * Make the target value and current property value equivalent in
+ * the new environment
+ */
+ if (null == targetVal) {
+ if (null != newVal) {
+ // Set to null
+ Statement setterStm = new Statement(oldInstance, "setAlignmentX",
+ new Object[] { null });
+ enc.writeStatement(setterStm);
+ }
+ } else {
+ PersistenceDelegate pd = enc.getPersistenceDelegate(targetVal
+ .getClass());
+ if (!pd.mutatesTo(targetVal, newVal)) {
+ Statement setterStm = new Statement(oldInstance,
+ "setAlignmentX", new Object[] { oldVal });
+ enc.writeStatement(setterStm);
+ }
+ }
+ } catch (Exception ex) {
+ enc.getExceptionListener().exceptionThrown(ex);
+ }
+ }
+}
Propchange: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingBoxPersistenceDelegate.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingDefaultComboBoxModelPersistenceDelegate.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingDefaultComboBoxModelPersistenceDelegate.java?view=auto&rev=557923
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingDefaultComboBoxModelPersistenceDelegate.java (added)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingDefaultComboBoxModelPersistenceDelegate.java Fri Jul 20 01:22:30 2007
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.beans;
+
+import javax.swing.DefaultComboBoxModel;
+
+
+class SwingDefaultComboBoxModelPersistenceDelegate extends
+ DefaultPersistenceDelegate {
+ protected void initialize(Class<?> type, Object oldInstance,
+ Object newInstance, Encoder enc) {
+ super.initialize(type, oldInstance, newInstance, enc);
+
+ DefaultComboBoxModel model = (DefaultComboBoxModel) oldInstance;
+
+ int count = model.getSize();
+ Expression getterExp = null;
+ for (int i = 0; i < count; i++) {
+ getterExp = new Expression(model, "getElementAt", new Object[] { i });
+ try {
+ // Calculate the old value of the property
+ Object oldVal = getterExp.getValue();
+ // Write the getter expression to the encoder
+ enc.writeExpression(getterExp);
+ // Get the target value that exists in the new environment
+ Object targetVal = enc.get(oldVal);
+ // Get the current property value in the new environment
+ Object newVal = null;
+ try {
+ newVal = new Expression(((DefaultComboBoxModel) newInstance), "getElementAt",
+ new Object[] { i }).getValue();
+ } catch (IndexOutOfBoundsException ex) {
+ // The newInstance has no elements, so current property
+ // value remains null
+ }
+ /*
+ * Make the target value and current property value equivalent
+ * in the new environment
+ */
+ Statement setterStm = null;
+ if (null == targetVal) {
+ if (null != newVal) {
+ // Set to null
+ setterStm = new Statement(oldInstance, "addElement",
+ new Object[] { null });
+ enc.writeStatement(setterStm);
+ }
+ } else {
+ PersistenceDelegate pd = enc
+ .getPersistenceDelegate(targetVal.getClass());
+ if (!pd.mutatesTo(targetVal, newVal)) {
+ setterStm = new Statement(oldInstance, "addElement",
+ new Object[] { oldVal });
+ enc.writeStatement(setterStm);
+ }
+ }
+ } catch (Exception ex) {
+ enc.getExceptionListener().exceptionThrown(ex);
+ }
+ }
+ }
+}
Propchange: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingDefaultComboBoxModelPersistenceDelegate.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJFramePersistenceDelegate.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJFramePersistenceDelegate.java?view=auto&rev=557923
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJFramePersistenceDelegate.java (added)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJFramePersistenceDelegate.java Fri Jul 20 01:22:30 2007
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.beans;
+
+import java.awt.Container;
+
+import javax.swing.JFrame;
+
+class SwingJFramePersistenceDelegate extends DefaultPersistenceDelegate {
+ protected void initialize(Class<?> type, Object oldInstance,
+ Object newInstance, Encoder enc) {
+ // Call the initialization of the super type
+ super.initialize(type, oldInstance, newInstance, enc);
+ // Continue only if initializing the "current" type
+ if (type != oldInstance.getClass()) {
+ return;
+ }
+
+
+ JFrame frame = (JFrame) oldInstance;
+ Container container = frame.getContentPane();
+ int count = container.getComponentCount();
+ if(count != 0) {
+ Expression getterExp = new Expression(frame,
+ "getContentPane", null);
+ try {
+ // Calculate the old value of the property
+ Object oldVal = getterExp.getValue();
+ // Write the getter expression to the encoder
+ enc.writeExpression(getterExp);
+ // Get the target value that exists in the new environment
+ Object targetVal = enc.get(oldVal);
+ // Get the current property value in the new environment
+ Object newVal = null;
+ JFrame newFrame = (JFrame) newInstance;
+ newVal = new Expression(newFrame.getContentPane(), newFrame,
+ "getContentPane", null).getValue();
+ /*
+ * Make the target value and current property value equivalent
+ * in the new environment
+ */
+ if (null == targetVal) {
+ if (null != newVal) {
+ // Set to null
+ Statement setterStm = new Statement(oldInstance, "setContentPane",
+ new Object[] { null });
+ enc.writeStatement(setterStm);
+ }
+ } else {
+ PersistenceDelegate pd = enc
+ .getPersistenceDelegate(targetVal.getClass());
+ if (!pd.mutatesTo(targetVal, newVal)) {
+ Statement setterStm = new Statement(oldInstance, "setContentPane",
+ new Object[] { oldVal });
+ enc.writeStatement(setterStm);
+ }
+ }
+ } catch (Exception ex) {
+ enc.getExceptionListener().exceptionThrown(ex);
+ }
+ }
+ }
+}
Propchange: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJFramePersistenceDelegate.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJTabbedPanePersistenceDelegate.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJTabbedPanePersistenceDelegate.java?view=auto&rev=557923
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJTabbedPanePersistenceDelegate.java (added)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJTabbedPanePersistenceDelegate.java Fri Jul 20 01:22:30 2007
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.beans;
+
+import javax.swing.JTabbedPane;
+
+class SwingJTabbedPanePersistenceDelegate extends
+ DefaultPersistenceDelegate {
+ protected void initialize(Class<?> type, Object oldInstance,
+ Object newInstance, Encoder enc) {
+ // Call the initialization of the super type
+ super.initialize(type, oldInstance, newInstance, enc);
+ // Continue only if initializing the "current" type
+ if (type != oldInstance.getClass()) {
+ return;
+ }
+
+
+ JTabbedPane pane = (JTabbedPane) oldInstance;
+ int count = pane.getTabCount();
+ for (int i = 0; i < count; i++) {
+ Expression getterExp = new Expression(pane.getComponentAt(i), pane,
+ "getComponentAt", new Object[] { i });
+ try {
+ // Calculate the old value of the property
+ Object oldVal = getterExp.getValue();
+ // Write the getter expression to the encoder
+ enc.writeExpression(getterExp);
+ // Get the target value that exists in the new environment
+ Object targetVal = enc.get(oldVal);
+ // Get the current property value in the new environment
+ Object newVal = null;
+ try {
+ JTabbedPane newJTabbedPane = (JTabbedPane) newInstance;
+ newVal = new Expression(newJTabbedPane.getComponent(i),
+ newJTabbedPane, "getComponentAt",
+ new Object[] { i }).getValue();
+ } catch (ArrayIndexOutOfBoundsException ex) {
+ // The newInstance has no elements, so current property
+ // value remains null
+ }
+ /*
+ * Make the target value and current property value equivalent
+ * in the new environment
+ */
+ if (null == targetVal) {
+ if (null != newVal) {
+ // Set to null
+ Statement setterStm = new Statement(oldInstance, "addTab",
+ new Object[] { pane.getTitleAt(i), oldVal });
+ enc.writeStatement(setterStm);
+ }
+ } else {
+ PersistenceDelegate pd = enc
+ .getPersistenceDelegate(targetVal.getClass());
+ Statement setterStm = new Statement(oldInstance, "addTab",
+ new Object[] { pane.getTitleAt(i), oldVal });
+ enc.writeStatement(setterStm);
+ }
+ } catch (Exception ex) {
+ enc.getExceptionListener().exceptionThrown(ex);
+ }
+ }
+ }
+}
Propchange: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingJTabbedPanePersistenceDelegate.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingToolTipManagerPersistenceDelegate.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingToolTipManagerPersistenceDelegate.java?view=auto&rev=557923
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingToolTipManagerPersistenceDelegate.java (added)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingToolTipManagerPersistenceDelegate.java Fri Jul 20 01:22:30 2007
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.beans;
+
+class SwingToolTipManagerPersistenceDelegate extends PersistenceDelegate {
+
+ @Override
+ protected Expression instantiate(Object oldInstance, Encoder enc) {
+ return new Expression(oldInstance, oldInstance.getClass(),
+ "sharedInstance", null);
+ }
+
+}
Propchange: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/SwingToolTipManagerPersistenceDelegate.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/PersistenceDelegateTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/PersistenceDelegateTest.java?view=diff&rev=557923&r1=557922&r2=557923
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/PersistenceDelegateTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/PersistenceDelegateTest.java Fri Jul 20 01:22:30 2007
@@ -27,6 +27,9 @@
import java.util.*;
import javax.swing.*;
+import javax.swing.plaf.basic.BasicComboBoxUI;
+import javax.swing.plaf.basic.BasicComboBoxUI.ListDataHandler;
+import javax.swing.tree.DefaultMutableTreeNode;
import junit.framework.TestCase;
@@ -880,6 +883,95 @@
assertEquals(hMap.size(), aHmap.size());
assertEquals(hMap.get(1), aHmap.get(1));
assertEquals("test", aHmap.get(2));
+ }
+
+ public void test_writeObject_javax_swing_JFrame() {
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
+ byteArrayOutputStream));
+
+ JFrame frame = new JFrame("JFrame");
+ frame.setAlwaysOnTop(true);
+ frame.setBounds(1, 1, 100, 100);
+ frame.add(new JMenu("JMenu"));
+ encoder.writeObject(frame);
+ encoder.close();
+ DataInputStream stream = new DataInputStream(new ByteArrayInputStream(
+ byteArrayOutputStream.toByteArray()));
+ XMLDecoder decoder = new XMLDecoder(stream);
+ JFrame aFrame = (JFrame) decoder.readObject();
+ assertEquals(frame.getTitle(), aFrame.getTitle());
+ assertEquals(frame.getBounds(), aFrame.getBounds());
+ }
+
+ public void test_writeObject_javax_swing_DefaultListModel() {
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
+ byteArrayOutputStream));
+
+ DefaultListModel model = new DefaultListModel();
+ model.add(0, 1);
+ model.add(1, 2);
+ ListDataHandler listDataHandler = new BasicComboBoxUI().new ListDataHandler();
+ model.addListDataListener(listDataHandler);
+
+ encoder.writeObject(model);
+ encoder.close();
+ DataInputStream stream = new DataInputStream(new ByteArrayInputStream(
+ byteArrayOutputStream.toByteArray()));
+ XMLDecoder decoder = new XMLDecoder(stream);
+ DefaultListModel aModel = (DefaultListModel) decoder.readObject();
+ assertEquals(model.getSize(), aModel.getSize());
+ }
+
+ public void test_writeObject_javax_swing_DefaultComboBoxModel() {
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
+ byteArrayOutputStream));
+ Object a[] = {1, 2};
+ DefaultComboBoxModel model = new DefaultComboBoxModel(a);
+
+ encoder.writeObject(model);
+ encoder.close();
+ DataInputStream stream = new DataInputStream(new ByteArrayInputStream(
+ byteArrayOutputStream.toByteArray()));
+ XMLDecoder decoder = new XMLDecoder(stream);
+ DefaultComboBoxModel aModel = (DefaultComboBoxModel) decoder.readObject();
+ assertEquals(model.getSize(), aModel.getSize());
+ assertEquals(model.getElementAt(0), aModel.getElementAt(0));
+ assertEquals(model.getElementAt(1), aModel.getElementAt(1));
+ }
+
+ public void test_writeObject_javax_swing_tree_DefaultMutableTreeNode() {
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
+ byteArrayOutputStream));
+ DefaultMutableTreeNode node = new DefaultMutableTreeNode(1);
+
+ encoder.writeObject(node);
+ encoder.close();
+ DataInputStream stream = new DataInputStream(new ByteArrayInputStream(
+ byteArrayOutputStream.toByteArray()));
+ XMLDecoder decoder = new XMLDecoder(stream);
+ DefaultMutableTreeNode aNode = (DefaultMutableTreeNode) decoder.readObject();
+ assertEquals(node.getUserObject(), aNode.getUserObject());
+ }
+
+ public void test_writeObject_javax_swing_ToolTipManager() {
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
+ byteArrayOutputStream));
+ ToolTipManager manager = ToolTipManager.sharedInstance();
+ manager.setDismissDelay(10);
+
+ encoder.writeObject(manager);
+ encoder.close();
+ DataInputStream stream = new DataInputStream(new ByteArrayInputStream(
+ byteArrayOutputStream.toByteArray()));
+ XMLDecoder decoder = new XMLDecoder(stream);
+ ToolTipManager aManager = (ToolTipManager) decoder.readObject();
+ assertEquals(manager, aManager);
+ assertEquals(manager.getDismissDelay(), aManager.getDismissDelay());
}
// <--