/hg/release/icedtea7-forest-2.2/jdk: 11 new changesets
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Fri Aug 31 12:58:10 PDT 2012
changeset 38f4cc301c2a in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=38f4cc301c2a
author: omajid
date: Tue Aug 14 17:11:11 2012 -0400
7190813: (launcher) RPATH needs to have additional paths
Reviewed-by: anthony, ksrini
changeset 4d176a626258 in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=4d176a626258
author: andrew
date: Wed Aug 29 17:19:20 2012 +0100
RH852051, CVE-2012-4681: Reintroduce PackageAccessible checks removed in 6788531.
changeset a90e8f5ace6b in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=a90e8f5ace6b
author: malenkov
date: Thu Aug 30 18:56:09 2012 +0100
7162473: ConstructorFinder/FieldFinder/MethodFinder gives access to restricted classes
Reviewed-by: art, ahgross
changeset 070e4aeeb3ef in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=070e4aeeb3ef
author: malenkov
date: Tue Jun 19 21:04:48 2012 +0400
7162476: XMLDecoder security issue via ClassFinder
Reviewed-by: art, ahgross
changeset 30ab5974cd22 in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=30ab5974cd22
author: bagiras
date: Tue Jun 19 14:08:24 2012 +0400
7163201: Simplify toolkit internals references
Reviewed-by: art, anthony, ahgross
changeset bf51e11a59c7 in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=bf51e11a59c7
author: malenkov
date: Tue Aug 28 12:00:26 2012 -0700
7194567: Improve long term persistence of java.beans objects
Reviewed-by: ahgross, art
changeset e88725ee1130 in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=e88725ee1130
author: malenkov
date: Thu Aug 02 13:48:22 2012 +0400
7183701: [TEST] closed/java/beans/security/TestClassFinder.java - compilation failed
Reviewed-by: rupashka
changeset 364524d58332 in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=364524d58332
author: asaha
date: Tue Jun 26 22:28:51 2012 -0700
7180036: Build failure in Mac platform caused by fix # 7163201
Reviewed-by: bagiras
changeset 4d15218b7424 in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=4d15218b7424
author: bagiras
date: Wed Jul 25 19:59:07 2012 +0400
7185678: java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java failed with NPE
Reviewed-by: art, ahgross
changeset 5ec35e1b30b0 in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=5ec35e1b30b0
author: malenkov
date: Fri Aug 03 18:00:28 2012 +0400
7182135: Impossible to use some editors directly
Reviewed-by: art, ahgross
changeset 85680f91b6f9 in /hg/release/icedtea7-forest-2.2/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=85680f91b6f9
author: andrew
date: Fri Aug 31 20:57:24 2012 +0100
Added tag icedtea-2.2.2 for changeset 5ec35e1b30b0
diffstat:
.hgtags | 1 +
make/common/Program.gmk | 20 +
make/sun/jawt/Makefile | 7 +
src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java | 15 +-
src/share/classes/com/sun/beans/decoder/MethodElementHandler.java | 6 +-
src/share/classes/com/sun/beans/editors/BooleanEditor.java | 76 +
src/share/classes/com/sun/beans/editors/ByteEditor.java | 48 +
src/share/classes/com/sun/beans/editors/ColorEditor.java | 214 +++++
src/share/classes/com/sun/beans/editors/DoubleEditor.java | 41 +
src/share/classes/com/sun/beans/editors/EnumEditor.java | 143 +++
src/share/classes/com/sun/beans/editors/FloatEditor.java | 48 +
src/share/classes/com/sun/beans/editors/FontEditor.java | 219 +++++
src/share/classes/com/sun/beans/editors/IntegerEditor.java | 42 +
src/share/classes/com/sun/beans/editors/LongEditor.java | 48 +
src/share/classes/com/sun/beans/editors/NumberEditor.java | 44 +
src/share/classes/com/sun/beans/editors/ShortEditor.java | 49 +
src/share/classes/com/sun/beans/editors/StringEditor.java | 74 +
src/share/classes/com/sun/beans/finder/BeanInfoFinder.java | 8 +-
src/share/classes/com/sun/beans/finder/ClassFinder.java | 6 +-
src/share/classes/com/sun/beans/finder/ConstructorFinder.java | 8 +-
src/share/classes/com/sun/beans/finder/FieldFinder.java | 9 +-
src/share/classes/com/sun/beans/finder/MethodFinder.java | 8 +-
src/share/classes/com/sun/beans/finder/PropertyEditorFinder.java | 28 +-
src/share/classes/com/sun/beans/infos/ComponentBeanInfo.java | 62 +
src/share/classes/java/awt/AWTEvent.java | 13 +-
src/share/classes/java/awt/CheckboxMenuItem.java | 8 +
src/share/classes/java/awt/Cursor.java | 20 +-
src/share/classes/java/awt/DefaultKeyboardFocusManager.java | 10 +
src/share/classes/java/awt/EventQueue.java | 12 +-
src/share/classes/java/awt/KeyboardFocusManager.java | 4 +-
src/share/classes/java/awt/Menu.java | 8 +
src/share/classes/java/awt/MenuBar.java | 11 +
src/share/classes/java/awt/MenuComponent.java | 4 +-
src/share/classes/java/awt/MenuItem.java | 25 +-
src/share/classes/java/awt/ScrollPaneAdjustable.java | 9 +
src/share/classes/java/awt/SystemTray.java | 13 +
src/share/classes/java/awt/TrayIcon.java | 20 +-
src/share/classes/java/awt/event/KeyEvent.java | 19 +-
src/share/classes/javax/swing/ClientPropertyKey.java | 11 +
src/share/classes/sun/awt/AWTAccessor.java | 418 +++++++++-
src/share/classes/sun/awt/EmbeddedFrame.java | 71 +-
src/share/classes/sun/awt/SunToolkit.java | 123 +--
src/share/classes/sun/beans/editors/BooleanEditor.java | 50 +-
src/share/classes/sun/beans/editors/ByteEditor.java | 22 +-
src/share/classes/sun/beans/editors/ColorEditor.java | 192 +----
src/share/classes/sun/beans/editors/DoubleEditor.java | 15 +-
src/share/classes/sun/beans/editors/EnumEditor.java | 120 +--
src/share/classes/sun/beans/editors/FloatEditor.java | 22 +-
src/share/classes/sun/beans/editors/FontEditor.java | 197 +----
src/share/classes/sun/beans/editors/IntegerEditor.java | 16 +-
src/share/classes/sun/beans/editors/LongEditor.java | 22 +-
src/share/classes/sun/beans/editors/NumberEditor.java | 18 +-
src/share/classes/sun/beans/editors/ShortEditor.java | 23 +-
src/share/classes/sun/beans/editors/StringEditor.java | 52 +-
src/share/classes/sun/beans/infos/ComponentBeanInfo.java | 62 -
src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java | 29 +-
src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java | 18 +-
src/solaris/classes/sun/awt/X11/XEmbeddingContainer.java | 16 +-
src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java | 26 +-
src/solaris/classes/sun/awt/X11/XMenuBarPeer.java | 28 +-
src/solaris/classes/sun/awt/X11/XMenuItemPeer.java | 73 +-
src/solaris/classes/sun/awt/X11/XMenuPeer.java | 20 +-
src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java | 59 +-
src/solaris/classes/sun/awt/X11/XScrollPanePeer.java | 16 +-
src/solaris/classes/sun/awt/X11/XSystemTrayPeer.java | 49 +-
src/solaris/classes/sun/awt/X11/XTextAreaPeer.java | 6 +-
src/solaris/classes/sun/awt/X11/XTextFieldPeer.java | 6 +-
src/solaris/classes/sun/awt/X11/XTextTransferHelper.java | 47 -
src/solaris/classes/sun/awt/X11/XToolkit.java | 30 +-
src/solaris/classes/sun/awt/X11/XWindow.java | 48 +-
src/solaris/classes/sun/awt/X11/XlibWrapper.java | 12 +-
src/windows/classes/sun/awt/windows/WCanvasPeer.java | 1 -
src/windows/classes/sun/awt/windows/WMouseDragGestureRecognizer.java | 2 -
src/windows/classes/sun/awt/windows/WPopupMenuPeer.java | 2 -
src/windows/classes/sun/awt/windows/WWindowPeer.java | 2 -
test/java/beans/Introspector/4520754/Test4520754.java | 4 +-
test/java/beans/PropertyEditor/6380849/TestPropertyEditor.java | 26 +-
test/java/beans/PropertyEditor/Test6963811.java | 6 +-
test/tools/launcher/RunpathTest.java | 84 ++
79 files changed, 2014 insertions(+), 1430 deletions(-)
diffs (truncated from 4956 to 500 lines):
diff -r 6c3b742b735d -r 85680f91b6f9 .hgtags
--- a/.hgtags Fri Jun 08 14:09:13 2012 +0100
+++ b/.hgtags Fri Aug 31 20:57:24 2012 +0100
@@ -179,3 +179,4 @@
0000000000000000000000000000000000000000 icedtea-2.2.1
0000000000000000000000000000000000000000 icedtea-2.2.1
1870f7528cbf59c29224dab4ff84514aee20875e icedtea-2.2.1
+5ec35e1b30b02b11a13cbebaa8e23520c5ca89cc icedtea-2.2.2
diff -r 6c3b742b735d -r 85680f91b6f9 make/common/Program.gmk
--- a/make/common/Program.gmk Fri Jun 08 14:09:13 2012 +0100
+++ b/make/common/Program.gmk Fri Aug 31 20:57:24 2012 +0100
@@ -131,6 +131,26 @@
endif # PLATFORM
#
+# Applications expect to be able to link against libjawt without invoking
+# System.loadLibrary("jawt") first. This was the behaviour described in the
+# devloper documentation of JAWT and what worked with OpenJDK6.
+#
+ifeq ($(PLATFORM), solaris)
+ ifeq ($(ARCH_DATA_MODEL), 32)
+ LDFLAGS += -R \$$ORIGIN/../lib/$(LIBARCH)
+ LDFLAGS += -R \$$ORIGIN/../jre/lib/$(LIBARCH)
+ else # ! ARCH_DATA_MODEL 64-bit
+ LDFLAGS += -R \$$ORIGIN/../../lib/$(LIBARCH)
+ LDFLAGS += -R \$$ORIGIN/../../jre/lib/$(LIBARCH)
+ endif # ARCH_DATA_MODEL
+endif # PLATFORM SOLARIS
+ifeq ($(PLATFORM), linux)
+ LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)
+ LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../jre/lib/$(LIBARCH)
+endif # PLATFORM LINUX
+
+
+#
# Launcher specific files.
#
FILES_o = $(OBJDIR)/main.$(OBJECT_SUFFIX)
diff -r 6c3b742b735d -r 85680f91b6f9 make/sun/jawt/Makefile
--- a/make/sun/jawt/Makefile Fri Jun 08 14:09:13 2012 +0100
+++ b/make/sun/jawt/Makefile Fri Aug 31 20:57:24 2012 +0100
@@ -31,6 +31,13 @@
include $(BUILDDIR)/common/Defs.gmk
#
+# libjawt links to other programs, but nothing links to it directly. An RPATH
+# entry has been added to the launcher so third-party programs linked against
+# it will be able to find it no matter where the JDK or the third-party program
+# is located.
+#
+
+#
# Files
#
ifeq ($(PLATFORM), windows)
diff -r 6c3b742b735d -r 85680f91b6f9 src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java
--- a/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Fri Jun 08 14:09:13 2012 +0100
+++ b/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Fri Aug 31 20:57:24 2012 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -42,6 +42,7 @@
import sun.awt.*;
import sun.lwawt.*;
import sun.lwawt.LWWindowPeer.PeerType;
+import sun.security.action.GetBooleanAction;
class NamedCursor extends Cursor {
@@ -79,14 +80,6 @@
}
}
- static String getSystemProperty(final String name, final String deflt) {
- return AccessController.doPrivileged (new PrivilegedAction<String>() {
- public String run() {
- return System.getProperty(name, deflt);
- }
- });
- }
-
public LWCToolkit() {
SunToolkit.setDataTransfererClassName("sun.lwawt.macosx.CDataTransferer");
@@ -697,8 +690,8 @@
*/
public synchronized static boolean getSunAwtDisableCALayers() {
if (sunAwtDisableCALayers == null) {
- sunAwtDisableCALayers =
- getBooleanSystemProperty("sun.awt.disableCALayers");
+ sunAwtDisableCALayers = AccessController.doPrivileged(
+ new GetBooleanAction("sun.awt.disableCALayers"));
}
return sunAwtDisableCALayers.booleanValue();
}
diff -r 6c3b742b735d -r 85680f91b6f9 src/share/classes/com/sun/beans/decoder/MethodElementHandler.java
--- a/src/share/classes/com/sun/beans/decoder/MethodElementHandler.java Fri Jun 08 14:09:13 2012 +0100
+++ b/src/share/classes/com/sun/beans/decoder/MethodElementHandler.java Fri Aug 31 20:57:24 2012 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,8 @@
import java.lang.reflect.Method;
+import sun.reflect.misc.MethodUtil;
+
/**
* This class is intended to handle <method> element.
* It describes invocation of the method.
@@ -101,7 +103,7 @@
if (method.isVarArgs()) {
args = getArguments(args, method.getParameterTypes());
}
- Object value = method.invoke(bean, args);
+ Object value = MethodUtil.invoke(method, bean, args);
return method.getReturnType().equals(void.class)
? ValueObjectImpl.VOID
: ValueObjectImpl.create(value);
diff -r 6c3b742b735d -r 85680f91b6f9 src/share/classes/com/sun/beans/editors/BooleanEditor.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/beans/editors/BooleanEditor.java Fri Aug 31 20:57:24 2012 +0100
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.beans.editors;
+
+/**
+ * Property editor for a java builtin "boolean" type.
+ */
+
+import java.beans.*;
+
+public class BooleanEditor extends PropertyEditorSupport {
+
+
+ public String getJavaInitializationString() {
+ Object value = getValue();
+ return (value != null)
+ ? value.toString()
+ : "null";
+ }
+
+ public String getAsText() {
+ Object value = getValue();
+ return (value instanceof Boolean)
+ ? getValidName((Boolean) value)
+ : null;
+ }
+
+ public void setAsText(String text) throws java.lang.IllegalArgumentException {
+ if (text == null) {
+ setValue(null);
+ } else if (isValidName(true, text)) {
+ setValue(Boolean.TRUE);
+ } else if (isValidName(false, text)) {
+ setValue(Boolean.FALSE);
+ } else {
+ throw new java.lang.IllegalArgumentException(text);
+ }
+ }
+
+ public String[] getTags() {
+ return new String[] {getValidName(true), getValidName(false)};
+ }
+
+ // the following method should be localized (4890258)
+
+ private String getValidName(boolean value) {
+ return value ? "True" : "False";
+ }
+
+ private boolean isValidName(boolean value, String name) {
+ return getValidName(value).equalsIgnoreCase(name);
+ }
+}
diff -r 6c3b742b735d -r 85680f91b6f9 src/share/classes/com/sun/beans/editors/ByteEditor.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/beans/editors/ByteEditor.java Fri Aug 31 20:57:24 2012 +0100
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.beans.editors;
+
+/**
+ * Property editor for a java builtin "byte" type.
+ *
+ */
+
+import java.beans.*;
+
+public class ByteEditor extends NumberEditor {
+
+ public String getJavaInitializationString() {
+ Object value = getValue();
+ return (value != null)
+ ? "((byte)" + value + ")"
+ : "null";
+ }
+
+ public void setAsText(String text) throws IllegalArgumentException {
+ setValue((text == null) ? null : Byte.decode(text));
+ }
+
+}
diff -r 6c3b742b735d -r 85680f91b6f9 src/share/classes/com/sun/beans/editors/ColorEditor.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/beans/editors/ColorEditor.java Fri Aug 31 20:57:24 2012 +0100
@@ -0,0 +1,214 @@
+/*
+ * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.beans.editors;
+
+import java.awt.*;
+import java.beans.*;
+
+public class ColorEditor extends Panel implements PropertyEditor {
+ private static final long serialVersionUID = 1781257185164716054L;
+
+ public ColorEditor() {
+ setLayout(null);
+
+ ourWidth = hPad;
+
+ // Create a sample color block bordered in black
+ Panel p = new Panel();
+ p.setLayout(null);
+ p.setBackground(Color.black);
+ sample = new Canvas();
+ p.add(sample);
+ sample.reshape(2, 2, sampleWidth, sampleHeight);
+ add(p);
+ p.reshape(ourWidth, 2, sampleWidth+4, sampleHeight+4);
+ ourWidth += sampleWidth + 4 + hPad;
+
+ text = new TextField("", 14);
+ add(text);
+ text.reshape(ourWidth,0,100,30);
+ ourWidth += 100 + hPad;
+
+ choser = new Choice();
+ int active = 0;
+ for (int i = 0; i < colorNames.length; i++) {
+ choser.addItem(colorNames[i]);
+ }
+ add(choser);
+ choser.reshape(ourWidth,0,100,30);
+ ourWidth += 100 + hPad;
+
+ resize(ourWidth,40);
+ }
+
+ public void setValue(Object o) {
+ Color c = (Color)o;
+ changeColor(c);
+ }
+
+ public Dimension preferredSize() {
+ return new Dimension(ourWidth, 40);
+ }
+
+ public boolean keyUp(Event e, int key) {
+ if (e.target == text) {
+ try {
+ setAsText(text.getText());
+ } catch (IllegalArgumentException ex) {
+ // Quietly ignore.
+ }
+ }
+ return (false);
+ }
+
+ public void setAsText(String s) throws java.lang.IllegalArgumentException {
+ if (s == null) {
+ changeColor(null);
+ return;
+ }
+ int c1 = s.indexOf(',');
+ int c2 = s.indexOf(',', c1+1);
+ if (c1 < 0 || c2 < 0) {
+ // Invalid string.
+ throw new IllegalArgumentException(s);
+ }
+ try {
+ int r = Integer.parseInt(s.substring(0,c1));
+ int g = Integer.parseInt(s.substring(c1+1, c2));
+ int b = Integer.parseInt(s.substring(c2+1));
+ Color c = new Color(r,g,b);
+ changeColor(c);
+ } catch (Exception ex) {
+ throw new IllegalArgumentException(s);
+ }
+
+ }
+
+ public boolean action(Event e, Object arg) {
+ if (e.target == choser) {
+ changeColor(colors[choser.getSelectedIndex()]);
+ }
+ return false;
+ }
+
+ public String getJavaInitializationString() {
+ return (this.color != null)
+ ? "new java.awt.Color(" + this.color.getRGB() + ",true)"
+ : "null";
+ }
+
+
+ private void changeColor(Color c) {
+
+ if (c == null) {
+ this.color = null;
+ this.text.setText("");
+ return;
+ }
+
+ color = c;
+
+ text.setText("" + c.getRed() + "," + c.getGreen() + "," + c.getBlue());
+
+ int active = 0;
+ for (int i = 0; i < colorNames.length; i++) {
+ if (color.equals(colors[i])) {
+ active = i;
+ }
+ }
+ choser.select(active);
+
+ sample.setBackground(color);
+ sample.repaint();
+
+ support.firePropertyChange("", null, null);
+ }
+
+ public Object getValue() {
+ return color;
+ }
+
+ public boolean isPaintable() {
+ return true;
+ }
+
+ public void paintValue(java.awt.Graphics gfx, java.awt.Rectangle box) {
+ Color oldColor = gfx.getColor();
+ gfx.setColor(Color.black);
+ gfx.drawRect(box.x, box.y, box.width-3, box.height-3);
+ gfx.setColor(color);
+ gfx.fillRect(box.x+1, box.y+1, box.width-4, box.height-4);
+ gfx.setColor(oldColor);
+ }
+
+ public String getAsText() {
+ return (this.color != null)
+ ? this.color.getRed() + "," + this.color.getGreen() + "," + this.color.getBlue()
+ : null;
+ }
+
+ public String[] getTags() {
+ return null;
+ }
+
+ public java.awt.Component getCustomEditor() {
+ return this;
+ }
+
+ public boolean supportsCustomEditor() {
+ return true;
+ }
+
+ public void addPropertyChangeListener(PropertyChangeListener l) {
+ support.addPropertyChangeListener(l);
+ }
+
+ public void removePropertyChangeListener(PropertyChangeListener l) {
+ support.removePropertyChangeListener(l);
+ }
+
+
+ private String colorNames[] = { " ", "white", "lightGray", "gray", "darkGray",
+ "black", "red", "pink", "orange",
+ "yellow", "green", "magenta", "cyan",
+ "blue"};
+ private Color colors[] = { null, Color.white, Color.lightGray, Color.gray, Color.darkGray,
+ Color.black, Color.red, Color.pink, Color.orange,
+ Color.yellow, Color.green, Color.magenta, Color.cyan,
+ Color.blue};
+
+ private Canvas sample;
+ private int sampleHeight = 20;
+ private int sampleWidth = 40;
+ private int hPad = 5;
+ private int ourWidth;
+
+ private Color color;
+ private TextField text;
+ private Choice choser;
+
+ private PropertyChangeSupport support = new PropertyChangeSupport(this);
+}
diff -r 6c3b742b735d -r 85680f91b6f9 src/share/classes/com/sun/beans/editors/DoubleEditor.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/beans/editors/DoubleEditor.java Fri Aug 31 20:57:24 2012 +0100
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
More information about the distro-pkg-dev
mailing list