OpenJDK / bsd-port / bsd-port / jdk
changeset 2614:94404fea2067
Merge
author | lana |
---|---|
date | Wed, 16 Jun 2010 14:07:47 -0700 |
parents | 705777f990cf 6568c84116bb |
children | 3df25d0680f3 |
files | make/com/sun/inputmethods/Makefile make/com/sun/inputmethods/indicim/Makefile make/com/sun/inputmethods/thaiim/Makefile make/common/Defs-linux.gmk make/common/Defs-solaris.gmk make/common/Release.gmk src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariInputMethodDescriptor.java src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariTables.java src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethod.java src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethodImpl.java src/share/classes/com/sun/inputmethods/internal/indicim/java.awt.im.spi.InputMethodDescriptor src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames.properties src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_de.properties src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_es.properties src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_fr.properties src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_it.properties src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ja.properties src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ko.properties src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_sv.properties src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_CN.properties src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_TW.properties src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethod.java src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodDescriptor.java src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodImpl.java src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiRules.java src/share/classes/com/sun/inputmethods/internal/thaiim/java.awt.im.spi.InputMethodDescriptor src/share/classes/com/sun/inputmethods/internal/thaiim/resources/DisplayNames.properties src/share/classes/com/sun/servicetag/resources/register.html src/share/classes/com/sun/servicetag/resources/register_ja.html src/share/classes/com/sun/servicetag/resources/register_zh_CN.html src/share/classes/javax/swing/text/html/parser/html32.bdtd test/java/util/ResourceBundle/Bug4168625Test.java |
diffstat | 280 files changed, 9663 insertions(+), 3636 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Wed Jun 16 12:40:22 2010 -0700 +++ b/.hgtags Wed Jun 16 14:07:47 2010 -0700 @@ -70,3 +70,5 @@ 219b84b9533ae4fe3c6c2083f8a8962cb579f1de jdk7-b93 cf44386c8fe3fbdb9da14346be25d19fd1092f71 jdk7-b94 db951e984ccf50756160fee3078c791300b0917e jdk7-b95 +51b9e5dbc2da0631414484b934ac3fb62e48a2c6 jdk7-b96 +b1903d7528d33b521df42bc9291bdcdd2f444a29 jdk7-b97
--- a/make/com/sun/Makefile Wed Jun 16 12:40:22 2010 -0700 +++ b/make/com/sun/Makefile Wed Jun 16 14:07:47 2010 -0700 @@ -42,7 +42,7 @@ SUBDIRS = java security net/ssl jarsigner SUBDIRS_management = jmx -SUBDIRS_desktop = image inputmethods +SUBDIRS_desktop = image SUBDIRS_enterprise = crypto/provider jndi \ org xml rowset net/httpserver SUBDIRS_misc = $(SCRIPT_SUBDIR) tracing servicetag nio demo
--- a/make/com/sun/inputmethods/Makefile Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -# -# Copyright (c) 2002, 2005, 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. -# - -# -# Makefile for building Java input methods -# - -BUILDDIR = ../../.. -PRODUCT = sun -include $(BUILDDIR)/common/Defs.gmk - -SUBDIRS = indicim thaiim -include $(BUILDDIR)/common/Subdirs.gmk - -all build clean clobber:: - $(SUBDIRS-loop) -
--- a/make/com/sun/inputmethods/indicim/Makefile Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -# -# Copyright (c) 2002, 2008, 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. -# - -# -# Makefile for indic input method. -# - -BUILDDIR = ../../../.. - -PACKAGE = com.sun.inputmethods.internal.indicim -PRODUCT = sun - -CLASSDESTDIR = $(TEMPDIR)/classes -SERVICESDIR=META-INF/services -IMJAR = $(IMJARDIR)/indicim.jar -IMJARDIR=$(LIBDIR)/im -include $(BUILDDIR)/common/Defs.gmk - -# -# Files -# -AUTO_FILES_JAVA_DIRS = com/sun/inputmethods/internal/indicim - -FILES_copy = \ - $(CLASSDESTDIR)/com/sun/inputmethods/internal/indicim/resources/DisplayNames.properties - -PROVIDER_CONF_FILE = \ - $(CLASSDESTDIR)/$(SERVICESDIR)/java.awt.im.spi.InputMethodDescriptor - -# -# Rules -# -include $(BUILDDIR)/common/Classes.gmk - -build: $(IMJAR) - -# -# Extra rules to build im. -# - -$(CLASSDESTDIR)/com/sun/inputmethods/internal/indicim/resources/% : $(SHARE_SRC)/classes/com/sun/inputmethods/internal/indicim/resources/% - $(install-file) - -$(CLASSDESTDIR)/$(SERVICESDIR)/java.awt.im.spi.InputMethodDescriptor : $(SHARE_SRC)/classes/com/sun/inputmethods/internal/indicim/java.awt.im.spi.InputMethodDescriptor - $(install-file) - -$(IMJAR): $(FILES_class) $(FILES_copy) $(PROVIDER_CONF_FILE) - $(prep-target) - $(BOOT_JAR_CMD) -cf $@ \ - -C $(CLASSDESTDIR) com \ - -C $(CLASSDESTDIR) $(SERVICESDIR) \ - $(BOOT_JAR_JFLAGS) - @$(java-vm-cleanup) - -clean:: - $(RM) -r $(CLASSDESTDIR) - $(RM) $(IMJAR)
--- a/make/com/sun/inputmethods/thaiim/Makefile Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -# -# Copyright (c) 2002, 2008, 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. -# - -# -# Makefile for thai input method. -# - -BUILDDIR = ../../../.. - -PACKAGE = com.sun.inputmethods.internal.thaiim -PRODUCT = sun - -CLASSDESTDIR = $(TEMPDIR)/classes -SERVICESDIR=META-INF/services -IMJAR = $(IMJARDIR)/thaiim.jar -IMJARDIR=$(LIBDIR)/im -include $(BUILDDIR)/common/Defs.gmk - -# -# Files -# -AUTO_FILES_JAVA_DIRS = com/sun/inputmethods/internal/thaiim - -FILES_copy = \ - $(CLASSDESTDIR)/com/sun/inputmethods/internal/thaiim/resources/DisplayNames.properties - -PROVIDER_CONF_FILE = \ - $(CLASSDESTDIR)/$(SERVICESDIR)/java.awt.im.spi.InputMethodDescriptor - -# -# Rules -# -include $(BUILDDIR)/common/Classes.gmk - -build: $(IMJAR) - -# -# Extra rules to build im. -# - -$(CLASSDESTDIR)/com/sun/inputmethods/internal/thaiim/resources/% : $(SHARE_SRC)/classes/com/sun/inputmethods/internal/thaiim/resources/% - $(install-file) - -$(CLASSDESTDIR)/$(SERVICESDIR)/java.awt.im.spi.InputMethodDescriptor : $(SHARE_SRC)/classes/com/sun/inputmethods/internal/thaiim/java.awt.im.spi.InputMethodDescriptor - $(install-file) - -$(IMJAR): $(FILES_class) $(FILES_copy) $(PROVIDER_CONF_FILE) - $(prep-target) - $(BOOT_JAR_CMD) -cf $@ \ - -C $(CLASSDESTDIR) com \ - -C $(CLASSDESTDIR) $(SERVICESDIR) \ - $(BOOT_JAR_JFLAGS) - @$(java-vm-cleanup) - -clean:: - $(RM) -r $(CLASSDESTDIR) - $(RM) $(IMJAR)
--- a/make/common/Defs-linux.gmk Wed Jun 16 12:40:22 2010 -0700 +++ b/make/common/Defs-linux.gmk Wed Jun 16 14:07:47 2010 -0700 @@ -194,7 +194,16 @@ CXXFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL)) endif -CPPFLAGS_COMMON = -D$(ARCH) -DARCH='"$(ARCH)"' -DLINUX $(VERSION_DEFINES) \ +CPP_ARCH_FLAGS = -DARCH='"$(ARCH)"' + +# Alpha arch does not like "alpha" defined (potential general arch cleanup issue here) +ifneq ($(ARCH),alpha) + CPP_ARCH_FLAGS += -D$(ARCH) +else + CPP_ARCH_FLAGS += -D_$(ARCH)_ +endif + +CPPFLAGS_COMMON = $(CPP_ARCH_FLAGS) -DLINUX $(VERSION_DEFINES) \ -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT ifeq ($(ARCH_DATA_MODEL), 64)
--- a/make/common/Defs-solaris.gmk Wed Jun 16 12:40:22 2010 -0700 +++ b/make/common/Defs-solaris.gmk Wed Jun 16 14:07:47 2010 -0700 @@ -639,21 +639,8 @@ # in general this is ok to continue to do. LIBCXX = /usr/lib$(ISA_DIR)/libCrun.so.1 -# Math Library (libm.so), do not use -lm. -# There might be two versions of libm.so on the build system: -# libm.so.1 and libm.so.2, and we want libm.so.1. -# Depending on the Solaris release being used to build with, -# /usr/lib/libm.so could point at a libm.so.2, so we are -# explicit here so that the libjvm.so you have built will work on an -# older Solaris release that might not have libm.so.2. -# This is a critical factor in allowing builds on Solaris 10 or newer -# to run on Solaris 8 or 9. -# -# Note: Historically there was also a problem picking up a static version -# of libm.a from the compiler area, but that problem has gone away -# with the newer compilers. Use of libm.a would cause .so bloat. -# -LIBM = /usr/lib$(ISA_DIR)/libm.so.1 +# JDK now requires Solaris 10, so pick up libm.so.2 +LIBM = /usr/lib$(ISA_DIR)/libm.so.2 # Socket library LIBSOCKET = -lsocket
--- a/make/common/Release.gmk Wed Jun 16 12:40:22 2010 -0700 +++ b/make/common/Release.gmk Wed Jun 16 14:07:47 2010 -0700 @@ -47,8 +47,7 @@ # Swing has taken this approach only as a temporary measure to avoid # the compiler warnings until we can properly document these packages. # This is covered under 6491853. -EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf \ - com.sun.java.swing.plaf.windows \ +EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows \ com.sun.java.swing.plaf.motif \ com.sun.java.swing.plaf.gtk @@ -655,7 +654,9 @@ JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/manifest.tmp $(JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) $(prep-target) - $(SED) -e "s/@@RELEASE@@/$(RELEASE)/" $(MAINMANIFEST) >> $@ + $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ + -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ + $(MAINMANIFEST) >> $@ $(ECHO) >> $@ $(CAT) $(BEANMANIFEST) >> $@
--- a/make/common/Subdirs.gmk Wed Jun 16 12:40:22 2010 -0700 +++ b/make/common/Subdirs.gmk Wed Jun 16 14:07:47 2010 -0700 @@ -19,7 +19,7 @@ # # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA # or visit www.oracle.com if you need additional information or have any -# have any questions +# questions. # #
--- a/make/common/shared/Defs.gmk Wed Jun 16 12:40:22 2010 -0700 +++ b/make/common/shared/Defs.gmk Wed Jun 16 14:07:47 2010 -0700 @@ -214,7 +214,7 @@ PRODUCT_NAME = Java(TM) PRODUCT_SUFFIX = SE Runtime Environment JDK_RC_PLATFORM_NAME = Platform SE - COMPANY_NAME = Sun Microsystems, Inc. + COMPANY_NAME = Oracle endif RUNTIME_NAME = $(PRODUCT_NAME) $(PRODUCT_SUFFIX)
--- a/make/java/nio/Makefile Wed Jun 16 12:40:22 2010 -0700 +++ b/make/java/nio/Makefile Wed Jun 16 14:07:47 2010 -0700 @@ -818,7 +818,7 @@ GENSOR_EXE = $(TEMPDIR)/genSocketOptionRegistry$(EXE_SUFFIX) SOR_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSOR_SRC) | \ - $(NAWK) '/^.*Copyright.*Sun/ { print $$3 }') + $(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }') $(TEMPDIR)/$(GENSOR_SRC) : $(GENSOR_SRC) $(install-non-module-file) @@ -830,7 +830,7 @@ $(SCH_GEN)/SocketOptionRegistry.java: $(GENSOR_EXE) $(prep-target) - NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh $(SOR_COPYRIGHT_YEARS) > $@ + NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(SOR_COPYRIGHT_YEARS)" > $@ $(GENSOR_EXE) >> $@ # @@ -852,7 +852,7 @@ GENUC_EXE = $(TEMPDIR)/genUnixConstants GENUC_COPYRIGHT_YEARS = $(shell $(CAT) $(GENUC_SRC) | \ - $(NAWK) '/^.*Copyright.*Sun/ { print $$3 }') + $(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }') $(GENUC_EXE) : $(GENUC_SRC) $(prep-target) @@ -860,7 +860,7 @@ $(SFS_GEN)/UnixConstants.java: $(GENUC_EXE) $(prep-target) - NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh $(GENUC_COPYRIGHT_YEARS) > $@ + NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(GENUC_COPYRIGHT_YEARS)" > $@ $(GENUC_EXE) >> $@ GENSC_SRC = $(PLATFORM_SRC)/native/sun/nio/fs/genSolarisConstants.c @@ -868,7 +868,7 @@ GENSC_EXE = $(TEMPDIR)/genSolarisConstants GENSC_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSC_SRC) | \ - $(NAWK) '/^.*Copyright.*Sun/ { print $$3 }') + $(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }') $(GENSC_EXE) : $(GENSC_SRC) $(prep-target) @@ -876,7 +876,7 @@ $(SFS_GEN)/SolarisConstants.java: $(GENSC_EXE) $(prep-target) - NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh $(GENSC_COPYRIGHT_YEARS) > $@ + NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(GENSC_COPYRIGHT_YEARS)" > $@ $(GENSC_EXE) >> $@ .PHONY: sources
--- a/make/java/nio/addNotices.sh Wed Jun 16 12:40:22 2010 -0700 +++ b/make/java/nio/addNotices.sh Wed Jun 16 14:07:47 2010 -0700 @@ -28,7 +28,7 @@ # a java comment block. If this script is invoked with a copyright # year/year range, the java comment block will contain a Sun copyright. -COPYRIGHT_YEARS=$1 +COPYRIGHT_YEARS="$1" cat <<__END__ /* @@ -36,10 +36,10 @@ if [ "x$COPYRIGHT_YEARS" != x ]; then cat <<__END__ - * Copyright $COPYRIGHT_YEARS Sun Microsystems, Inc. All Rights Reserved. + * Copyright (c) $COPYRIGHT_YEARS Oracle and/or its affiliates. All rights reserved. __END__ fi -$NAWK ' /^#.*Copyright.*Sun/ { next } +$NAWK ' /^#.*Copyright.*Oracle/ { next } /^#([^!]|$)/ { sub(/^#/, " *"); print } /^$/ { print " */"; exit } ' $0
--- a/make/java/nio/genCharsetProvider.sh Wed Jun 16 12:40:22 2010 -0700 +++ b/make/java/nio/genCharsetProvider.sh Wed Jun 16 14:07:47 2010 -0700 @@ -36,7 +36,7 @@ DST=$1; shift eval `$NAWK <$SPEC ' - /^[ \t]*copyright / { printf "COPYRIGHT_YEARS=%s\n", $2; } + /^[ \t]*copyright / { printf "COPYRIGHT_YEARS=\"%s %s\"\n", $2, $3; } /^[ \t]*package / { printf "PKG=%s\n", $2; } /^[ \t]*class / { printf "CLASS=%s\n", $2; } '`
--- a/make/javax/swing/FILES.gmk Wed Jun 16 12:40:22 2010 -0700 +++ b/make/javax/swing/FILES.gmk Wed Jun 16 14:07:47 2010 -0700 @@ -25,7 +25,6 @@ MISC_FILES = \ $(CLASSBINDIR)/javax/swing/text/html/default.css \ - $(CLASSBINDIR)/javax/swing/text/html/parser/html32.bdtd \ $(CLASSBINDIR)/javax/swing/text/rtf/charsets/NeXT.txt \ $(CLASSBINDIR)/javax/swing/text/rtf/charsets/ansi.txt \ $(CLASSBINDIR)/javax/swing/text/rtf/charsets/cpg437.txt \
--- a/make/javax/swing/Makefile Wed Jun 16 12:40:22 2010 -0700 +++ b/make/javax/swing/Makefile Wed Jun 16 14:07:47 2010 -0700 @@ -59,9 +59,6 @@ $(CLASSBINDIR)/%.css: $(SHARE_SRC)/classes/%.css $(install-file) -$(CLASSBINDIR)/%.bdtd: $(SHARE_SRC)/classes/%.bdtd - $(install-file) - $(CLASSBINDIR)/%.txt: $(SHARE_SRC)/classes/%.txt $(install-file)
--- a/make/jdk_generic_profile.sh Wed Jun 16 12:40:22 2010 -0700 +++ b/make/jdk_generic_profile.sh Wed Jun 16 14:07:47 2010 -0700 @@ -174,7 +174,7 @@ # Check CYGWIN (should have already been done) # Assumption here is that you are in a shell window via cygwin. - proc_arch=`echo "$(PROCESSOR_IDENTIFIER)" | expand | cut -d' ' -f1 | sed -e 's@x86@X86@g' -e 's@Intel64@X64@g' -e 's@em64t@X64@g' -e 's@EM64T@X64@g' -e 's@amd64@X64@g' -e 's@AMD64@X64@g' -e 's@ia64@IA64@g'` + proc_arch=`echo "${PROCESSOR_IDENTIFIER}" | expand | cut -d' ' -f1 | sed -e 's@x86@X86@g' -e 's@Intel64@X64@g' -e 's@em64t@X64@g' -e 's@EM64T@X64@g' -e 's@amd64@X64@g' -e 's@AMD64@X64@g' -e 's@ia64@IA64@g'` if [ "${proc_arch}" = "X64" ] ; then windows_arch=amd64 else
--- a/make/sun/awt/mapfile-mawt-vers Wed Jun 16 12:40:22 2010 -0700 +++ b/make/sun/awt/mapfile-mawt-vers Wed Jun 16 14:07:47 2010 -0700 @@ -312,6 +312,7 @@ Java_sun_awt_X11GraphicsEnvironment_initGLX; Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama; Java_sun_awt_X11GraphicsEnvironment_getXineramaCenterPoint; + Java_sun_awt_X11GraphicsEnvironment_initXRender; #Java_sun_awt_motif_MEmbedCanvasPeer_initXEmbedServer; #Java_sun_awt_motif_MEmbedCanvasPeer_destroyXEmbedServer; #Java_sun_awt_motif_MEmbedCanvasPeer_isXEmbedActive; @@ -406,18 +407,53 @@ Java_sun_java2d_x11_X11SurfaceData_initIDs; Java_sun_java2d_x11_X11SurfaceData_initOps; Java_sun_java2d_x11_X11SurfaceData_initSurface; - Java_sun_java2d_x11_X11SurfaceData_isDrawableValid; Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable; Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable; - Java_sun_java2d_x11_X11SurfaceData_setInvalid; - Java_sun_java2d_x11_X11SurfaceData_flushNativeSurface; - Java_sun_java2d_x11_X11SurfaceData_XCreateGC; - Java_sun_java2d_x11_X11SurfaceData_XResetClip; - Java_sun_java2d_x11_X11SurfaceData_XSetClip; Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode; Java_sun_java2d_x11_X11SurfaceData_XSetXorMode; Java_sun_java2d_x11_X11SurfaceData_XSetForeground; - Java_sun_java2d_x11_X11SurfaceData_XSetGraphicsExposures; + + Java_sun_java2d_x11_XSurfaceData_initOps; + Java_sun_java2d_x11_XSurfaceData_XCreateGC; + Java_sun_java2d_x11_XSurfaceData_XResetClip; + Java_sun_java2d_x11_XSurfaceData_XSetClip; + Java_sun_java2d_x11_XSurfaceData_flushNativeSurface; + Java_sun_java2d_x11_XSurfaceData_isDrawableValid; + Java_sun_java2d_x11_XSurfaceData_setInvalid; + Java_sun_java2d_x11_XSurfaceData_XSetGraphicsExposures; + Java_sun_java2d_xr_XRSurfaceData_initXRPicture; + Java_sun_java2d_xr_XRSurfaceData_initIDs; + Java_sun_java2d_xr_XRSurfaceData_XRInitSurface; + Java_sun_java2d_xr_XRBackendNative_initIDs; + Java_sun_java2d_xr_XIDGenerator_bufferXIDs; + Java_sun_java2d_xr_XRBackendNative_freeGC; + Java_sun_java2d_xr_XRBackendNative_createGC; + Java_sun_java2d_xr_XRBackendNative_createPixmap; + Java_sun_java2d_xr_XRBackendNative_createPictureNative; + Java_sun_java2d_xr_XRBackendNative_freePicture; + Java_sun_java2d_xr_XRBackendNative_freePixmap; + Java_sun_java2d_xr_XRBackendNative_setPictureRepeat; + Java_sun_java2d_xr_XRBackendNative_setGCExposures; + Java_sun_java2d_xr_XRBackendNative_setGCForeground; + Java_sun_java2d_xr_XRBackendNative_copyArea; + Java_sun_java2d_xr_XRBackendNative_renderComposite; + Java_sun_java2d_xr_XRBackendNative_renderRectangle; + Java_sun_java2d_xr_XRBackendNative_XRenderRectanglesNative; + Java_sun_java2d_xr_XRBackendNative_XRSetTransformNative; + Java_sun_java2d_xr_XRBackendNative_XRCreateLinearGradientPaintNative; + Java_sun_java2d_xr_XRBackendNative_XRCreateRadialGradientPaintNative; + Java_sun_java2d_xr_XRBackendNative_setFilter; + Java_sun_java2d_xr_XRBackendNative_XRSetClipNative; + Java_sun_java2d_xr_XRBackendNative_putMaskNative; + Java_sun_java2d_xr_XRBackendNative_XRAddGlyphsNative; + Java_sun_java2d_xr_XRBackendNative_XRFreeGlyphsNative; + Java_sun_java2d_xr_XRBackendNative_XRenderCreateGlyphSetNative; + Java_sun_java2d_xr_XRBackendNative_XRenderCompositeTextNative; + Java_sun_java2d_xr_XRBackendNative_setGCMode; + Java_sun_java2d_xr_XRBackendNative_GCRectanglesNative; + Java_sun_java2d_xr_XRUtils_initFormatPtrs; + Java_sun_java2d_xr_XRBackendNative_renderCompositeTrapezoidsNative; + XRT_DrawGlyphList; Java_sun_java2d_opengl_OGLContext_getOGLIdString; Java_sun_java2d_opengl_OGLMaskFill_maskFill;
--- a/make/sun/awt/mapfile-vers-linux Wed Jun 16 12:40:22 2010 -0700 +++ b/make/sun/awt/mapfile-vers-linux Wed Jun 16 14:07:47 2010 -0700 @@ -425,6 +425,7 @@ Java_sun_awt_X11GraphicsEnvironment_initDisplay; Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama; Java_sun_awt_X11GraphicsEnvironment_getXineramaCenterPoint; + Java_sun_awt_X11GraphicsEnvironment_initXRender;
--- a/make/sun/headless/mapfile-vers Wed Jun 16 12:40:22 2010 -0700 +++ b/make/sun/headless/mapfile-vers Wed Jun 16 14:07:47 2010 -0700 @@ -46,17 +46,20 @@ Java_sun_java2d_x11_X11Renderer_XFillRoundRect; Java_sun_java2d_x11_X11Renderer_devCopyArea; Java_sun_java2d_x11_X11SurfaceData_initIDs; - Java_sun_java2d_x11_X11SurfaceData_initOps; - Java_sun_java2d_x11_X11SurfaceData_isDrawableValid; Java_sun_java2d_x11_X11SurfaceData_initSurface; - Java_sun_java2d_x11_X11SurfaceData_setInvalid; - Java_sun_java2d_x11_X11SurfaceData_XCreateGC; - Java_sun_java2d_x11_X11SurfaceData_XResetClip; - Java_sun_java2d_x11_X11SurfaceData_XSetClip; Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode; Java_sun_java2d_x11_X11SurfaceData_XSetXorMode; Java_sun_java2d_x11_X11SurfaceData_XSetForeground; + Java_sun_java2d_x11_XSurfaceData_initOps; + Java_sun_java2d_x11_XSurfaceData_XCreateGC; + Java_sun_java2d_x11_XSurfaceData_XResetClip; + Java_sun_java2d_x11_XSurfaceData_XSetClip; + Java_sun_java2d_x11_XSurfaceData_flushNativeSurface; + Java_sun_java2d_x11_XSurfaceData_isDrawableValid; + Java_sun_java2d_x11_XSurfaceData_setInvalid; + Java_sun_java2d_x11_XSurfaceData_XSetGraphicsExposures; + X11SurfaceData_GetOps; Java_java_awt_Font_initIDs; Java_sun_font_FontConfigManager_getFontConfig;
--- a/make/sun/jawt/Makefile Wed Jun 16 12:40:22 2010 -0700 +++ b/make/sun/jawt/Makefile Wed Jun 16 14:07:47 2010 -0700 @@ -113,7 +113,7 @@ # Libraries to link in. # ifeq ($(PLATFORM), solaris) -OTHER_LDLIBS = -L$(LIBDIR)/$(LIBARCH) -L$(OPENWIN_LIB) -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt +OTHER_LDLIBS = -L$(LIBDIR)/$(LIBARCH) -L$(OPENWIN_LIB) -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt -L/usr/openwin/sfw/lib$(ISA_DIR) -lXrender endif # PLATFORM ifeq ($(PLATFORM), linux)
--- a/make/sun/xawt/FILES_c_unix.gmk Wed Jun 16 12:40:22 2010 -0700 +++ b/make/sun/xawt/FILES_c_unix.gmk Wed Jun 16 14:07:47 2010 -0700 @@ -80,4 +80,6 @@ swing_GTKEngine.c \ swing_GTKStyle.c \ rect.c \ - sun_awt_X11_GtkFileDialogPeer.c + sun_awt_X11_GtkFileDialogPeer.c \ + XRSurfaceData.c \ + XRBackendNative.c
--- a/make/sun/xawt/Makefile Wed Jun 16 12:40:22 2010 -0700 +++ b/make/sun/xawt/Makefile Wed Jun 16 14:07:47 2010 -0700 @@ -49,6 +49,11 @@ LDFLAGS += -L$(OPENWIN_LIB) +# For Xrender extension. +ifeq ($(PLATFORM), solaris) +LDFLAGS += -L/usr/openwin/sfw/lib$(ISA_DIR) -R/usr/openwin/sfw/lib$(ISA_DIR) +endif + ifeq ($(PLATFORM), linux) LDFLAGS += -lpthread dummy := $(shell $(MKDIR) -p $(LIB_LOCATION)) @@ -88,7 +93,7 @@ vpath %.c $(PLATFORM_SRC)/native/sun/java2d/opengl vpath %.c $(PLATFORM_SRC)/native/sun/java2d/x11 -OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -ldl \ +OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -lXrender -ldl \ $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi ifeq ($(PLATFORM), solaris) @@ -122,7 +127,7 @@ -I$(PLATFORM_SRC)/native/sun/awt/medialib \ -I$(PLATFORM_SRC)/native/sun/font \ -I$(SHARE_SRC)/native/sun/awt \ - -I$(PLATFORM_SRC)/native/sun/awt + -I$(PLATFORM_SRC)/native/sun/awt ifeq ($(PLATFORM), linux) # Allows for builds on Debian GNU Linux, X11 is in a different place
--- a/make/sun/xawt/mapfile-vers Wed Jun 16 12:40:22 2010 -0700 +++ b/make/sun/xawt/mapfile-vers Wed Jun 16 14:07:47 2010 -0700 @@ -192,6 +192,7 @@ Java_sun_font_X11FontManager_setNativeFontPath; Java_sun_awt_X11GraphicsEnvironment_initDisplay; Java_sun_awt_X11GraphicsEnvironment_initGLX; + Java_sun_awt_X11GraphicsEnvironment_initXRender; Java_sun_awt_X11GraphicsEnvironment_checkShmExt; Java_sun_awt_X11GraphicsEnvironment_getNumScreens; Java_sun_awt_X11GraphicsEnvironment_getDefaultScreenNum; @@ -355,21 +356,52 @@ Java_sun_java2d_x11_X11Renderer_XFillRect; Java_sun_java2d_x11_X11Renderer_XFillRoundRect; Java_sun_java2d_x11_X11Renderer_devCopyArea; - Java_sun_java2d_x11_X11SurfaceData_setInvalid; Java_sun_java2d_x11_X11SurfaceData_initIDs; - Java_sun_java2d_x11_X11SurfaceData_isDrawableValid; Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable; Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable; - Java_sun_java2d_x11_X11SurfaceData_initOps; Java_sun_java2d_x11_X11SurfaceData_initSurface; - Java_sun_java2d_x11_X11SurfaceData_flushNativeSurface; - Java_sun_java2d_x11_X11SurfaceData_XCreateGC; - Java_sun_java2d_x11_X11SurfaceData_XResetClip; - Java_sun_java2d_x11_X11SurfaceData_XSetClip; Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode; Java_sun_java2d_x11_X11SurfaceData_XSetXorMode; Java_sun_java2d_x11_X11SurfaceData_XSetForeground; - Java_sun_java2d_x11_X11SurfaceData_XSetGraphicsExposures; + + Java_sun_java2d_x11_XSurfaceData_initOps; + Java_sun_java2d_x11_XSurfaceData_XCreateGC; + Java_sun_java2d_x11_XSurfaceData_XResetClip; + Java_sun_java2d_x11_XSurfaceData_XSetClip; + Java_sun_java2d_x11_XSurfaceData_flushNativeSurface; + Java_sun_java2d_x11_XSurfaceData_isDrawableValid; + Java_sun_java2d_x11_XSurfaceData_setInvalid; + Java_sun_java2d_x11_XSurfaceData_XSetGraphicsExposures; + Java_sun_java2d_xr_XRSurfaceData_initXRPicture; + Java_sun_java2d_xr_XRSurfaceData_initIDs; + Java_sun_java2d_xr_XRSurfaceData_XRInitSurface; + Java_sun_java2d_xr_XRBackendNative_initIDs; + Java_sun_java2d_xr_XRBackendNative_freeGC; + Java_sun_java2d_xr_XRBackendNative_createGC; + Java_sun_java2d_xr_XRBackendNative_createPixmap; + Java_sun_java2d_xr_XRBackendNative_createPictureNative; + Java_sun_java2d_xr_XRBackendNative_freePicture; + Java_sun_java2d_xr_XRBackendNative_freePixmap; + Java_sun_java2d_xr_XRBackendNative_setPictureRepeat; + Java_sun_java2d_xr_XRBackendNative_setGCExposures; + Java_sun_java2d_xr_XRBackendNative_setGCForeground; + Java_sun_java2d_xr_XRBackendNative_copyArea; + Java_sun_java2d_xr_XRBackendNative_renderComposite; + Java_sun_java2d_xr_XRBackendNative_renderRectangle; + Java_sun_java2d_xr_XRBackendNative_XRenderRectanglesNative; + Java_sun_java2d_xr_XRBackendNative_XRSetTransformNative; + Java_sun_java2d_xr_XRBackendNative_XRCreateLinearGradientPaintNative; + Java_sun_java2d_xr_XRBackendNative_XRCreateRadialGradientPaintNative; + Java_sun_java2d_xr_XRBackendNative_setFilter; + Java_sun_java2d_xr_XRBackendNative_XRSetClipNative; + Java_sun_java2d_xr_XRBackendNative_putMaskNative; + Java_sun_java2d_xr_XRBackendNative_XRAddGlyphsNative; + Java_sun_java2d_xr_XRBackendNative_XRFreeGlyphsNative; + Java_sun_java2d_xr_XRBackendNative_XRenderCreateGlyphSetNative; + Java_sun_java2d_xr_XRBackendNative_XRenderCompositeTextNative; + Java_sun_java2d_xr_XRBackendNative_setGCMode; + Java_sun_java2d_xr_XRBackendNative_GCRectanglesNative; + Java_sun_java2d_xr_XRBackendNative_renderCompositeTrapezoidsNative; Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1arrow; Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box; @@ -397,8 +429,8 @@ Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetClassValue; Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetPangoFontName; - Java_sun_awt_X11_GtkFileDialogPeer_run; - Java_sun_awt_X11_GtkFileDialogPeer_quit; + Java_sun_awt_X11_GtkFileDialogPeer_run; + Java_sun_awt_X11_GtkFileDialogPeer_quit; Java_sun_print_CUPSPrinter_initIDs; Java_sun_print_CUPSPrinter_getCupsServer;
--- a/make/tools/manifest.mf Wed Jun 16 12:40:22 2010 -0700 +++ b/make/tools/manifest.mf Wed Jun 16 14:07:47 2010 -0700 @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Specification-Title: Java Platform API Specification Specification-Version: 1.6 -Specification-Vendor: Sun Microsystems, Inc. +Specification-Vendor: Oracle Implementation-Title: Java Runtime Environment Implementation-Version: @@RELEASE@@ -Implementation-Vendor: Sun Microsystems, Inc. +Implementation-Vendor: @@COMPANY_NAME@@
--- a/make/tools/sharing/classlist.linux Wed Jun 16 12:40:22 2010 -0700 +++ b/make/tools/sharing/classlist.linux Wed Jun 16 14:07:47 2010 -0700 @@ -2259,7 +2259,6 @@ com/sun/java/swing/plaf/gtk/GTKLookAndFeel$2 com/sun/java/swing/plaf/gtk/GTKLookAndFeel$3 javax/swing/plaf/synth/SynthPanelUI -sun/swing/plaf/synth/SynthUI javax/swing/plaf/synth/SynthConstants javax/swing/plaf/synth/SynthContext javax/swing/plaf/synth/SynthBorder @@ -2271,6 +2270,7 @@ javax/swing/plaf/synth/SynthMenuBarUI javax/swing/plaf/synth/DefaultMenuLayout javax/swing/plaf/synth/SynthMenuUI +javax/swing/plaf/synth/SynthUI com/sun/java/swing/plaf/gtk/GTKIconFactory com/sun/java/swing/plaf/gtk/GTKIconFactory$MenuArrowIcon com/sun/java/swing/plaf/gtk/GTKIconFactory$DelegatingIcon
--- a/make/tools/sharing/classlist.solaris Wed Jun 16 12:40:22 2010 -0700 +++ b/make/tools/sharing/classlist.solaris Wed Jun 16 14:07:47 2010 -0700 @@ -2360,7 +2360,6 @@ com/sun/java/swing/plaf/gtk/GTKLookAndFeel$2 com/sun/java/swing/plaf/gtk/GTKLookAndFeel$3 javax/swing/plaf/synth/SynthPanelUI -sun/swing/plaf/synth/SynthUI javax/swing/plaf/synth/SynthConstants javax/swing/plaf/synth/SynthContext javax/swing/plaf/synth/SynthBorder @@ -2373,6 +2372,7 @@ javax/swing/plaf/synth/SynthMenuBarUI javax/swing/plaf/synth/DefaultMenuLayout javax/swing/plaf/synth/SynthMenuUI +javax/swing/plaf/synth/SynthUI com/sun/java/swing/plaf/gtk/GTKIconFactory com/sun/java/swing/plaf/gtk/GTKIconFactory$MenuArrowIcon com/sun/java/swing/plaf/gtk/GTKIconFactory$DelegatingIcon
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariInputMethodDescriptor.java Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -/* - * Copyright (c) 2002, 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. - */ - -/* - * (C) Copyright IBM Corp. 2000 - All Rights Reserved - * - * The original version of this source code and documentation is - * copyrighted and owned by IBM. These materials are provided - * under terms of a License Agreement between IBM and Sun. - * This technology is protected by multiple US and International - * patents. This notice and attribution to IBM may not be removed. - * - */ - -package com.sun.inputmethods.internal.indicim; - -import java.awt.Image; -import java.awt.im.spi.InputMethod; -import java.awt.im.spi.InputMethodDescriptor; -import java.util.Locale; -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -public class DevanagariInputMethodDescriptor implements InputMethodDescriptor { - - static final Locale HINDI = new Locale("hi", "IN"); - - public DevanagariInputMethodDescriptor() { - } - - /** - * @see java.awt.im.spi.InputMethodDescriptor#getAvailableLocales - */ - public Locale[] getAvailableLocales() { - return new Locale[] { HINDI }; - } - - /** - * @see java.awt.im.spi.InputMethodDescriptor#hasDynamicLocaleList - */ - public boolean hasDynamicLocaleList() { - return false; - } - - /** - * @see java.awt.im.spi.InputMethodDescriptor#getInputMethodDisplayName - */ - public synchronized String getInputMethodDisplayName(Locale inputLocale, Locale displayLanguage) { - try { - ResourceBundle resources = ResourceBundle.getBundle("com.sun.inputmethods.internal.indicim.resources.DisplayNames", displayLanguage); - return resources.getString("DisplayName.Devanagari"); - } catch (MissingResourceException mre) { - return "Devanagari Input Method"; - } - } - - /** - * @see java.awt.im.spi.InputMethodDescriptor#getInputMethodIcon - */ - public Image getInputMethodIcon(Locale inputLocale) { - return null; - } - - /** - * @see java.awt.im.spi.InputMethodDescriptor#createInputMethod - */ - public InputMethod createInputMethod() throws Exception { - IndicInputMethodImpl impl = new IndicInputMethodImpl( - DevanagariTables.keyboardMap, - DevanagariTables.joinWithNukta, - DevanagariTables.nuktaForm, - DevanagariTables.substitutionTable); - - return new IndicInputMethod(HINDI, impl); - } - - public String toString() { - return getClass().getName(); - } -}
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariTables.java Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,255 +0,0 @@ -/* - * Copyright (c) 2002, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 2000 - All Rights Reserved - * - * The original version of this source code and documentation is - * copyrighted and owned by IBM. These materials are provided - * under terms of a License Agreement between IBM and Sun. - * This technology is protected by multiple US and International - * patents. This notice and attribution to IBM may not be removed. - * - */ - -package com.sun.inputmethods.internal.indicim; - -class DevanagariTables { - - static final char[] keyboardMap = { - /* 00 */ '\u0000', - /* 01 */ '\u0001', - /* 02 */ '\u0002', - /* 03 */ '\u0003', - /* 04 */ '\u0004', - /* 05 */ '\u0005', - /* 06 */ '\u0006', - /* 07 */ '\u0007', - /* 08 */ '\u0008', - /* 09 */ '\u0009', - /* 0A */ '\012', - /* 0B */ '\u000B', - /* 0C */ '\u000C', - /* 0D */ '\015', - /* 0E */ '\u000E', - /* 0F */ '\u000F', - /* 10 */ '\u0010', - /* 11 */ '\u0011', - /* 12 */ '\u0012', - /* 13 */ '\u0013', - /* 14 */ '\u0014', - /* 15 */ '\u0015', - /* 16 */ '\u0016', - /* 17 */ '\u0017', - /* 18 */ '\u0018', - /* 19 */ '\u0019', - /* 1A */ '\u001A', - /* 1B */ '\u001B', - /* 1C */ '\u001C', - /* 1D */ '\u001D', - /* 1E */ '\u001E', - /* 1F */ '\u001F', - /* 20 */ '\u0020', - /* 21 */ '\u090D', // '!' - /* 22 */ '\u0920', // '"' - /* 23 */ '\uFF00', // '#' - /* 24 */ '\uFF01', // '$' - /* 25 */ '\uFF02', // '%' - /* 26 */ '\uFF04', // '&' - /* 27 */ '\u091F', // ''' - /* 28 */ '\u0028', // '(' - /* 29 */ '\u0029', // ')' - /* 2A */ '\uFF05', // '*' - /* 2B */ '\u090B', // '+' - /* 2C */ '\u002C', // ',' - /* 2D */ '\u002D', // '-' - /* 2E */ '\u002E', // '.' - /* 2F */ '\u092F', // '/' - /* 30 */ '\u0966', // '0' - /* 31 */ '\u0967', // '1' - /* 32 */ '\u0968', // '2' - /* 33 */ '\u0969', // '3' - /* 34 */ '\u096A', // '4' - /* 35 */ '\u096B', // '5' - /* 36 */ '\u096C', // '6' - /* 37 */ '\u096D', // '7' - /* 38 */ '\u096E', // '8' - /* 39 */ '\u096F', // '9' - /* 3A */ '\u091B', // ':' - /* 3B */ '\u091A', // ';' - /* 3C */ '\u0937', // '<' - /* 3D */ '\u0943', // '=' - /* 3E */ '\u0964', // '>' - /* 3F */ '\u095F', // '?' - /* 40 */ '\u0945', // '@' - /* 41 */ '\u0913', // 'A' - /* 42 */ '\u0934', // 'B' - /* 43 */ '\u0923', // 'C' - /* 44 */ '\u0905', // 'D' - /* 45 */ '\u0906', // 'E' - /* 46 */ '\u0907', // 'F' - /* 47 */ '\u0909', // 'G' - /* 48 */ '\u092B', // 'H' - /* 49 */ '\u0918', // 'I' - /* 4A */ '\u0931', // 'J' - /* 4B */ '\u0916', // 'K' - /* 4C */ '\u0925', // 'L' - /* 4D */ '\u0936', // 'M' - /* 4E */ '\u0933', // 'N' - /* 4F */ '\u0927', // 'O' - /* 50 */ '\u091D', // 'P' - /* 51 */ '\u0914', // 'Q' - /* 52 */ '\u0908', // 'R' - /* 53 */ '\u090F', // 'S' - /* 54 */ '\u090A', // 'T' - /* 55 */ '\u0919', // 'U' - /* 56 */ '\u0929', // 'V' - /* 57 */ '\u0910', // 'W' - /* 58 */ '\u0901', // 'X' - /* 59 */ '\u092D', // 'Y' - /* 5A */ '\u090E', // 'Z' - /* 5B */ '\u0921', // '[' - /* 5C */ '\u0949', // '\' - /* 5D */ '\u093C', // ']' - /* 5E */ '\uFF03', // '^' - /* 5F */ '\u0903', // '_' - /* 60 */ '\u094A', // '`' - /* 61 */ '\u094B', // 'a' - /* 62 */ '\u0935', // 'b' - /* 63 */ '\u092E', // 'c' - /* 64 */ '\u094D', // 'd' - /* 65 */ '\u093E', // 'e' - /* 66 */ '\u093F', // 'f' - /* 67 */ '\u0941', // 'g' - /* 68 */ '\u092A', // 'h' - /* 69 */ '\u0917', // 'i' - /* 6A */ '\u0930', // 'j' - /* 6B */ '\u0915', // 'k' - /* 6C */ '\u0924', // 'l' - /* 6D */ '\u0938', // 'm' - /* 6E */ '\u0932', // 'n' - /* 6F */ '\u0926', // 'o' - /* 70 */ '\u091C', // 'p' - /* 71 */ '\u094C', // 'q' - /* 72 */ '\u0940', // 'r' - /* 73 */ '\u0947', // 's' - /* 74 */ '\u0942', // 't' - /* 75 */ '\u0939', // 'u' - /* 76 */ '\u0928', // 'v' - /* 77 */ '\u0948', // 'w' - /* 78 */ '\u0902', // 'x' - /* 79 */ '\u092C', // 'y' - /* 7A */ '\u0946', // 'z' - /* 7B */ '\u0922', // '{' - /* 7C */ '\u0911', // '|' - /* 7D */ '\u091E', // '}' - /* 7E */ '\u0912', // '~' - /* 7F */ '\u007F' // -}; - - // the character substitutions for the meta characters. - static final char[] RA_SUB = {'\u094D', '\u0930'}; - static final char[] RA_SUP = {'\u0930', '\u094D'}; - static final char[] CONJ_JA_NYA = {'\u091C', '\u094D', '\u091E'}; - static final char[] CONJ_TA_RA = {'\u0924', '\u094D', '\u0930'}; - static final char[] CONJ_KA_SSA = {'\u0915', '\u094D', '\u0937'}; - static final char[] CONJ_SHA_RA = {'\u0936', '\u094D', '\u0930'}; - - static final char[][] substitutionTable = { - RA_SUB, RA_SUP, CONJ_JA_NYA, CONJ_TA_RA, CONJ_KA_SSA, CONJ_SHA_RA - }; - - // The following characters followed by Nukta should be replaced - // by the corresponding character as defined in ISCII91 - static final char SIGN_CANDRABINDU = '\u0901'; - static final char LETTER_I = '\u0907'; - static final char LETTER_II = '\u0908'; - static final char LETTER_VOCALIC_R = '\u090B'; - static final char LETTER_KA = '\u0915'; - static final char LETTER_KHA = '\u0916'; - static final char LETTER_GA = '\u0917'; - static final char LETTER_JA = '\u091C'; - static final char LETTER_DDA = '\u0921'; - static final char LETTER_DDHA = '\u0922'; - static final char LETTER_PHA = '\u092B'; - static final char VOWEL_SIGN_I = '\u093F'; - static final char VOWEL_SIGN_II = '\u0940'; - static final char VOWEL_SIGN_VOCALIC_R = '\u0943'; - static final char DANDA = '\u0964'; - - // The follwing characters replace the above characters followed by Nukta. These - // are defined in one to one correspondence order. - static final char SIGN_OM = '\u0950'; - static final char LETTER_VOCALIC_L = '\u090C'; - static final char LETTER_VOCALIC_LL = '\u0961'; - static final char LETTER_VOCALIC_RR = '\u0960'; - static final char LETTER_QA = '\u0958'; - static final char LETTER_KHHA = '\u0959'; - static final char LETTER_GHHA = '\u095A'; - static final char LETTER_ZA = '\u095B'; - static final char LETTER_DDDHA = '\u095C'; - static final char LETTER_RHA = '\u095D'; - static final char LETTER_FA = '\u095E'; - static final char VOWEL_SIGN_VOCALIC_L = '\u0962'; - static final char VOWEL_SIGN_VOCALIC_LL = '\u0963'; - static final char VOWEL_SIGN_VOCALIC_RR = '\u0944'; - static final char SIGN_AVAGRAHA = '\u093D'; - - static final char[] joinWithNukta = { - SIGN_CANDRABINDU, - LETTER_I, - LETTER_II, - LETTER_VOCALIC_R , - LETTER_KA, - LETTER_KHA, - LETTER_GA, - LETTER_JA, - LETTER_DDA, - LETTER_DDHA, - LETTER_PHA, - VOWEL_SIGN_I, - VOWEL_SIGN_II, - VOWEL_SIGN_VOCALIC_R, - DANDA - }; - - static final char[] nuktaForm = { - SIGN_OM, - LETTER_VOCALIC_L, - LETTER_VOCALIC_LL, - LETTER_VOCALIC_RR, - LETTER_QA, - LETTER_KHHA, - LETTER_GHHA, - LETTER_ZA, - LETTER_DDDHA, - LETTER_RHA, - LETTER_FA, - VOWEL_SIGN_VOCALIC_L, - VOWEL_SIGN_VOCALIC_LL, - VOWEL_SIGN_VOCALIC_RR, - SIGN_AVAGRAHA - }; -}
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethod.java Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,436 +0,0 @@ -/* - * Copyright (c) 2002, 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. - */ - -/* - * (C) Copyright IBM Corp. 2000 - All Rights Reserved - * - * The original version of this source code and documentation is - * copyrighted and owned by IBM. These materials are provided - * under terms of a License Agreement between IBM and Sun. - * This technology is protected by multiple US and International - * patents. This notice and attribution to IBM may not be removed. - * - */ - -package com.sun.inputmethods.internal.indicim; - -import java.awt.im.spi.InputMethod; -import java.awt.im.spi.InputMethodContext; - -import java.awt.AWTEvent; -import java.awt.Rectangle; - -import java.awt.event.KeyEvent; -import java.awt.event.MouseEvent; - -import java.lang.Character.Subset; - -import java.util.Locale; - -class IndicInputMethod implements InputMethod { - - private IndicInputMethodImpl impl; - private Locale locale; - - IndicInputMethod(Locale theLocale, IndicInputMethodImpl theImplementation) { - locale = theLocale; - impl = theImplementation; - } - - /** - * Sets the input method context, which is used to dispatch input method - * events to the client component and to request information from - * the client component. - * <p> - * This method is called once immediately after instantiating this input - * method. - * - * @param context the input method context for this input method - * @exception NullPointerException if <code>context</code> is null - */ - public void setInputMethodContext(InputMethodContext context) { - - impl.setInputMethodContext(context); - } - - /** - * Attempts to set the input locale. If the input method supports the - * desired locale, it changes its behavior to support input for the locale - * and returns true. - * Otherwise, it returns false and does not change its behavior. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}, - * <li>when switching to this input method through the user interface if the user - * specified a locale or if the previously selected input method's - * {@link java.awt.im.spi.InputMethod#getLocale getLocale} method - * returns a non-null value. - * </ul> - * - * @param locale locale to input - * @return whether the specified locale is supported - * @exception NullPointerException if <code>locale</code> is null - */ - public boolean setLocale(Locale locale) { - - if (locale.getLanguage().equals(this.locale.getLanguage())) { - //System.out.println("returning true for locale " + locale); - return true; - } - else { - //System.out.println("returning false for locale " + locale); - return false; - } - } - - /** - * Returns the current input locale. Might return null in exceptional cases. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#getLocale InputContext.getLocale} and - * <li>when switching from this input method to a different one through the - * user interface. - * </ul> - * - * @return the current input locale, or null - */ - public Locale getLocale() { - - return locale; - } - - /** - * Sets the subsets of the Unicode character set that this input method - * is allowed to input. Null may be passed in to indicate that all - * characters are allowed. - * <p> - * This method is called - * <ul> - * <li>immediately after instantiating this input method, - * <li>when switching to this input method from a different one, and - * <li>by {@link java.awt.im.InputContext#setCharacterSubsets InputContext.setCharacterSubsets}. - * </ul> - * - * @param subsets the subsets of the Unicode character set from which - * characters may be input - */ - public void setCharacterSubsets(Subset[] subsets) { - } - - /** - * Enables or disables this input method for composition, - * depending on the value of the parameter <code>enable</code>. - * <p> - * An input method that is enabled for composition interprets incoming - * events for both composition and control purposes, while a - * disabled input method does not interpret events for composition. - * Note however that events are passed on to the input method regardless - * whether it is enabled or not, and that an input method that is disabled - * for composition may still interpret events for control purposes, - * including to enable or disable itself for composition. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#setCompositionEnabled InputContext.setCompositionEnabled}, - * <li>when switching to this input method from a different one using the - * user interface or - * {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}, - * if the previously selected input method's - * {@link java.awt.im.spi.InputMethod#isCompositionEnabled isCompositionEnabled} - * method returns without throwing an exception. - * </ul> - * - * @param enable whether to enable the input method for composition - * @throws UnsupportedOperationException if this input method does not - * support the enabling/disabling operation - * @see #isCompositionEnabled - */ - public void setCompositionEnabled(boolean enable) { - - throw new UnsupportedOperationException(); - } - - /** - * Determines whether this input method is enabled. - * An input method that is enabled for composition interprets incoming - * events for both composition and control purposes, while a - * disabled input method does not interpret events for composition. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#isCompositionEnabled InputContext.isCompositionEnabled} and - * <li>when switching from this input method to a different one using the - * user interface or - * {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}. - * </ul> - * - * @return <code>true</code> if this input method is enabled for - * composition; <code>false</code> otherwise. - * @throws UnsupportedOperationException if this input method does not - * support checking whether it is enabled for composition - * @see #setCompositionEnabled - */ - public boolean isCompositionEnabled() { - - return true; - } - - /** - * Starts the reconversion operation. The input method obtains the - * text to be reconverted from the current client component using the - * {@link java.awt.im.InputMethodRequests#getSelectedText InputMethodRequests.getSelectedText} - * method. It can use other <code>InputMethodRequests</code> - * methods to request additional information required for the - * reconversion operation. The composed and committed text - * produced by the operation is sent to the client component as a - * sequence of <code>InputMethodEvent</code>s. If the given text - * cannot be reconverted, the same text should be sent to the - * client component as committed text. - * <p> - * This method is called by - * {@link java.awt.im.InputContext#reconvert() InputContext.reconvert}. - * - * @throws UnsupportedOperationException if the input method does not - * support the reconversion operation. - */ - public void reconvert() { - - throw new UnsupportedOperationException("This input method does not reconvert."); - } - - /** - * Dispatches the event to the input method. If input method support is - * enabled for the focussed component, incoming events of certain types - * are dispatched to the current input method for this component before - * they are dispatched to the component's methods or event listeners. - * The input method decides whether it needs to handle the event. If it - * does, it also calls the event's <code>consume</code> method; this - * causes the event to not get dispatched to the component's event - * processing methods or event listeners. - * <p> - * Events are dispatched if they are instances of InputEvent or its - * subclasses. - * This includes instances of the AWT classes KeyEvent and MouseEvent. - * <p> - * This method is called by {@link java.awt.im.InputContext#dispatchEvent InputContext.dispatchEvent}. - * - * @param event the event being dispatched to the input method - * @exception NullPointerException if <code>event</code> is null - */ - public void dispatchEvent(AWTEvent event) { - - if (event instanceof KeyEvent) { - - KeyEvent keyEvent = (KeyEvent) event; - if (event.getID() == KeyEvent.KEY_TYPED) { - impl.handleKeyTyped(keyEvent); - } - //System.out.println("handled event " + event); - } - else { - //System.out.println("did not handle event " + event); - } - } - - /** - * Notifies this input method of changes in the client window - * location or state. This method is called while this input - * method is the current input method of its input context and - * notifications for it are enabled (see {@link - * InputMethodContext#enableClientWindowNotification - * InputMethodContext.enableClientWindowNotification}). Calls - * to this method are temporarily suspended if the input context's - * {@link java.awt.im.InputContext#removeNotify removeNotify} - * method is called, and resume when the input method is activated - * for a new client component. It is called in the following - * situations: - * <ul> - * <li> - * when the window containing the current client component changes - * in location, size, visibility, iconification state, or when the - * window is closed.</li> - * <li> - * from <code> enableClientWindowNotification(inputMethod, - * true)</code> if the current client component exists,</li> - * <li> - * when activating the input method for the first time after it - * called - * <code>enableClientWindowNotification(inputMethod, - * true)</code> if during the call no current client component was - * available,</li> - * <li> - * when activating the input method for a new client component - * after the input context's removeNotify method has been - * called.</li> - * </ul> - * @param bounds client window's {@link - * java.awt.Component#getBounds bounds} on the screen; or null if - * the client window is iconified or invisible - */ - public void notifyClientWindowChange(Rectangle bounds) { - } - - /** - * Activates the input method for immediate input processing. - * <p> - * If an input method provides its own windows, it should make sure - * at this point that all necessary windows are open and visible. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#dispatchEvent InputContext.dispatchEvent} - * when a client component receives a FOCUS_GAINED event, - * <li>when switching to this input method from a different one using the - * user interface or - * {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}. - * </ul> - * The method is only called when the input method is inactive. - * A newly instantiated input method is assumed to be inactive. - */ - public void activate() { - //System.out.println("activated"); - } - - /** - * Deactivates the input method. - * The isTemporary argument has the same meaning as in - * {@link java.awt.event.FocusEvent#isTemporary FocusEvent.isTemporary}. - * <p> - * If an input method provides its own windows, only windows that relate - * to the current composition (such as a lookup choice window) should be - * closed at this point. - * It is possible that the input method will be immediately activated again - * for a different client component, and closing and reopening more - * persistent windows (such as a control panel) would create unnecessary - * screen flicker. - * Before an instance of a different input method class is activated, - * {@link #hideWindows} is called on the current input method. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#dispatchEvent InputContext.dispatchEvent} - * when a client component receives a FOCUS_LOST event, - * <li>when switching from this input method to a different one using the - * user interface or - * {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}, - * <li>before {@link #removeNotify removeNotify} if the current client component is - * removed. - * </ul> - * The method is only called when the input method is active. - * - * @param isTemporary whether the focus change is temporary - */ - public void deactivate(boolean isTemporary) { - //System.out.println("deactivated"); - } - - /** - * Closes or hides all windows opened by this input method instance or - * its class. - * <p> - * This method is called - * <ul> - * <li>before calling {@link #activate activate} on an instance of a different input - * method class, - * <li>before calling {@link #dispose dispose} on this input method. - * </ul> - * The method is only called when the input method is inactive. - */ - public void hideWindows() { - } - - /** - * Notifies the input method that a client component has been - * removed from its containment hierarchy, or that input method - * support has been disabled for the component. - * <p> - * This method is called by {@link java.awt.im.InputContext#removeNotify InputContext.removeNotify}. - * <p> - * The method is only called when the input method is inactive. - */ - public void removeNotify() { - } - - /** - * Ends any input composition that may currently be going on in this - * context. Depending on the platform and possibly user preferences, - * this may commit or delete uncommitted text. Any changes to the text - * are communicated to the active component using an input method event. - * - * <p> - * A text editing component may call this in a variety of situations, - * for example, when the user moves the insertion point within the text - * (but outside the composed text), or when the component's text is - * saved to a file or copied to the clipboard. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#endComposition InputContext.endComposition}, - * <li>by {@link java.awt.im.InputContext#dispatchEvent InputContext.dispatchEvent} - * when switching to a different client component - * <li>when switching from this input method to a different one using the - * user interface or - * {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}. - * </ul> - */ - public void endComposition() { - - impl.endComposition(); - } - - /** - * Disposes of the input method and releases the resources used by it. - * In particular, the input method should dispose windows and close files that are no - * longer needed. - * <p> - * This method is called by {@link java.awt.im.InputContext#dispose InputContext.dispose}. - * <p> - * The method is only called when the input method is inactive. - * No method of this interface is called on this instance after dispose. - */ - public void dispose() { - } - - /** - * Returns a control object from this input method, or null. A - * control object provides methods that control the behavior of the - * input method or obtain information from the input method. The type - * of the object is an input method specific class. Clients have to - * compare the result against known input method control object - * classes and cast to the appropriate class to invoke the methods - * provided. - * <p> - * This method is called by - * {@link java.awt.im.InputContext#getInputMethodControlObject InputContext.getInputMethodControlObject}. - * - * @return a control object from this input method, or null - */ - public Object getControlObject() { - - return null; - } -}
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethodImpl.java Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,475 +0,0 @@ -/* - * Copyright (c) 2002, 2004, 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. - */ - -/* - * (C) Copyright IBM Corp. 2000 - All Rights Reserved - * - * The original version of this source code and documentation is - * copyrighted and owned by IBM. These materials are provided - * under terms of a License Agreement between IBM and Sun. - * This technology is protected by multiple US and International - * patents. This notice and attribution to IBM may not be removed. - * - */ - -package com.sun.inputmethods.internal.indicim; - -import java.awt.im.spi.InputMethodContext; - -import java.awt.event.KeyEvent; -import java.awt.event.InputMethodEvent; -import java.awt.font.TextAttribute; -import java.awt.font.TextHitInfo; - -import java.text.AttributedCharacterIterator; - -import java.util.Hashtable; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -class IndicInputMethodImpl { - - protected char[] KBD_MAP; - - private static final char SUBSTITUTION_BASE = '\uff00'; - - // Indexed by map value - SUBSTITUTION_BASE - protected char[][] SUBSTITUTION_TABLE; - - // Invalid character. - private static final char INVALID_CHAR = '\uffff'; - - // Unmapped versions of some interesting characters. - private static final char KEY_SIGN_VIRAMA = '\u0064'; // or just 'd'?? - private static final char KEY_SIGN_NUKTA = '\u005d'; // or just ']'?? - - // Two succeeding viramas are replaced by one virama and one ZWNJ. - // Viram followed by Nukta is replaced by one VIRAMA and one ZWJ - private static final char ZWJ = '\u200d'; - private static final char ZWNJ = '\u200c'; - - // Backspace - private static final char BACKSPACE = '\u0008'; - - // Sorted list of characters which can be followed by Nukta - protected char[] JOIN_WITH_NUKTA; - - // Nukta form of the above characters - protected char[] NUKTA_FORM; - - private int log2; - private int power; - private int extra; - - // cached TextHitInfo. Only one type of TextHitInfo is required. - private static final TextHitInfo ZERO_TRAILING_HIT_INFO = TextHitInfo.trailing(0); - - /** - * Returns the index of the given character in the JOIN_WITH_NUKTA array. - * If character is not found, -1 is returned. - */ - private int nuktaIndex(char ch) { - - if (JOIN_WITH_NUKTA == null) { - return -1; - } - - int probe = power; - int index = 0; - - if (JOIN_WITH_NUKTA[extra] <= ch) { - index = extra; - } - - while (probe > (1 << 0)) { - probe >>= 1; - - if (JOIN_WITH_NUKTA[index + probe] <= ch) { - index += probe; - } - } - - if (JOIN_WITH_NUKTA[index] != ch) { - index = -1; - } - - return index; - } - - /** - * Returns the equivalent character for hindi locale. - * @param originalChar The original character. - */ - private char getMappedChar( char originalChar ) - { - if (originalChar <= KBD_MAP.length) { - return KBD_MAP[originalChar]; - } - - return originalChar; - }//getMappedChar() - - // Array used to hold the text to be sent. - // If the last character was not committed it is stored in text[0]. - // The variable totalChars give an indication of whether the last - // character was committed or not. If at any time ( but not within a - // a call to dispatchEvent ) totalChars is not equal to 0 ( it can - // only be 1 otherwise ) the last character was not committed. - private char [] text = new char[4]; - - // this is always 0 before and after call to dispatchEvent. This character assumes - // significance only within a call to dispatchEvent. - private int committedChars = 0;// number of committed characters - - // the total valid characters in variable text currently. - private int totalChars = 0;//number of total characters ( committed + composed ) - - private boolean lastCharWasVirama = false; - - private InputMethodContext context; - - // - // Finds the high bit by binary searching - // through the bits in n. - // - private static byte highBit(int n) - { - if (n <= 0) { - return -32; - } - - byte bit = 0; - - if (n >= 1 << 16) { - n >>= 16; - bit += 16; - } - - if (n >= 1 << 8) { - n >>= 8; - bit += 8; - } - - if (n >= 1 << 4) { - n >>= 4; - bit += 4; - } - - if (n >= 1 << 2) { - n >>= 2; - bit += 2; - } - - if (n >= 1 << 1) { - n >>= 1; - bit += 1; - } - - return bit; - } - - IndicInputMethodImpl(char[] keyboardMap, char[] joinWithNukta, char[] nuktaForm, - char[][] substitutionTable) { - KBD_MAP = keyboardMap; - JOIN_WITH_NUKTA = joinWithNukta; - NUKTA_FORM = nuktaForm; - SUBSTITUTION_TABLE = substitutionTable; - - if (JOIN_WITH_NUKTA != null) { - int log2 = highBit(JOIN_WITH_NUKTA.length); - - power = 1 << log2; - extra = JOIN_WITH_NUKTA.length - power; - } else { - power = extra = 0; - } - - } - - void setInputMethodContext(InputMethodContext context) { - - this.context = context; - } - - void handleKeyTyped(KeyEvent kevent) { - - char keyChar = kevent.getKeyChar(); - char currentChar = getMappedChar(keyChar); - - // The Explicit and Soft Halanta case. - if ( lastCharWasVirama ) { - switch (keyChar) { - case KEY_SIGN_NUKTA: - currentChar = ZWJ; - break; - case KEY_SIGN_VIRAMA: - currentChar = ZWNJ; - break; - default: - }//endSwitch - }//endif - - if (currentChar == INVALID_CHAR) { - kevent.consume(); - return; - } - - if (currentChar == BACKSPACE) { - lastCharWasVirama = false; - - if (totalChars > 0) { - totalChars = committedChars = 0; - } else { - return; - } - } - else if (keyChar == KEY_SIGN_NUKTA) { - int nuktaIndex = nuktaIndex(text[0]); - - if (nuktaIndex != -1) { - text[0] = NUKTA_FORM[nuktaIndex]; - } else { - // the last character was committed, commit just Nukta. - // Note : the lastChar must have been committed if it is not one of - // the characters which combine with nukta. - // the state must be totalChars = committedChars = 0; - text[totalChars++] = currentChar; - } - - committedChars += 1; - } - else { - int nuktaIndex = nuktaIndex(currentChar); - - if (nuktaIndex != -1) { - // Commit everything but currentChar - text[totalChars++] = currentChar; - committedChars = totalChars-1; - } else { - if (currentChar >= SUBSTITUTION_BASE) { - char[] sub = SUBSTITUTION_TABLE[currentChar - SUBSTITUTION_BASE]; - - System.arraycopy(sub, 0, text, totalChars, sub.length); - totalChars += sub.length; - } else { - text[totalChars++] = currentChar; - } - - committedChars = totalChars; - } - } - - ACIText aText = new ACIText( text, 0, totalChars, committedChars ); - int composedCharLength = totalChars - committedChars; - TextHitInfo caret=null,visiblePosition=null; - switch( composedCharLength ) { - case 0: - break; - case 1: - visiblePosition = caret = ZERO_TRAILING_HIT_INFO; - break; - default: - assert false : "The code should not reach here. There is no case where there can be more than one character pending."; - } - - context.dispatchInputMethodEvent(InputMethodEvent.INPUT_METHOD_TEXT_CHANGED, - aText, - committedChars, - caret, - visiblePosition); - - if (totalChars == 0) { - text[0] = INVALID_CHAR; - } else { - text[0] = text[totalChars - 1];// make text[0] hold the last character - } - - lastCharWasVirama = keyChar == KEY_SIGN_VIRAMA && !lastCharWasVirama; - - totalChars -= committedChars; - committedChars = 0; - // state now text[0] = last character - // totalChars = ( last character committed )? 0 : 1; - // committedChars = 0; - - kevent.consume();// prevent client from getting this event. - }//dispatchEvent() - - void endComposition() { - if( totalChars != 0 ) {// if some character is not committed. - ACIText aText = new ACIText( text, 0, totalChars, totalChars ); - context.dispatchInputMethodEvent( InputMethodEvent.INPUT_METHOD_TEXT_CHANGED, - aText, totalChars, null, null ); - totalChars = committedChars = 0; - text[0] = INVALID_CHAR; - lastCharWasVirama = false; - }//end if - }//endComposition() - - // custom AttributedCharacterIterator -- much lightweight since currently there is no - // attribute defined on the text being generated by the input method. - private class ACIText implements AttributedCharacterIterator { - private char [] text = null; - private int committed = 0; - private int index = 0; - - ACIText( char [] chArray, int offset, int length, int committed ) { - this.text = new char[length]; - this.committed = committed; - System.arraycopy( chArray, offset, text, 0, length ); - }//c'tor - - // CharacterIterator methods. - public char first() { - return _setIndex( 0 ); - } - - public char last() { - if( text.length == 0 ) { - return _setIndex( text.length ); - } - return _setIndex( text.length - 1 ); - } - - public char current() { - if( index == text.length ) - return DONE; - return text[index]; - } - - public char next() { - if( index == text.length ) { - return DONE; - } - return _setIndex( index + 1 ); - } - - public char previous() { - if( index == 0 ) - return DONE; - return _setIndex( index - 1 ); - } - - public char setIndex(int position) { - if( position < 0 || position > text.length ) { - throw new IllegalArgumentException(); - } - return _setIndex( position ); - } - - public int getBeginIndex() { - return 0; - } - - public int getEndIndex() { - return text.length; - } - - public int getIndex() { - return index; - } - - public Object clone() { - try { - ACIText clone = (ACIText) super.clone(); - return clone; - } catch (CloneNotSupportedException e) { - throw new InternalError(); - } - } - - - // AttributedCharacterIterator methods. - public int getRunStart() { - return index >= committed ? committed : 0; - } - - public int getRunStart(AttributedCharacterIterator.Attribute attribute) { - return (index >= committed && - attribute == TextAttribute.INPUT_METHOD_UNDERLINE) ? committed : 0; - } - - public int getRunStart(Set<? extends Attribute> attributes) { - return (index >= committed && - attributes.contains(TextAttribute.INPUT_METHOD_UNDERLINE)) ? committed : 0; - } - - public int getRunLimit() { - return index < committed ? committed : text.length; - } - - public int getRunLimit(AttributedCharacterIterator.Attribute attribute) { - return (index < committed && - attribute == TextAttribute.INPUT_METHOD_UNDERLINE) ? committed : text.length; - } - - public int getRunLimit(Set<? extends Attribute> attributes) { - return (index < committed && - attributes.contains(TextAttribute.INPUT_METHOD_UNDERLINE)) ? committed : text.length; - } - - public Map getAttributes() { - Hashtable result = new Hashtable(); - if (index >= committed && committed < text.length) { - result.put(TextAttribute.INPUT_METHOD_UNDERLINE, - TextAttribute.UNDERLINE_LOW_ONE_PIXEL); - } - return result; - } - - public Object getAttribute(AttributedCharacterIterator.Attribute attribute) { - if (index >= committed && - committed < text.length && - attribute == TextAttribute.INPUT_METHOD_UNDERLINE) { - - return TextAttribute.UNDERLINE_LOW_ONE_PIXEL; - } - return null; - } - - public Set getAllAttributeKeys() { - HashSet result = new HashSet(); - if (committed < text.length) { - result.add(TextAttribute.INPUT_METHOD_UNDERLINE); - } - return result; - } - - // private methods - - /** - * This is always called with valid i ( 0 < i <= text.length ) - */ - private char _setIndex( int i ) { - index = i; - if( i == text.length ) { - return DONE; - } - return text[i]; - }//_setIndex() - - }//end of inner class -}
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/java.awt.im.spi.InputMethodDescriptor Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -com.sun.inputmethods.internal.indicim.DevanagariInputMethodDescriptor
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -# -# Default Input method display names for Indic input methods -# - -DisplayName.Devanagari = Devanagari Input Method -
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_de.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -# -# Default Input method display names for Indic input methods -# - -DisplayName.Devanagari = Devanagari Input Method
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_es.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -# -# Default Input method display names for Indic input methods -# - -DisplayName.Devanagari = Devanagari Input Method
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_fr.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -# -# Default Input method display names for Indic input methods -# - -DisplayName.Devanagari = Devanagari Input Method
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_it.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -# -# Default Input method display names for Indic input methods -# - -DisplayName.Devanagari = Devanagari Input Method
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ja.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -# -# Default Input method display names for Indic input methods -# - -DisplayName.Devanagari = \u30c7\u30fc\u30f4\u30a1\u30ca\u30fc\u30ac\u30ea\u30fc\u30a4\u30f3\u30d7\u30c3\u30c8\u30e1\u30bd\u30c3\u30c9
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ko.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -# -# Default Input method display names for Indic input methods -# - -DisplayName.Devanagari = Devanagari \uc785\ub825 \uba54\uc18c\ub4dc
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_sv.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -# -# Default Input method display names for Indic input methods -# - -DisplayName.Devanagari = Devanagari Input Method
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_CN.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -# -# Default Input method display names for Indic input methods -# - -DisplayName.Devanagari = Devanagari \u8f93\u5165\u6cd5
--- a/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_TW.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -# -# Default Input method display names for Indic input methods -# - -DisplayName.Devanagari = Devanagari \u8f38\u5165\u6cd5
--- a/src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethod.java Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,437 +0,0 @@ -/* - * Copyright (c) 2002, 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. - */ - -/* - * - * (C) Copyright IBM Corp. 2000 - All Rights Reserved - * - * The original version of this source code and documentation is - * copyrighted and owned by IBM. These materials are provided - * under terms of a License Agreement between IBM and Sun. - * This technology is protected by multiple US and International - * patents. This notice and attribution to IBM may not be removed. - * - */ - -package com.sun.inputmethods.internal.thaiim; - -import java.awt.im.spi.InputMethod; -import java.awt.im.spi.InputMethodContext; - -import java.awt.AWTEvent; -import java.awt.Rectangle; - -import java.awt.event.KeyEvent; -import java.awt.event.MouseEvent; - -import java.lang.Character.Subset; - -import java.util.Locale; - -class ThaiInputMethod implements InputMethod { - - private ThaiInputMethodImpl impl; - private Locale locale; - - ThaiInputMethod(Locale theLocale, ThaiInputMethodImpl theImplementation) { - locale = theLocale; - impl = theImplementation; - } - - /** - * Sets the input method context, which is used to dispatch input method - * events to the client component and to request information from - * the client component. - * <p> - * This method is called once immediately after instantiating this input - * method. - * - * @param context the input method context for this input method - * @exception NullPointerException if <code>context</code> is null - */ - public void setInputMethodContext(InputMethodContext context) { - - impl.setInputMethodContext(context); - } - - /** - * Attempts to set the input locale. If the input method supports the - * desired locale, it changes its behavior to support input for the locale - * and returns true. - * Otherwise, it returns false and does not change its behavior. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}, - * <li>when switching to this input method through the user interface if the user - * specified a locale or if the previously selected input method's - * {@link java.awt.im.spi.InputMethod#getLocale getLocale} method - * returns a non-null value. - * </ul> - * - * @param locale locale to input - * @return whether the specified locale is supported - * @exception NullPointerException if <code>locale</code> is null - */ - public boolean setLocale(Locale locale) { - - if (locale.getLanguage().equals(this.locale.getLanguage())) { - //System.out.println("returning true for locale " + locale); - return true; - } - else { - //System.out.println("returning false for locale " + locale); - return false; - } - } - - /** - * Returns the current input locale. Might return null in exceptional cases. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#getLocale InputContext.getLocale} and - * <li>when switching from this input method to a different one through the - * user interface. - * </ul> - * - * @return the current input locale, or null - */ - public Locale getLocale() { - - return locale; - } - - /** - * Sets the subsets of the Unicode character set that this input method - * is allowed to input. Null may be passed in to indicate that all - * characters are allowed. - * <p> - * This method is called - * <ul> - * <li>immediately after instantiating this input method, - * <li>when switching to this input method from a different one, and - * <li>by {@link java.awt.im.InputContext#setCharacterSubsets InputContext.setCharacterSubsets}. - * </ul> - * - * @param subsets the subsets of the Unicode character set from which - * characters may be input - */ - public void setCharacterSubsets(Subset[] subsets) { - } - - /** - * Enables or disables this input method for composition, - * depending on the value of the parameter <code>enable</code>. - * <p> - * An input method that is enabled for composition interprets incoming - * events for both composition and control purposes, while a - * disabled input method does not interpret events for composition. - * Note however that events are passed on to the input method regardless - * whether it is enabled or not, and that an input method that is disabled - * for composition may still interpret events for control purposes, - * including to enable or disable itself for composition. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#setCompositionEnabled InputContext.setCompositionEnabled}, - * <li>when switching to this input method from a different one using the - * user interface or - * {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}, - * if the previously selected input method's - * {@link java.awt.im.spi.InputMethod#isCompositionEnabled isCompositionEnabled} - * method returns without throwing an exception. - * </ul> - * - * @param enable whether to enable the input method for composition - * @throws UnsupportedOperationException if this input method does not - * support the enabling/disabling operation - * @see #isCompositionEnabled - */ - public void setCompositionEnabled(boolean enable) { - - throw new UnsupportedOperationException(); - } - - /** - * Determines whether this input method is enabled. - * An input method that is enabled for composition interprets incoming - * events for both composition and control purposes, while a - * disabled input method does not interpret events for composition. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#isCompositionEnabled InputContext.isCompositionEnabled} and - * <li>when switching from this input method to a different one using the - * user interface or - * {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}. - * </ul> - * - * @return <code>true</code> if this input method is enabled for - * composition; <code>false</code> otherwise. - * @throws UnsupportedOperationException if this input method does not - * support checking whether it is enabled for composition - * @see #setCompositionEnabled - */ - public boolean isCompositionEnabled() { - - return true; - } - - /** - * Starts the reconversion operation. The input method obtains the - * text to be reconverted from the current client component using the - * {@link java.awt.im.InputMethodRequests#getSelectedText InputMethodRequests.getSelectedText} - * method. It can use other <code>InputMethodRequests</code> - * methods to request additional information required for the - * reconversion operation. The composed and committed text - * produced by the operation is sent to the client component as a - * sequence of <code>InputMethodEvent</code>s. If the given text - * cannot be reconverted, the same text should be sent to the - * client component as committed text. - * <p> - * This method is called by - * {@link java.awt.im.InputContext#reconvert() InputContext.reconvert}. - * - * @throws UnsupportedOperationException if the input method does not - * support the reconversion operation. - */ - public void reconvert() { - - throw new UnsupportedOperationException("This input method does not reconvert."); - } - - /** - * Dispatches the event to the input method. If input method support is - * enabled for the focussed component, incoming events of certain types - * are dispatched to the current input method for this component before - * they are dispatched to the component's methods or event listeners. - * The input method decides whether it needs to handle the event. If it - * does, it also calls the event's <code>consume</code> method; this - * causes the event to not get dispatched to the component's event - * processing methods or event listeners. - * <p> - * Events are dispatched if they are instances of InputEvent or its - * subclasses. - * This includes instances of the AWT classes KeyEvent and MouseEvent. - * <p> - * This method is called by {@link java.awt.im.InputContext#dispatchEvent InputContext.dispatchEvent}. - * - * @param event the event being dispatched to the input method - * @exception NullPointerException if <code>event</code> is null - */ - public void dispatchEvent(AWTEvent event) { - - if (event instanceof KeyEvent) { - - KeyEvent keyEvent = (KeyEvent) event; - if (event.getID() == KeyEvent.KEY_TYPED) { - //System.out.println("handled event " + event); - impl.handleKeyTyped(keyEvent); - } - } - else { - //System.out.println("did not handle event " + event); - } - } - - /** - * Notifies this input method of changes in the client window - * location or state. This method is called while this input - * method is the current input method of its input context and - * notifications for it are enabled (see {@link - * InputMethodContext#enableClientWindowNotification - * InputMethodContext.enableClientWindowNotification}). Calls - * to this method are temporarily suspended if the input context's - * {@link java.awt.im.InputContext#removeNotify removeNotify} - * method is called, and resume when the input method is activated - * for a new client component. It is called in the following - * situations: - * <ul> - * <li> - * when the window containing the current client component changes - * in location, size, visibility, iconification state, or when the - * window is closed.</li> - * <li> - * from <code> enableClientWindowNotification(inputMethod, - * true)</code> if the current client component exists,</li> - * <li> - * when activating the input method for the first time after it - * called - * <code>enableClientWindowNotification(inputMethod, - * true)</code> if during the call no current client component was - * available,</li> - * <li> - * when activating the input method for a new client component - * after the input context's removeNotify method has been - * called.</li> - * </ul> - * @param bounds client window's {@link - * java.awt.Component#getBounds bounds} on the screen; or null if - * the client window is iconified or invisible - */ - public void notifyClientWindowChange(Rectangle bounds) { - } - - /** - * Activates the input method for immediate input processing. - * <p> - * If an input method provides its own windows, it should make sure - * at this point that all necessary windows are open and visible. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#dispatchEvent InputContext.dispatchEvent} - * when a client component receives a FOCUS_GAINED event, - * <li>when switching to this input method from a different one using the - * user interface or - * {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}. - * </ul> - * The method is only called when the input method is inactive. - * A newly instantiated input method is assumed to be inactive. - */ - public void activate() { - //System.out.println("activated"); - } - - /** - * Deactivates the input method. - * The isTemporary argument has the same meaning as in - * {@link java.awt.event.FocusEvent#isTemporary FocusEvent.isTemporary}. - * <p> - * If an input method provides its own windows, only windows that relate - * to the current composition (such as a lookup choice window) should be - * closed at this point. - * It is possible that the input method will be immediately activated again - * for a different client component, and closing and reopening more - * persistent windows (such as a control panel) would create unnecessary - * screen flicker. - * Before an instance of a different input method class is activated, - * {@link #hideWindows} is called on the current input method. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#dispatchEvent InputContext.dispatchEvent} - * when a client component receives a FOCUS_LOST event, - * <li>when switching from this input method to a different one using the - * user interface or - * {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}, - * <li>before {@link #removeNotify removeNotify} if the current client component is - * removed. - * </ul> - * The method is only called when the input method is active. - * - * @param isTemporary whether the focus change is temporary - */ - public void deactivate(boolean isTemporary) { - //System.out.println("deactivated"); - } - - /** - * Closes or hides all windows opened by this input method instance or - * its class. - * <p> - * This method is called - * <ul> - * <li>before calling {@link #activate activate} on an instance of a different input - * method class, - * <li>before calling {@link #dispose dispose} on this input method. - * </ul> - * The method is only called when the input method is inactive. - */ - public void hideWindows() { - } - - /** - * Notifies the input method that a client component has been - * removed from its containment hierarchy, or that input method - * support has been disabled for the component. - * <p> - * This method is called by {@link java.awt.im.InputContext#removeNotify InputContext.removeNotify}. - * <p> - * The method is only called when the input method is inactive. - */ - public void removeNotify() { - } - - /** - * Ends any input composition that may currently be going on in this - * context. Depending on the platform and possibly user preferences, - * this may commit or delete uncommitted text. Any changes to the text - * are communicated to the active component using an input method event. - * - * <p> - * A text editing component may call this in a variety of situations, - * for example, when the user moves the insertion point within the text - * (but outside the composed text), or when the component's text is - * saved to a file or copied to the clipboard. - * <p> - * This method is called - * <ul> - * <li>by {@link java.awt.im.InputContext#endComposition InputContext.endComposition}, - * <li>by {@link java.awt.im.InputContext#dispatchEvent InputContext.dispatchEvent} - * when switching to a different client component - * <li>when switching from this input method to a different one using the - * user interface or - * {@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod}. - * </ul> - */ - public void endComposition() { - - impl.endComposition(); - } - - /** - * Disposes of the input method and releases the resources used by it. - * In particular, the input method should dispose windows and close files that are no - * longer needed. - * <p> - * This method is called by {@link java.awt.im.InputContext#dispose InputContext.dispose}. - * <p> - * The method is only called when the input method is inactive. - * No method of this interface is called on this instance after dispose. - */ - public void dispose() { - } - - /** - * Returns a control object from this input method, or null. A - * control object provides methods that control the behavior of the - * input method or obtain information from the input method. The type - * of the object is an input method specific class. Clients have to - * compare the result against known input method control object - * classes and cast to the appropriate class to invoke the methods - * provided. - * <p> - * This method is called by - * {@link java.awt.im.InputContext#getInputMethodControlObject InputContext.getInputMethodControlObject}. - * - * @return a control object from this input method, or null - */ - public Object getControlObject() { - - return null; - } -}
--- a/src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodDescriptor.java Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2002, 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. - */ - -/* - * - * (C) Copyright IBM Corp. 2000 - All Rights Reserved - * - * The original version of this source code and documentation is - * copyrighted and owned by IBM. These materials are provided - * under terms of a License Agreement between IBM and Sun. - * This technology is protected by multiple US and International - * patents. This notice and attribution to IBM may not be removed. - * - */ - -package com.sun.inputmethods.internal.thaiim; - -import java.awt.Image; -import java.awt.im.spi.InputMethod; -import java.awt.im.spi.InputMethodDescriptor; -import java.util.Locale; -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -public class ThaiInputMethodDescriptor implements InputMethodDescriptor { - - static final Locale THAI = new Locale("th"); - - public ThaiInputMethodDescriptor() { - } - - /** - * @see java.awt.im.spi.InputMethodDescriptor#getAvailableLocales - */ - public Locale[] getAvailableLocales() { - return new Locale[] { THAI }; - } - - /** - * @see java.awt.im.spi.InputMethodDescriptor#hasDynamicLocaleList - */ - public boolean hasDynamicLocaleList() { - return false; - } - - /** - * @see java.awt.im.spi.InputMethodDescriptor#getInputMethodDisplayName - */ - public synchronized String getInputMethodDisplayName(Locale inputLocale, Locale displayLanguage) { - try { - ResourceBundle resources = ResourceBundle.getBundle( - "com.sun.inputmethods.internal.thaiim.resources.DisplayNames", displayLanguage); - return resources.getString("DisplayName.Thai"); - } catch (MissingResourceException mre) { - return "Thai Input Method"; - } - } - - /** - * @see java.awt.im.spi.InputMethodDescriptor#getInputMethodIcon - */ - public Image getInputMethodIcon(Locale inputLocale) { - return null; - } - - /** - * @see java.awt.im.spi.InputMethodDescriptor#createInputMethod - */ - public InputMethod createInputMethod() throws Exception { - ThaiInputMethodImpl impl = new ThaiInputMethodImpl(); - return new ThaiInputMethod(THAI, impl); - } - - public String toString() { - return getClass().getName(); - } -}
--- a/src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodImpl.java Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,235 +0,0 @@ -/* - * Copyright (c) 2002, 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. - */ - -/* - * - * (C) Copyright IBM Corp. 2000 - All Rights Reserved - * - * The original version of this source code and documentation is - * copyrighted and owned by IBM. These materials are provided - * under terms of a License Agreement between IBM and Sun. - * This technology is protected by multiple US and International - * patents. This notice and attribution to IBM may not be removed. - * - */ - -package com.sun.inputmethods.internal.thaiim; - -import java.awt.im.InputMethodRequests; -import java.awt.im.spi.InputMethodContext; - -import java.awt.Toolkit; -import java.awt.event.KeyEvent; -import java.awt.event.InputMethodEvent; -import java.awt.font.TextAttribute; -import java.awt.font.TextHitInfo; - -import java.text.AttributedCharacterIterator; -import java.text.AttributedString; - -class ThaiInputMethodImpl { - - private static final char[] keyboardMap = { - /* 00 */ '\u0000', - /* 01 */ '\u0001', - /* 02 */ '\u0002', - /* 03 */ '\u0003', - /* 04 */ '\u0004', - /* 05 */ '\u0005', - /* 06 */ '\u0006', - /* 07 */ '\u0007', - /* 08 */ '\u0008', - /* 09 */ '\u0009', - /* 0A */ '\012', - /* 0B */ '\u000B', - /* 0C */ '\u000C', - /* 0D */ '\015', - /* 0E */ '\u000E', - /* 0F */ '\u000F', - /* 10 */ '\u0010', - /* 11 */ '\u0011', - /* 12 */ '\u0012', - /* 13 */ '\u0013', - /* 14 */ '\u0014', - /* 15 */ '\u0015', - /* 16 */ '\u0016', - /* 17 */ '\u0017', - /* 18 */ '\u0018', - /* 19 */ '\u0019', - /* 1A */ '\u001A', - /* 1B */ '\u001B', - /* 1C */ '\u001C', - /* 1D */ '\u001D', - /* 1E */ '\u001E', - /* 1F */ '\u001F', - /* 20 */ '\u0020', - /* 21 */ '\u0e45', // '!' - /* 22 */ '\u002e', // '"' - /* 23 */ '\u0e52', // '#' - /* 24 */ '\u0e53', // '$' - /* 25 */ '\u0e54', // '%' - /* 26 */ '\u0e4e', // '&' - /* 27 */ '\u0e07', // ''' - /* 28 */ '\u0e56', // '(' - /* 29 */ '\u0e57', // ')' - /* 2A */ '\u0e55', // '*' - /* 2B */ '\u0e59', // '+' - /* 2C */ '\u0e21', // ',' - /* 2D */ '\u0e02', // '-' - /* 2E */ '\u0e43', // '.' - /* 2F */ '\u0e1d', // '/' - /* 30 */ '\u0e08', // '0' - /* 31 */ '\u0e3f', // '1' - /* 32 */ '\u002f', // '2' - /* 33 */ '\u002d', // '3' - /* 34 */ '\u0e20', // '4' - /* 35 */ '\u0e16', // '5' - /* 36 */ '\u0e38', // '6' - /* 37 */ '\u0e36', // '7' - /* 38 */ '\u0e04', // '8' - /* 39 */ '\u0e15', // '9' - /* 3A */ '\u0e0b', // ':' - /* 3B */ '\u0e27', // ';' - /* 3C */ '\u0e12', // '<' - /* 3D */ '\u0e0a', // '=' - /* 3E */ '\u0e2c', // '>' - /* 3F */ '\u0e26', // '?' - /* 40 */ '\u0e51', // '@' - /* 41 */ '\u0e24', // 'A' - /* 42 */ '\u0e3a', // 'B' - /* 43 */ '\u0e09', // 'C' - /* 44 */ '\u0e0f', // 'D' - /* 45 */ '\u0e0e', // 'E' - /* 46 */ '\u0e42', // 'F' - /* 47 */ '\u0e0c', // 'G' - /* 48 */ '\u0e47', // 'H' - /* 49 */ '\u0e13', // 'I' - /* 4A */ '\u0e4b', // 'J' - /* 4B */ '\u0e29', // 'K' - /* 4C */ '\u0e28', // 'L' - /* 4D */ '\u003f', // 'M' - /* 4E */ '\u0e4c', // 'N' - /* 4F */ '\u0e2f', // 'O' - /* 50 */ '\u0e0d', // 'P' - /* 51 */ '\u0e50', // 'Q' - /* 52 */ '\u0e11', // 'R' - /* 53 */ '\u0e06', // 'S' - /* 54 */ '\u0e18', // 'T' - /* 55 */ '\u0e4a', // 'U' - /* 56 */ '\u0e2e', // 'V' - /* 57 */ '\u0022', // 'W' - /* 58 */ '\u0029', // 'X' - /* 59 */ '\u0e4d', // 'Y' - /* 5A */ '\u0028', // 'Z' - /* 5B */ '\u0e1a', // '[' - /* 5C */ '\u0e05', // '\' - /* 5D */ '\u0e25', // ']' - /* 5E */ '\u0e39', // '^' - /* 5F */ '\u0e58', // '_' - /* 60 */ '\u0e4f', // '`' - /* 61 */ '\u0e1f', // 'a' - /* 62 */ '\u0e34', // 'b' - /* 63 */ '\u0e41', // 'c' - /* 64 */ '\u0e01', // 'd' - /* 65 */ '\u0e33', // 'e' - /* 66 */ '\u0e14', // 'f' - /* 67 */ '\u0e40', // 'g' - /* 68 */ '\u0e49', // 'h' - /* 69 */ '\u0e23', // 'i' - /* 6A */ '\u0e48', // 'j' - /* 6B */ '\u0e32', // 'k' - /* 6C */ '\u0e2a', // 'l' - /* 6D */ '\u0e17', // 'm' - /* 6E */ '\u0e37', // 'n' - /* 6F */ '\u0e19', // 'o' - /* 70 */ '\u0e22', // 'p' - /* 71 */ '\u0e46', // 'q' - /* 72 */ '\u0e1e', // 'r' - /* 73 */ '\u0e2b', // 's' - /* 74 */ '\u0e30', // 't' - /* 75 */ '\u0e35', // 'u' - /* 76 */ '\u0e2d', // 'v' - /* 77 */ '\u0e44', // 'w' - /* 78 */ '\u0e1b', // 'x' - /* 79 */ '\u0e31', // 'y' - /* 7A */ '\u0e1c', // 'z' - /* 7B */ '\u0e10', // '{' - /* 7C */ '\u0e03', // '|' - /* 7D */ '\u002c', // '}' - /* 7E */ '\u0e5b', // '~' - /* 7F */ '\u007F' // - }; - - // cached TextHitInfo. Only one type of TextHitInfo is required. - private static final TextHitInfo ZERO_TRAILING_HIT_INFO = TextHitInfo.trailing(0); - - private ThaiRules rules; - - /** - * Returns the equivalent character for thai locale. - * @param originalChar The original character. - */ - private char getMappedChar( char originalChar ) - { - if (originalChar <= keyboardMap.length) { - return keyboardMap[originalChar]; - } - - return originalChar; - }//getMappedChar() - - private InputMethodContext context; - - void setInputMethodContext(InputMethodContext context) { - this.context = context; - rules = new ThaiRules((InputMethodRequests)context); - } - - void handleKeyTyped(KeyEvent kevent) { - char keyChar = kevent.getKeyChar(); - char currentChar = getMappedChar(keyChar); - if (!Character.UnicodeBlock.THAI.equals(Character.UnicodeBlock.of(currentChar))) { - // don't care - return; - } else if (rules.isInputValid(currentChar)) { - Character tmp = new Character(currentChar); - String tmp2 = tmp.toString(); - context.dispatchInputMethodEvent(InputMethodEvent.INPUT_METHOD_TEXT_CHANGED, - (new AttributedString(tmp2)).getIterator(), - 1, - ZERO_TRAILING_HIT_INFO, - ZERO_TRAILING_HIT_INFO); - } else { - // input sequence is not allowed - Toolkit.getDefaultToolkit().beep(); - } - - kevent.consume();// prevent client from getting this event. - return; - }//dispatchEvent() - - void endComposition() { - }//endComposition() -}
--- a/src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiRules.java Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,348 +0,0 @@ -/* - * Copyright (c) 2002, 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.inputmethods.internal.thaiim; - -import java.awt.im.InputMethodRequests; - -public class ThaiRules { - - public static final char BASE = 0x0e00; - - public static final byte NON = 0; - public static final byte CONS = 1; - public static final byte LV = 2; - public static final byte FV1 = 3; - public static final byte FV2 = 4; - public static final byte FV3 = 5; - public static final byte FV4 = 6; - /* Note that FV4 is added. It is not in WTT. - * We need it for SARA AM since it has a - * weired characteristic to share the same - * cell with whatever consonant preceeds it. - */ - public static final byte BV1 = 7; - public static final byte BV2 = 8; - public static final byte BD = 9; - public static final byte TONE = 10; - public static final byte AD1 = 11; - public static final byte AD2 = 12; - public static final byte AD3 = 13; - public static final byte AV1 = 14; - public static final byte AV2 = 15; - public static final byte AV3 = 16; - - /** - * Constants for validity checking and auto correction - */ - public static final byte STRICT = 0; - public static final byte LOOSE = 1; - public static final byte NOREPLACE = 2; - - public static final byte[] CHARTYPE = { - /* 0e00 UNUSED */ NON, - /* THAI CHARACTER KO KAI */ CONS, - /* THAI CHARACTER KHO KHAI */ CONS, - /* THAI CHARACTER KHO KHUAT */ CONS, - /* THAI CHARACTER KHO KHWAI */ CONS, - /* THAI CHARACTER KHO KHON */ CONS, - /* THAI CHARACTER KHO RAKHANG */ CONS, - /* THAI CHARACTER NGO NGU */ CONS, - /* THAI CHARACTER CHO CHAN */ CONS, - /* THAI CHARACTER CHO CHING */ CONS, - /* THAI CHARACTER CHO CHANG */ CONS, - /* THAI CHARACTER SO SO */ CONS, - /* THAI CHARACTER CHO CHOE */ CONS, - /* THAI CHARACTER YO YING */ CONS, - /* THAI CHARACTER DO CHADA */ CONS, - /* THAI CHARACTER TO PATAK */ CONS, - /* THAI CHARACTER THO THAN */ CONS, - /* THAI CHARACTER THO NANGMONTHO */ CONS, - /* THAI CHARACTER THO PHUTHAO */ CONS, - /* THAI CHARACTER NO NEN */ CONS, - /* THAI CHARACTER DO DEK */ CONS, - /* THAI CHARACTER TO TAO */ CONS, - /* THAI CHARACTER THO THUNG */ CONS, - /* THAI CHARACTER THO THAHAN */ CONS, - /* THAI CHARACTER THO THONG */ CONS, - /* THAI CHARACTER NO NU */ CONS, - /* THAI CHARACTER BO BAIMAI */ CONS, - /* THAI CHARACTER PO PLA */ CONS, - /* THAI CHARACTER PHO PHUNG */ CONS, - /* THAI CHARACTER FO FA */ CONS, - /* THAI CHARACTER PHO PHAN */ CONS, - /* THAI CHARACTER FO FAN */ CONS, - /* THAI CHARACTER PHO SAMPHAO */ CONS, - /* THAI CHARACTER MO MA */ CONS, - /* THAI CHARACTER YO YAK */ CONS, - /* THAI CHARACTER RO RUA */ CONS, - /* THAI CHARACTER RU */ FV3, - /* THAI CHARACTER LO LING */ CONS, - /* THAI CHARACTER LU */ FV3, - /* THAI CHARACTER WO WAEN */ CONS, - /* THAI CHARACTER SO SALA */ CONS, - /* THAI CHARACTER SO RUSI */ CONS, - /* THAI CHARACTER SO SUA */ CONS, - /* THAI CHARACTER HO HIP */ CONS, - /* THAI CHARACTER LO CHULA */ CONS, - /* THAI CHARACTER O ANG */ CONS, - /* THAI CHARACTER HO NOKHUK */ CONS, - /* THAI CHARACTER PAIYANNOI */ NON, - /* THAI CHARACTER SARA A */ FV1, - /* THAI CHARACTER MAI HAN-AKAT */ AV2, - /* THAI CHARACTER SARA AA */ FV1, - /* THAI CHARACTER SARA AM */ FV4, - /* THAI CHARACTER SARA I */ AV1, - /* THAI CHARACTER SARA II */ AV3, - /* THAI CHARACTER SARA UE */ AV2, - /* THAI CHARACTER SARA UEE */ AV3, - /* THAI CHARACTER SARA U */ BV1, - /* THAI CHARACTER SARA UU */ BV2, - /* THAI CHARACTER PHINTHU */ BD, - /* 0e3b UNUSED */ NON, - /* 0e3c UNUSED */ NON, - /* 0e3d UNUSED */ NON, - /* 0e3e UNUSED */ NON, - /* THAI CURRENCY SYMBOL BAHT */ NON, - /* THAI CHARACTER SARA E */ LV, - /* THAI CHARACTER SARA AE */ LV, - /* THAI CHARACTER SARA O */ LV, - /* THAI CHARACTER SARA AI MAIMUAN */ LV, - /* THAI CHARACTER SARA AI MAIMALAI */ LV, - /* THAI CHARACTER LAKKHANGYAO */ FV2, - /* THAI CHARACTER MAIYAMOK */ NON, - /* THAI CHARACTER MAITAIKHU */ AD2, - /* THAI CHARACTER MAI EK */ TONE, - /* THAI CHARACTER MAI THO */ TONE, - /* THAI CHARACTER MAI TRI */ TONE, - /* THAI CHARACTER MAI CHATTAWA */ TONE, - /* THAI CHARACTER THANTHAKHAT */ AD1, - /* THAI CHARACTER NIKHAHIT */ AD3, - /* THAI CHARACTER YAMAKKAN */ AD3, - /* THAI CHARACTER FONGMAN */ NON, - /* THAI DIGIT ZERO */ NON, - /* THAI DIGIT ONE */ NON, - /* THAI DIGIT TWO */ NON, - /* THAI DIGIT THREE */ NON, - /* THAI DIGIT FOUR */ NON, - /* THAI DIGIT FIVE */ NON, - /* THAI DIGIT SIX */ NON, - /* THAI DIGIT SEVEN */ NON, - /* THAI DIGIT EIGHT */ NON, - /* THAI DIGIT NINE */ NON, - /* THAI CHARACTER ANGKHANKHU */ NON, - /* THAI CHARACTER KHOMUT */ NON - }; - - private InputMethodRequests requests; - - ThaiRules(InputMethodRequests requests) { - this.requests = requests; - } - - public static byte getCharType(char c) { - byte cType; - int ci = ((int) c) - (int) BASE; - if (ci < 0 || ci >= CHARTYPE.length) - cType = NON; - else - cType = CHARTYPE[ci]; - return cType; - } - - private static boolean isValid(char c1, char c2, int[] validityArray) { - return ((validityArray[getCharType(c1)] - & (1 << getCharType(c2))) != 0); - } - - /** - * VALIDITY is a bit matrix defining whether one - * character is allowed to be typed in after the - * previous one (array index). Determining the - * validity is done by bit-anding the 2nd char - * type's mask (obtained by 1 << chartype) with - * the array element indexed by the first char - * type. If the result is non-zero, the 2nd - * character is allowed to follow the first. - */ - - /* Please note that the bits in the comment below - * are displayed least significant bit first. - * The actual value reflexs this representation - * when the bits are swapped. - */ - - private static final int[] INPUTVALIDITY = { - /* NON 1110 010 0 0000 0000 0 */ 0x00027, - /* CONS 1111 111 1 1111 1111 1 */ 0x1ffff, - /* LV 0100 000 0 0000 0000 0 */ 0x00002, - /* FV1 1110 010 0 0000 0000 0 */ 0x00027, - /* FV2 1110 010 0 0000 0000 0 */ 0x00027, - /* FV3 1110 110 0 0000 0000 0 */ 0x00037, - /* FV4 1110 010 0 0000 0000 0 */ 0x00027, - /* BV1 1110 010 0 0011 0000 0 */ 0x00c27, - /* BV2 1110 010 0 0010 0000 0 */ 0x00427, - /* BD 1110 010 0 0000 0000 0 */ 0x00027, - /* TONE 1111 011 0 0000 0000 0 */ 0x0006f, - /* AD1 1110 010 0 0000 0000 0 */ 0x00027, - /* AD2 1110 010 0 0000 0000 0 */ 0x00027, - /* AD3 1110 010 0 0000 0000 0 */ 0x00027, - /* AV1 1110 010 0 0011 0000 0 */ 0x00c27, - /* AV2 1110 010 0 0010 0000 0 */ 0x00427, - /* AV3 1110 010 0 0010 0100 0 */ 0x02427 - }; - - private static final int[] COMPOSABLE = { - /* NON 0000 000 0 0000 0000 0 */ 0x00000, - /* CONS 0000 001 1 1111 1111 1 */ 0x1ffc0, - /* LV 0000 000 0 0000 0000 0 */ 0x00000, - /* FV1 0000 000 0 0000 0000 0 */ 0x00000, - /* FV2 0000 000 0 0000 0000 0 */ 0x00000, - /* FV3 0000 000 0 0000 0000 0 */ 0x00000, - /* FV4 0000 000 0 0000 0000 0 */ 0x00000, - /* BV1 0000 000 0 0011 0000 0 */ 0x00c00, - /* BV2 0000 000 0 0010 0000 0 */ 0x00400, - /* BD 0000 000 0 0000 0000 0 */ 0x00000, - /* TONE 0000 001 0 0000 0000 0 */ 0x00040, - /* AD1 0000 000 0 0000 0000 0 */ 0x00000, - /* AD2 0000 000 0 0000 0000 0 */ 0x00000, - /* AD3 0000 000 0 0000 0000 0 */ 0x00000, - /* AV1 0000 000 0 0011 0000 0 */ 0x00c00, - /* AV2 0000 000 0 0010 0000 0 */ 0x00400, - /* AV3 0000 000 0 0010 0100 0 */ 0x02400 - }; - - private static final int[] REPLACABLE = { - /* NON 0000 000 0 0000 0000 0 */ 0x00000, - /* CONS 0000 000 0 0000 0000 0 */ 0x00000, - /* LV 0000 000 0 0000 0000 0 */ 0x00000, - /* FV1 0000 000 0 0000 0000 0 */ 0x00000, - /* FV2 0000 000 0 0000 0000 0 */ 0x00000, - /* FV3 0000 000 0 0000 0000 0 */ 0x00000, - /* FV4 0000 001 1 1001 1111 1 */ 0x1f9c0, - /* BV1 0000 001 1 1100 1111 1 */ 0x1f3c0, - /* BV2 0000 001 1 1101 1111 1 */ 0x1fbc0, - /* BD 0000 001 1 1111 1111 1 */ 0x1ffc0, - /* TONE 0000 000 0 0111 1100 0 */ 0x03e00, - /* AD1 0000 001 0 1111 1101 1 */ 0x1bf40, - /* AD2 0000 001 1 1111 1111 1 */ 0x1ffc0, - /* AD3 0000 001 1 1111 1111 0 */ 0x0ffc0, - /* AV1 0000 001 1 1100 1111 1 */ 0x1f3c0, - /* AV2 0000 001 1 1101 1111 1 */ 0x1fbc0, - /* AV3 0000 001 1 1101 1011 1 */ 0x1dbc0 - }; - - private static final int[] SWAPPABLE = { - /* NON 0000 000 0 0000 0000 0 */ 0x00000, - /* CONS 0000 000 0 0000 0000 0 */ 0x00000, - /* LV 0000 000 0 0000 0000 0 */ 0x00000, - /* FV1 0000 000 0 0000 0000 0 */ 0x00000, - /* FV2 0000 000 0 0000 0000 0 */ 0x00000, - /* FV3 0000 000 0 0000 0000 0 */ 0x00000, - /* FV4 0000 000 0 0010 0000 0 */ 0x00400, - /* BV1 0000 000 0 0000 0000 0 */ 0x00000, - /* BV2 0000 000 0 0000 0000 0 */ 0x00000, - /* BD 0000 000 0 0000 0000 0 */ 0x00000, - /* TONE 0000 000 1 1000 0011 1 */ 0x1c180, - /* AD1 0000 000 1 0000 0010 0 */ 0x04080, - /* AD2 0000 000 0 0000 0000 0 */ 0x00000, - /* AD3 0000 000 0 0000 0000 1 */ 0x10000, - /* AV1 0000 000 0 0000 0000 0 */ 0x00000, - /* AV2 0000 000 0 0000 0000 0 */ 0x00000, - /* AV3 0000 000 0 0000 0000 0 */ 0x00000 - }; - - public static boolean isInputValid(char c1, char c2) { - return isValid(c1, c2, INPUTVALIDITY); - } - - public static boolean isComposable(char c1, char c2) { - return isValid(c1, c2, COMPOSABLE); - } - - public static boolean isSwappable(char c1, char c2) { - return isValid(c1, c2, SWAPPABLE); - } - - public static boolean isReplacable(char c1, char c2) { - return isValid(c1, c2, REPLACABLE); - } - - public static boolean isForward(char c) { - return (getCharType(c) < FV4); - } - - public static boolean isDead(char c) { - return (getCharType(c) > FV3); - } - - public boolean isInputValid(char current) { - int offset = requests.getInsertPositionOffset(); - if (offset == 0) { - byte charType = getCharType(current); - return ((charType < FV1) || (charType == FV3)); - } - else { - char prev = requests.getCommittedText(offset-1, offset, null).first(); - - if(isForward(current)) { - if (isInputValid(prev, current)) { - if (getCharType(prev) == TONE && - getCharType(current) == FV1) { - if (offset == 1) { - return true; - } else { - char pprev = - requests.getCommittedText(offset-2, offset-1, null).first(); - return isInputValid(pprev, current); - } - } else { - return true; - } - } else if (prev == '\u0e32' && // SARA AA - current == '\u0e30') { // SARA A - return true; - } else if (prev == '\u0e4d' && // NIKAHIT - current == '\u0e32') { // SARA AA - // Special compose to SARA AM - return true; - } else { - return false; - } - } else { - if(isInputValid(prev, current)) { - if (getCharType(prev) == TONE && - getCharType(current) == FV4) { - return (offset != 1); - } else { - return true; - } - } else { - return false; - } - } - } - } -}
--- a/src/share/classes/com/sun/inputmethods/internal/thaiim/java.awt.im.spi.InputMethodDescriptor Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -com.sun.inputmethods.internal.thaiim.ThaiInputMethodDescriptor
--- a/src/share/classes/com/sun/inputmethods/internal/thaiim/resources/DisplayNames.properties Wed Jun 16 12:40:22 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -# -# Default Input method display names for Thai input methods -# - -DisplayName.Thai = Thai Input Method -
--- a/src/share/classes/com/sun/jarsigner/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jarsigner/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -20,9 +20,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <head> <title>Jarsigner Signing Mechanism Package</title>
--- a/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java Wed Jun 16 14:07:47 2010 -0700 @@ -35,6 +35,7 @@ import static com.sun.java.swing.plaf.windows.TMSchema.*; import static com.sun.java.swing.plaf.windows.XPStyle.*; import sun.swing.table.*; +import sun.swing.SwingUtilities2; public class WindowsTableHeaderUI extends BasicTableHeaderUI { @@ -163,18 +164,13 @@ return this; } - private int viewIndexForColumn(TableColumn aColumn) { - if (aColumn != null) { - return header.getTable().convertColumnIndexToView( - aColumn.getModelIndex()); - } - return -1; - } - public void paint(Graphics g) { Dimension size = getSize(); State state = State.NORMAL; - if (column == viewIndexForColumn(header.getDraggedColumn())) { + TableColumn draggedColumn = header.getDraggedColumn(); + if (draggedColumn != null && + column == SwingUtilities2.convertColumnIndexToView( + header.getColumnModel(), draggedColumn.getModelIndex())) { state = State.PRESSED; } else if (isSelected || hasFocus || hasRollover) { state = State.HOT;
--- a/src/share/classes/com/sun/java/util/jar/pack/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/java/util/jar/pack/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/com/sun/jdi/connect/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jdi/connect/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/com/sun/jdi/connect/spi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jdi/connect/spi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/com/sun/jdi/event/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jdi/event/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/com/sun/jdi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jdi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/com/sun/jdi/request/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jdi/request/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/com/sun/jmx/defaults/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/defaults/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/com/sun/jmx/interceptor/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/interceptor/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/com/sun/jmx/mbeanserver/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/mbeanserver/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/com/sun/jmx/remote/internal/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/remote/internal/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/com/sun/jmx/snmp/IPAcl/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </HEAD> <BODY>
--- a/src/share/classes/com/sun/jmx/snmp/agent/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/agent/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </HEAD> <BODY>
--- a/src/share/classes/com/sun/jmx/snmp/daemon/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/daemon/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </HEAD> <BODY>
--- a/src/share/classes/com/sun/jmx/snmp/defaults/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/defaults/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </HEAD> <BODY>
--- a/src/share/classes/com/sun/jmx/snmp/internal/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/internal/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </HEAD> <BODY>
--- a/src/share/classes/com/sun/jmx/snmp/mpm/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/mpm/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </HEAD> <BODY>
--- a/src/share/classes/com/sun/jmx/snmp/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </HEAD> <BODY>
--- a/src/share/classes/com/sun/jmx/snmp/tasks/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/tasks/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </HEAD> <BODY>
--- a/src/share/classes/com/sun/management/mgmt-overview.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/management/mgmt-overview.html Wed Jun 16 14:07:47 2010 -0700 @@ -24,9 +24,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/com/sun/management/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/management/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/com/sun/net/ssl/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/net/ssl/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -23,9 +23,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. -->
--- a/src/share/classes/com/sun/rowset/providers/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/rowset/providers/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -28,9 +28,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <title>javax.sql.rowset.providers Package</title> </head>
--- a/src/share/classes/com/sun/servicetag/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/servicetag/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. -->
--- a/src/share/classes/com/sun/servicetag/resources/register.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/servicetag/resources/register.html Wed Jun 16 14:07:47 2010 -0700 @@ -25,9 +25,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <style type="text/css">
--- a/src/share/classes/com/sun/servicetag/resources/register_ja.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/servicetag/resources/register_ja.html Wed Jun 16 14:07:47 2010 -0700 @@ -25,9 +25,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <style type="text/css">
--- a/src/share/classes/com/sun/servicetag/resources/register_zh_CN.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/servicetag/resources/register_zh_CN.html Wed Jun 16 14:07:47 2010 -0700 @@ -25,9 +25,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <style type="text/css">
--- a/src/share/classes/com/sun/tools/hat/resources/oqlhelp.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/com/sun/tools/hat/resources/oqlhelp.html Wed Jun 16 14:07:47 2010 -0700 @@ -18,9 +18,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <html>
--- a/src/share/classes/java/awt/Font.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/awt/Font.java Wed Jun 16 14:07:47 2010 -0700 @@ -343,6 +343,10 @@ * Identify a font resource of type TRUETYPE. * Used to specify a TrueType font resource to the * {@link #createFont} method. + * The TrueType format was extended to become the OpenType + * format, which adds support for fonts with Postscript outlines, + * this tag therefore references these fonts, as well as those + * with TrueType outlines. * @since 1.3 */
--- a/src/share/classes/java/beans/DefaultPersistenceDelegate.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/beans/DefaultPersistenceDelegate.java Wed Jun 16 14:07:47 2010 -0700 @@ -222,6 +222,25 @@ // Write out the properties of this instance. private void initBean(Class type, Object oldInstance, Object newInstance, Encoder out) { + for (Field field : type.getFields()) { + int mod = field.getModifiers(); + if (Modifier.isFinal(mod) || Modifier.isStatic(mod) || Modifier.isTransient(mod)) { + continue; + } + try { + Expression oldGetExp = new Expression(field, "get", new Object[] { oldInstance }); + Expression newGetExp = new Expression(field, "get", new Object[] { newInstance }); + Object oldValue = oldGetExp.getValue(); + Object newValue = newGetExp.getValue(); + out.writeExpression(oldGetExp); + if (!equals(newValue, out.get(oldValue))) { + out.writeStatement(new Statement(field, "set", new Object[] { oldInstance, oldValue })); + } + } + catch (Exception exception) { + out.getExceptionListener().exceptionThrown(exception); + } + } BeanInfo info; try { info = Introspector.getBeanInfo(type);
--- a/src/share/classes/java/beans/MetaData.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/beans/MetaData.java Wed Jun 16 14:07:47 2010 -0700 @@ -701,56 +701,6 @@ // AWT /** - * The persistence delegate for {@link Dimension}. - * It is impossible to use {@link DefaultPersistenceDelegate} - * because all getters have return types that differ from parameter types - * of the constructor {@link Dimension#Dimension(int, int)}. - * - * @author Sergey A. Malenkov - */ -final class java_awt_Dimension_PersistenceDelegate extends PersistenceDelegate { - protected boolean mutatesTo(Object oldInstance, Object newInstance) { - return oldInstance.equals(newInstance); - } - - protected Expression instantiate(Object oldInstance, Encoder out) { - Dimension dimension = (Dimension) oldInstance; - Object[] args = new Object[] { - dimension.width, - dimension.height, - }; - return new Expression(dimension, dimension.getClass(), "new", args); - } -} - -/** - * The persistence delegate for {@link GridBagConstraints}. - * It is impossible to use {@link DefaultPersistenceDelegate} - * because this class does not have any properties. - * - * @author Sergey A. Malenkov - */ -final class java_awt_GridBagConstraints_PersistenceDelegate extends PersistenceDelegate { - protected Expression instantiate(Object oldInstance, Encoder out) { - GridBagConstraints gbc = (GridBagConstraints) oldInstance; - Object[] args = new Object[] { - gbc.gridx, - gbc.gridy, - gbc.gridwidth, - gbc.gridheight, - gbc.weightx, - gbc.weighty, - gbc.anchor, - gbc.fill, - gbc.insets, - gbc.ipadx, - gbc.ipady, - }; - return new Expression(gbc, gbc.getClass(), "new", args); - } -} - -/** * The persistence delegate for {@link Insets}. * It is impossible to use {@link DefaultPersistenceDelegate} * because this class does not have any properties. @@ -775,54 +725,6 @@ } /** - * The persistence delegate for {@link Point}. - * It is impossible to use {@link DefaultPersistenceDelegate} - * because all getters have return types that differ from parameter types - * of the constructor {@link Point#Point(int, int)}. - * - * @author Sergey A. Malenkov - */ -final class java_awt_Point_PersistenceDelegate extends PersistenceDelegate { - protected boolean mutatesTo(Object oldInstance, Object newInstance) { - return oldInstance.equals(newInstance); - } - - protected Expression instantiate(Object oldInstance, Encoder out) { - Point point = (Point) oldInstance; - Object[] args = new Object[] { - point.x, - point.y, - }; - return new Expression(point, point.getClass(), "new", args); - } -} - -/** - * The persistence delegate for {@link Rectangle}. - * It is impossible to use {@link DefaultPersistenceDelegate} - * because all getters have return types that differ from parameter types - * of the constructor {@link Rectangle#Rectangle(int, int, int, int)}. - * - * @author Sergey A. Malenkov - */ -final class java_awt_Rectangle_PersistenceDelegate extends PersistenceDelegate { - protected boolean mutatesTo(Object oldInstance, Object newInstance) { - return oldInstance.equals(newInstance); - } - - protected Expression instantiate(Object oldInstance, Encoder out) { - Rectangle rectangle = (Rectangle) oldInstance; - Object[] args = new Object[] { - rectangle.x, - rectangle.y, - rectangle.width, - rectangle.height, - }; - return new Expression(rectangle, rectangle.getClass(), "new", args); - } -} - -/** * The persistence delegate for {@link Font}. * It is impossible to use {@link DefaultPersistenceDelegate} * because size of the font can be float value.
--- a/src/share/classes/java/beans/XMLEncoder.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/beans/XMLEncoder.java Wed Jun 16 14:07:47 2010 -0700 @@ -407,7 +407,20 @@ os.writeObject(this); */ mark(oldStm); - statementList(oldStm.getTarget()).add(oldStm); + Object target = oldStm.getTarget(); + if (target instanceof Field) { + String method = oldStm.getMethodName(); + Object[] args = oldStm.getArguments(); + if ((method == null) || (args == null)) { + } + else if (method.equals("get") && (args.length == 1)) { + target = args[0]; + } + else if (method.equals("set") && (args.length == 2)) { + target = args[0]; + } + } + statementList(target).add(oldStm); } catch (Exception e) { getExceptionListener().exceptionThrown(new Exception("XMLEncoder: discarding statement " + oldStm, e)); @@ -703,7 +716,9 @@ statements.add(exp); } outputValue(target, outer, false); - outputValue(value, outer, isArgument); + if (expression) { + outputValue(value, outer, isArgument); + } return; } if (expression && (d.refs > 1)) { @@ -722,8 +737,10 @@ } else if ((!expression && methodName.startsWith("set") && args.length == 1) || (expression && methodName.startsWith("get") && args.length == 0)) { - attributes = attributes + " property=" + - quote(Introspector.decapitalize(methodName.substring(3))); + if (3 < methodName.length()) { + attributes = attributes + " property=" + + quote(Introspector.decapitalize(methodName.substring(3))); + } } else if (!methodName.equals("new") && !methodName.equals("newInstance")) { attributes = attributes + " method=" + quote(methodName);
--- a/src/share/classes/java/nio/channels/exceptions Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/nio/channels/exceptions Wed Jun 16 14:07:47 2010 -0700 @@ -28,7 +28,7 @@ SINCE=1.4 PACKAGE=java.nio.channels # This year should only change if the generated source is modified. -COPYRIGHT_YEARS=2000-2007 +COPYRIGHT_YEARS="2000, 2007," SUPER=java.io.IOException
--- a/src/share/classes/java/nio/charset/exceptions Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/nio/charset/exceptions Wed Jun 16 14:07:47 2010 -0700 @@ -28,7 +28,7 @@ SINCE=1.4 PACKAGE=java.nio.charset # This year should only change if the generated source is modified. -COPYRIGHT_YEARS=2000-2007 +COPYRIGHT_YEARS="2000, 2007," SUPER=java.io.IOException
--- a/src/share/classes/java/nio/exceptions Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/nio/exceptions Wed Jun 16 14:07:47 2010 -0700 @@ -28,7 +28,7 @@ SINCE=1.4 PACKAGE=java.nio # This year should only change if the generated source is modified. -COPYRIGHT_YEARS=2000-2007 +COPYRIGHT_YEARS="2000, 2007," SUPER=RuntimeException
--- a/src/share/classes/java/security/acl/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/security/acl/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/security/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/security/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/security/spec/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/security/spec/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/sql/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/sql/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/text/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/text/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/text/spi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/text/spi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/util/jar/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/util/jar/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/util/logging/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/util/logging/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/util/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/util/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/util/prefs/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/util/prefs/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/util/regex/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/util/regex/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/util/spi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/util/spi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/java/util/zip/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/java/util/zip/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/accessibility/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/accessibility/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </HEAD> <BODY BGCOLOR="#FFFFFF">
--- a/src/share/classes/javax/crypto/interfaces/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/crypto/interfaces/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -18,9 +18,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
--- a/src/share/classes/javax/crypto/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/crypto/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -18,9 +18,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
--- a/src/share/classes/javax/crypto/spec/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/crypto/spec/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -18,9 +18,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
--- a/src/share/classes/javax/imageio/event/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/event/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/imageio/metadata/doc-files/bmp_metadata.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/metadata/doc-files/bmp_metadata.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <title>BMP Metadata Format Specification</title>
--- a/src/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <title>GIF Metadata Format Specification</title>
--- a/src/share/classes/javax/imageio/metadata/doc-files/jpeg_metadata.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/metadata/doc-files/jpeg_metadata.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <title>JPEG Metadata Format Specification and Usage Notes</title>
--- a/src/share/classes/javax/imageio/metadata/doc-files/png_metadata.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/metadata/doc-files/png_metadata.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <title>PNG Metadata Format Specification</title>
--- a/src/share/classes/javax/imageio/metadata/doc-files/standard_metadata.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/metadata/doc-files/standard_metadata.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <title>Standard Metadata Format Specification</title>
--- a/src/share/classes/javax/imageio/metadata/doc-files/wbmp_metadata.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/metadata/doc-files/wbmp_metadata.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <title>WBMP Metadata Format Specification</title>
--- a/src/share/classes/javax/imageio/metadata/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/metadata/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/imageio/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/imageio/plugins/bmp/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/plugins/bmp/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/imageio/plugins/jpeg/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/plugins/jpeg/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/imageio/spi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/spi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/imageio/stream/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/imageio/stream/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/management/build.xml Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/management/build.xml Wed Jun 16 14:07:47 2010 -0700 @@ -51,7 +51,7 @@ --> <description> - Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. + Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. Description: JMX API Version 1.4 - Source Code from Java SE 6 </description>
--- a/src/share/classes/javax/management/loading/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/management/loading/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/management/modelmbean/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/management/modelmbean/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/management/monitor/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/management/monitor/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/management/openmbean/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/management/openmbean/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/management/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/management/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/management/relation/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/management/relation/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/management/remote/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/management/remote/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/management/remote/rmi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/management/remote/rmi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/management/timer/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/management/timer/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/naming/directory/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/naming/directory/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/naming/event/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/naming/event/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/naming/ldap/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/naming/ldap/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/naming/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/naming/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/naming/spi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/naming/spi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/net/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/net/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/net/ssl/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/net/ssl/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/print/attribute/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/print/attribute/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/print/attribute/standard/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/print/attribute/standard/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/print/event/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/print/event/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/print/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/print/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/rmi/ssl/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/rmi/ssl/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/script/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/script/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/security/auth/callback/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/security/auth/callback/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/security/auth/kerberos/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/security/auth/kerberos/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/security/auth/login/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/security/auth/login/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/security/auth/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/security/auth/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/security/auth/spi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/security/auth/spi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/security/auth/x500/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/security/auth/x500/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/security/cert/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/security/cert/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/security/sasl/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/security/sasl/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/sound/midi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/sound/midi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/sound/midi/spi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/sound/midi/spi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/sound/sampled/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/sound/sampled/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/sound/sampled/spi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/sound/sampled/spi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/sql/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/sql/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/sql/rowset/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/sql/rowset/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -24,9 +24,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <title>javax.sql.rowset Package</title>
--- a/src/share/classes/javax/sql/rowset/serial/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/sql/rowset/serial/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -27,9 +27,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <title>javax.sql.rowset.serial</title> </head>
--- a/src/share/classes/javax/sql/rowset/spi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/sql/rowset/spi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -27,9 +27,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <title>javax.sql.rowset.spi</title>
--- a/src/share/classes/javax/swing/DefaultDesktopManager.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/DefaultDesktopManager.java Wed Jun 16 14:07:47 2010 -0700 @@ -26,16 +26,12 @@ package javax.swing; +import com.sun.awt.AWTUtilities; +import sun.awt.AWTAccessor; +import sun.awt.SunToolkit; + import java.awt.*; import java.beans.PropertyVetoException; -import java.beans.PropertyChangeEvent; -import javax.swing.border.Border; -import java.awt.event.ComponentListener; -import java.awt.event.ComponentAdapter; -import java.awt.event.ComponentEvent; - -import sun.awt.AWTAccessor; -import sun.awt.SunToolkit; /** This is an implementation of the <code>DesktopManager</code>. * It currently implements the basic behaviors for managing @@ -318,7 +314,10 @@ dragMode = DEFAULT_DRAG_MODE; if (p != null) { String mode = (String)p.getClientProperty("JDesktopPane.dragMode"); - if (mode != null && mode.equals("outline")) { + Window window = SwingUtilities.getWindowAncestor(f); + if (window != null && !AWTUtilities.isWindowOpaque(window)) { + dragMode = DEFAULT_DRAG_MODE; + } else if (mode != null && mode.equals("outline")) { dragMode = OUTLINE_DRAG_MODE; } else if (mode != null && mode.equals("faster") && f instanceof JInternalFrame
--- a/src/share/classes/javax/swing/JTable.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/JTable.java Wed Jun 16 14:07:47 2010 -0700 @@ -2583,10 +2583,8 @@ * @see #convertColumnIndexToView */ public int convertColumnIndexToModel(int viewColumnIndex) { - if (viewColumnIndex < 0) { - return viewColumnIndex; - } - return getColumnModel().getColumn(viewColumnIndex).getModelIndex(); + return SwingUtilities2.convertColumnIndexToModel( + getColumnModel(), viewColumnIndex); } /** @@ -2603,16 +2601,8 @@ * @see #convertColumnIndexToModel */ public int convertColumnIndexToView(int modelColumnIndex) { - if (modelColumnIndex < 0) { - return modelColumnIndex; - } - TableColumnModel cm = getColumnModel(); - for (int column = 0; column < getColumnCount(); column++) { - if (cm.getColumn(column).getModelIndex() == modelColumnIndex) { - return column; - } - } - return -1; + return SwingUtilities2.convertColumnIndexToView( + getColumnModel(), modelColumnIndex); } /**
--- a/src/share/classes/javax/swing/border/MatteBorder.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/border/MatteBorder.java Wed Jun 16 14:07:47 2010 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, 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 @@ -26,7 +26,6 @@ import java.awt.Graphics; import java.awt.Insets; -import java.awt.Rectangle; import java.awt.Component; import java.awt.Color; @@ -133,63 +132,29 @@ g.fillRect(width - insets.right, 0, insets.right, height - insets.bottom); } else if (tileIcon != null) { - int tileW = tileIcon.getIconWidth(); int tileH = tileIcon.getIconHeight(); - int xpos, ypos, startx, starty; - Graphics cg; - - // Paint top matte edge - cg = g.create(); - cg.setClip(0, 0, width, insets.top); - for (ypos = 0; insets.top - ypos > 0; ypos += tileH) { - for (xpos = 0; width - xpos > 0; xpos += tileW) { - tileIcon.paintIcon(c, cg, xpos, ypos); - } - } - cg.dispose(); - - // Paint left matte edge - cg = g.create(); - cg.setClip(0, insets.top, insets.left, height - insets.top); - starty = insets.top - (insets.top%tileH); - startx = 0; - for (ypos = starty; height - ypos > 0; ypos += tileH) { - for (xpos = startx; insets.left - xpos > 0; xpos += tileW) { - tileIcon.paintIcon(c, cg, xpos, ypos); - } - } - cg.dispose(); - - // Paint bottom matte edge - cg = g.create(); - cg.setClip(insets.left, height - insets.bottom, width - insets.left, insets.bottom); - starty = (height - insets.bottom) - ((height - insets.bottom)%tileH); - startx = insets.left - (insets.left%tileW); - for (ypos = starty; height - ypos > 0; ypos += tileH) { - for (xpos = startx; width - xpos > 0; xpos += tileW) { - tileIcon.paintIcon(c, cg, xpos, ypos); - } - } - cg.dispose(); - - // Paint right matte edge - cg = g.create(); - cg.setClip(width - insets.right, insets.top, insets.right, height - insets.top - insets.bottom); - starty = insets.top - (insets.top%tileH); - startx = width - insets.right - ((width - insets.right)%tileW); - for (ypos = starty; height - ypos > 0; ypos += tileH) { - for (xpos = startx; width - xpos > 0; xpos += tileW) { - tileIcon.paintIcon(c, cg, xpos, ypos); - } - } - cg.dispose(); + paintEdge(c, g, 0, 0, width - insets.right, insets.top, tileW, tileH); + paintEdge(c, g, 0, insets.top, insets.left, height - insets.top, tileW, tileH); + paintEdge(c, g, insets.left, height - insets.bottom, width - insets.left, insets.bottom, tileW, tileH); + paintEdge(c, g, width - insets.right, 0, insets.right, height - insets.bottom, tileW, tileH); } g.translate(-x, -y); g.setColor(oldColor); } + private void paintEdge(Component c, Graphics g, int x, int y, int width, int height, int tileW, int tileH) { + g = g.create(x, y, width, height); + int sY = -(y % tileH); + for (x = -(x % tileW); x < width; x += tileW) { + for (y = sY; y < height; y += tileH) { + this.tileIcon.paintIcon(c, g, x, y); + } + } + g.dispose(); + } + /** * Reinitialize the insets parameter with this Border's current Insets. * @param c the component for which this border insets value applies
--- a/src/share/classes/javax/swing/border/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/border/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/colorchooser/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/colorchooser/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head> <body bgcolor="white">
--- a/src/share/classes/javax/swing/event/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/event/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/filechooser/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/filechooser/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> <META NAME="Author" Content="Eric Armstrong">
--- a/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java Wed Jun 16 14:07:47 2010 -0700 @@ -3524,7 +3524,13 @@ } else if (name =="indexForTitle") { calculatedBaseline = false; - updateHtmlViews((Integer)e.getNewValue()); + Integer index = (Integer) e.getNewValue(); + // remove the current index + // to let updateHtmlViews() insert the correct one + if (htmlViews != null) { + htmlViews.removeElementAt(index); + } + updateHtmlViews(index); } else if (name == "tabLayoutPolicy") { BasicTabbedPaneUI.this.uninstallUI(pane); BasicTabbedPaneUI.this.installUI(pane);
--- a/src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java Wed Jun 16 14:07:47 2010 -0700 @@ -98,15 +98,18 @@ private Cursor otherCursor = resizeCursor; public void mouseClicked(MouseEvent e) { + if (!header.isEnabled()) { + return; + } if (e.getClickCount() % 2 == 1 && - SwingUtilities.isLeftMouseButton(e)){ + SwingUtilities.isLeftMouseButton(e)) { JTable table = header.getTable(); RowSorter sorter; if (table != null && (sorter = table.getRowSorter()) != null) { int columnIndex = header.columnAtPoint(e.getPoint()); if (columnIndex != -1) { columnIndex = table.convertColumnIndexToModel( - columnIndex); + columnIndex); sorter.toggleSortOrder(columnIndex); } } @@ -140,6 +143,9 @@ } public void mousePressed(MouseEvent e) { + if (!header.isEnabled()) { + return; + } header.setDraggedColumn(null); header.setResizingColumn(null); header.setDraggedDistance(0); @@ -182,6 +188,9 @@ } public void mouseMoved(MouseEvent e) { + if (!header.isEnabled()) { + return; + } if (canResize(getResizingColumn(e.getPoint()), header) != (header.getCursor() == resizeCursor)) { swapCursor(); @@ -190,6 +199,9 @@ } public void mouseDragged(MouseEvent e) { + if (!header.isEnabled()) { + return; + } int mouseX = e.getX(); TableColumn resizingColumn = header.getResizingColumn(); @@ -217,21 +229,23 @@ if (0 <= newColumnIndex && newColumnIndex < cm.getColumnCount()) { int width = cm.getColumn(newColumnIndex).getWidth(); if (Math.abs(draggedDistance) > (width / 2)) { - JTable table = header.getTable(); mouseXOffset = mouseXOffset + direction * width; header.setDraggedDistance(draggedDistance - direction * width); //Cache the selected column. - int selectedIndex = table.convertColumnIndexToModel( - getSelectedColumnIndex()); + int selectedIndex = + SwingUtilities2.convertColumnIndexToModel( + header.getColumnModel(), + getSelectedColumnIndex()); //Now do the move. cm.moveColumn(columnIndex, newColumnIndex); //Update the selected index. selectColumn( - table.convertColumnIndexToView(selectedIndex), + SwingUtilities2.convertColumnIndexToView( + header.getColumnModel(), selectedIndex), false); return; @@ -244,6 +258,9 @@ } public void mouseReleased(MouseEvent e) { + if (!header.isEnabled()) { + return; + } setDraggedDistance(0, viewIndexForColumn(header.getDraggedColumn())); header.setResizingColumn(null); @@ -253,10 +270,16 @@ } public void mouseEntered(MouseEvent e) { + if (!header.isEnabled()) { + return; + } updateRolloverColumn(e); } public void mouseExited(MouseEvent e) { + if (!header.isEnabled()) { + return; + } int oldRolloverColumn = rolloverColumn; rolloverColumn = -1; rolloverColumnUpdated(oldRolloverColumn, rolloverColumn);
--- a/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Wed Jun 16 14:07:47 2010 -0700 @@ -779,20 +779,16 @@ if (c instanceof JTextComponent) { editor = (JTextComponent) c; + // common case is background painted... this can + // easily be changed by subclasses or from outside + // of the component. + LookAndFeel.installProperty(editor, "opaque", Boolean.TRUE); + LookAndFeel.installProperty(editor, "autoscrolls", Boolean.TRUE); + // install defaults installDefaults(); installDefaults2(); - // This is a workaround as these should not override what synth has - // set them to - if (! (this instanceof SynthUI)) { - // common case is background painted... this can - // easily be changed by subclasses or from outside - // of the component. - LookAndFeel.installProperty(editor, "opaque", Boolean.TRUE); - LookAndFeel.installProperty(editor, "autoscrolls", Boolean.TRUE); - } - // attach to the model and editor editor.addPropertyChangeListener(updateHandler); Document doc = editor.getDocument();
--- a/src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java Wed Jun 16 14:07:47 2010 -0700 @@ -56,8 +56,8 @@ } public void uninstallUI(JComponent c) { + uninstallDefaults(c); super.uninstallUI(c); - } protected void installDefaults(JComponent c) {
--- a/src/share/classes/javax/swing/plaf/basic/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/basic/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/plaf/metal/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/metal/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/plaf/multi/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/multi/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/plaf/nimbus/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/nimbus/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/plaf/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java Wed Jun 16 14:07:47 2010 -0700 @@ -361,12 +361,14 @@ cMax = table.getColumnCount()-1; } - // Paint the grid. - paintGrid(context, g, rMin, rMax, cMin, cMax); - // Paint the cells. paintCells(context, g, rMin, rMax, cMin, cMax); + // Paint the grid. + // it is important to paint the grid after the cells, otherwise the grid will be overpainted + // because in Synth cell renderers are likely to be opaque + paintGrid(context, g, rMin, rMax, cMin, cMax); + paintDropLines(context, g); }
--- a/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java Wed Jun 16 14:07:47 2010 -0700 @@ -72,7 +72,28 @@ } /** - * @inheritDoc + * Installs the UI for a component. This does the following + * things. + * <ol> + * <li> + * Sets opaqueness of the associated component according to its style, + * if the opaque property has not already been set by the client program. + * <li> + * Installs the default caret and highlighter into the + * associated component. These properties are only set if their + * current value is either {@code null} or an instance of + * {@link UIResource}. + * <li> + * Attaches to the editor and model. If there is no + * model, a default one is created. + * <li> + * Creates the view factory and the view hierarchy used + * to represent the model. + * </ol> + * + * @param c the editor component + * @see BasicTextUI#installUI + * @see ComponentUI#installUI */ @Override public void installUI(JComponent c) {
--- a/src/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/plaf/synth/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/plaf/synth/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. -->
--- a/src/share/classes/javax/swing/table/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/table/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/text/WrappedPlainView.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/text/WrappedPlainView.java Wed Jun 16 14:07:47 2010 -0700 @@ -24,8 +24,6 @@ */ package javax.swing.text; -import java.util.Vector; -import java.util.Properties; import java.awt.*; import java.lang.ref.SoftReference; import javax.swing.event.*; @@ -236,9 +234,6 @@ Segment segment = SegmentCache.getSharedSegment(); loadText(segment, p0, p1); int currentWidth = getWidth(); - if (currentWidth == Integer.MAX_VALUE) { - currentWidth = (int) getDefaultSpan(View.X_AXIS); - } if (wordWrap) { p = p0 + Utilities.getBreakLocation(segment, metrics, tabBase, tabBase + currentWidth, @@ -324,53 +319,6 @@ tabSize = getTabSize() * metrics.charWidth('m'); } - /** - * Return reasonable default values for the view dimensions. The standard - * text terminal size 80x24 is pretty suitable for the wrapped plain view. - * - * The size should not be larger than the component housing the view's - * container. - */ - private float getDefaultSpan(int axis) { - Container host = getContainer(); - Component parent = null; - - if (host != null) { - parent = host.getParent(); - } - - switch (axis) { - case View.X_AXIS: - int defaultWidth = 80 * metrics.getWidths()['M']; - int parentWidth = 0; - - if (parent != null) { - parentWidth = parent.getWidth(); - } - - if (defaultWidth > parentWidth) { - return parentWidth; - } - return defaultWidth; - - case View.Y_AXIS: - int defaultHeight = 24 * metrics.getHeight(); - int parentHeight = 0; - - if (parent != null) { - parentHeight = parent.getHeight(); - } - - if (defaultHeight > parentHeight) { - return parentHeight; - } - return defaultHeight; - - default: - throw new IllegalArgumentException("Invalid axis: " + axis); - } - } - // --- TabExpander methods ------------------------------------------ /** @@ -605,18 +553,14 @@ if (width == Integer.MAX_VALUE) { // We have been initially set to MAX_VALUE, but we don't // want this as our preferred. - width = getDefaultSpan(axis); + return 100f; } return width; case View.Y_AXIS: - if (getDocument().getLength() > 0) { - if ((lineCount < 0) || widthChanging) { - breakLines(getStartOffset()); - } - return lineCount * metrics.getHeight(); - } else { - return getDefaultSpan(axis); + if (lineCount < 0 || widthChanging) { + breakLines(getStartOffset()); } + return lineCount * metrics.getHeight(); default: throw new IllegalArgumentException("Invalid axis: " + axis); }
--- a/src/share/classes/javax/swing/text/html/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/text/html/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/text/html/parser/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/text/html/parser/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/text/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/text/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/text/rtf/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/text/rtf/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/tree/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/tree/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/swing/undo/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/swing/undo/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/xml/crypto/dom/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/xml/crypto/dom/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -20,9 +20,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/xml/crypto/dsig/dom/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/xml/crypto/dsig/dom/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -20,9 +20,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/xml/crypto/dsig/keyinfo/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/xml/crypto/dsig/keyinfo/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -20,9 +20,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/xml/crypto/dsig/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/xml/crypto/dsig/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -20,9 +20,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/xml/crypto/dsig/spec/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/xml/crypto/dsig/spec/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -20,9 +20,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/javax/xml/crypto/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/javax/xml/crypto/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -20,9 +20,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/org/ietf/jgss/package.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/org/ietf/jgss/package.html Wed Jun 16 14:07:47 2010 -0700 @@ -21,9 +21,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- a/src/share/classes/overview-core.html Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/overview-core.html Wed Jun 16 14:07:47 2010 -0700 @@ -22,9 +22,9 @@ 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -CA 95054 USA or visit www.sun.com if you need additional information or -have any questions. +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. --> </head>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/classes/sun/font/GlyphDisposedListener.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,32 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.font; + +import java.util.*; + +public interface GlyphDisposedListener { + public void glyphDisposed(ArrayList<Long> glyphs); +}
--- a/src/share/classes/sun/font/StrikeCache.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/sun/font/StrikeCache.java Wed Jun 16 14:07:47 2010 -0700 @@ -31,6 +31,7 @@ import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; import java.lang.ref.WeakReference; +import java.util.*; import sun.java2d.Disposer; import sun.java2d.pipe.BufferedContext; @@ -66,6 +67,9 @@ static ReferenceQueue refQueue = Disposer.getQueue(); + static ArrayList<GlyphDisposedListener> disposeListeners = new ArrayList<GlyphDisposedListener>(1); + + /* Reference objects may have their referents cleared when GC chooses. * During application client start-up there is typically at least one * GC which causes the hotspot VM to clear soft (not just weak) references @@ -108,6 +112,8 @@ static int topLeftXOffset; static int topLeftYOffset; static int pixelDataOffset; + static int cacheCellOffset; + static int managedOffset; static long invisibleGlyphPtr; /* Native method used to return information used for unsafe @@ -129,7 +135,7 @@ static { - long[] nativeInfo = new long[11]; + long[] nativeInfo = new long[13]; getGlyphCacheDescription(nativeInfo); //Can also get address size from Unsafe class :- //nativeAddressSize = unsafe.addressSize(); @@ -144,6 +150,9 @@ topLeftYOffset = (int)nativeInfo[8]; pixelDataOffset = (int)nativeInfo[9]; invisibleGlyphPtr = nativeInfo[10]; + cacheCellOffset = (int) nativeInfo[11]; + managedOffset = (int) nativeInfo[12]; + if (nativeAddressSize < 4) { throw new InternalError("Unexpected address size for font data: " + nativeAddressSize); @@ -195,10 +204,10 @@ private static final void doDispose(FontStrikeDisposer disposer) { if (disposer.intGlyphImages != null) { - freeIntMemory(disposer.intGlyphImages, + freeCachedIntMemory(disposer.intGlyphImages, disposer.pScalerContext); } else if (disposer.longGlyphImages != null) { - freeLongMemory(disposer.longGlyphImages, + freeCachedLongMemory(disposer.longGlyphImages, disposer.pScalerContext); } else if (disposer.segIntGlyphImages != null) { /* NB Now making multiple JNI calls in this case. @@ -207,7 +216,7 @@ */ for (int i=0; i<disposer.segIntGlyphImages.length; i++) { if (disposer.segIntGlyphImages[i] != null) { - freeIntMemory(disposer.segIntGlyphImages[i], + freeCachedIntMemory(disposer.segIntGlyphImages[i], disposer.pScalerContext); /* native will only free the scaler context once */ disposer.pScalerContext = 0L; @@ -218,19 +227,19 @@ * for a strike that never was asked to rasterise a glyph. */ if (disposer.pScalerContext != 0L) { - freeIntMemory(new int[0], disposer.pScalerContext); + freeCachedIntMemory(new int[0], disposer.pScalerContext); } } else if (disposer.segLongGlyphImages != null) { for (int i=0; i<disposer.segLongGlyphImages.length; i++) { if (disposer.segLongGlyphImages[i] != null) { - freeLongMemory(disposer.segLongGlyphImages[i], + freeCachedLongMemory(disposer.segLongGlyphImages[i], disposer.pScalerContext); disposer.pScalerContext = 0L; disposer.segLongGlyphImages[i] = null; } } if (disposer.pScalerContext != 0L) { - freeLongMemory(new long[0], disposer.pScalerContext); + freeCachedLongMemory(new long[0], disposer.pScalerContext); } } else if (disposer.pScalerContext != 0L) { /* Rarely a strike may have been created that never cached @@ -238,9 +247,9 @@ * context. */ if (longAddresses()) { - freeLongMemory(new long[0], disposer.pScalerContext); + freeCachedLongMemory(new long[0], disposer.pScalerContext); } else { - freeIntMemory(new int[0], disposer.pScalerContext); + freeCachedIntMemory(new int[0], disposer.pScalerContext); } } } @@ -304,6 +313,68 @@ private static native void freeIntMemory(int[] glyphPtrs, long pContext); private static native void freeLongMemory(long[] glyphPtrs, long pContext); + private static void freeCachedIntMemory(int[] glyphPtrs, long pContext) { + synchronized(disposeListeners) { + if (disposeListeners.size() > 0) { + ArrayList<Long> gids = null; + + for (int i = 0; i < glyphPtrs.length; i++) { + if (glyphPtrs[i] != 0 && unsafe.getByte(glyphPtrs[i] + managedOffset) == 0 + && unsafe.getInt(glyphPtrs[i] + cacheCellOffset) != 0) { + + if (gids == null) { + gids = new ArrayList<Long>(); + } + gids.add((long) glyphPtrs[i]); + } + } + + if (gids != null) { + notifyDisposeListeners(gids); + } + } + } + + freeIntMemory(glyphPtrs, pContext); + } + + private static void freeCachedLongMemory(long[] glyphPtrs, long pContext) { + synchronized(disposeListeners) { + if (disposeListeners.size() > 0) { + ArrayList<Long> gids = null; + + for (int i=0; i < glyphPtrs.length; i++) { + if (glyphPtrs[i] != 0 + && unsafe.getByte(glyphPtrs[i] + managedOffset) == 0 + && unsafe.getInt(glyphPtrs[i] + cacheCellOffset) != 0) { + + if (gids == null) { + gids = new ArrayList<Long>(); + } + gids.add((long) glyphPtrs[i]); + } + } + + if (gids != null) { + notifyDisposeListeners(gids); + } + } + } + + freeLongMemory(glyphPtrs, pContext); + } + + public static void addGlyphDisposedListener(GlyphDisposedListener listener) { + synchronized(disposeListeners) { + disposeListeners.add(listener); + } + } + + private static void notifyDisposeListeners(ArrayList<Long> glyphs) { + for (GlyphDisposedListener listener : disposeListeners) { + listener.glyphDisposed(glyphs); + } + } public static Reference getStrikeRef(FontStrike strike) { return getStrikeRef(strike, cacheRefTypeWeak);
--- a/src/share/classes/sun/font/SunFontManager.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/sun/font/SunFontManager.java Wed Jun 16 14:07:47 2010 -0700 @@ -73,7 +73,9 @@ return(name.startsWith(".ttf", offset) || name.startsWith(".TTF", offset) || name.startsWith(".ttc", offset) || - name.startsWith(".TTC", offset)); + name.startsWith(".TTC", offset) || + name.startsWith(".otf", offset) || + name.startsWith(".OTF", offset)); } } } @@ -108,7 +110,9 @@ name.startsWith(".ttf", offset) || name.startsWith(".TTF", offset) || name.startsWith(".ttc", offset) || - name.startsWith(".TTC", offset); + name.startsWith(".TTC", offset) || + name.startsWith(".otf", offset) || + name.startsWith(".OTF", offset); if (isTT) { return true; } else if (noType1Font) {
--- a/src/share/classes/sun/java2d/pipe/BufferedPaints.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/sun/java2d/pipe/BufferedPaints.java Wed Jun 16 14:07:47 2010 -0700 @@ -307,7 +307,7 @@ * linear RGB space. Copied directly from the * MultipleGradientPaintContext class. */ - private static int convertSRGBtoLinearRGB(int color) { + public static int convertSRGBtoLinearRGB(int color) { float input, output; input = color / 255.0f;
--- a/src/share/classes/sun/java2d/pipe/RenderBuffer.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/sun/java2d/pipe/RenderBuffer.java Wed Jun 16 14:07:47 2010 -0700 @@ -117,6 +117,11 @@ curAddress = baseAddress; } + public final RenderBuffer skip(long numBytes) { + curAddress += numBytes; + return this; + } + /** * putByte() methods... */
--- a/src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine Wed Jun 16 14:07:47 2010 -0700 @@ -1,2 +1,5 @@ +# Jules Rendering Engine module +sun.java2d.jules.JulesRenderingEngine + # Pisces Rendering Engine module -sun.java2d.pisces.PiscesRenderingEngine +sun.java2d.pisces.PiscesRenderingEngine \ No newline at end of file
--- a/src/share/classes/sun/nio/cs/standard-charsets Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/sun/nio/cs/standard-charsets Wed Jun 16 14:07:47 2010 -0700 @@ -35,7 +35,7 @@ # which is lazy initialized. # This year should only change if the generated source is modified. -copyright 2000 +copyright 2000, 2007, package sun.nio.cs class StandardCharsets
--- a/src/share/classes/sun/swing/SwingUtilities2.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/sun/swing/SwingUtilities2.java Wed Jun 16 14:07:47 2010 -0700 @@ -44,6 +44,8 @@ import javax.swing.text.DefaultHighlighter; import javax.swing.text.DefaultCaret; import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumnModel; + import sun.swing.PrintColorUIResource; import sun.swing.ImageIconUIResource; import sun.print.ProxyPrintGraphics; @@ -1807,4 +1809,54 @@ boolean three) { return liesIn(rect, p, false, false, three); } + + /** + * Maps the index of the column in the view at + * {@code viewColumnIndex} to the index of the column + * in the table model. Returns the index of the corresponding + * column in the model. If {@code viewColumnIndex} + * is less than zero, returns {@code viewColumnIndex}. + * + * @param cm the table model + * @param viewColumnIndex the index of the column in the view + * @return the index of the corresponding column in the model + * + * @see JTable#convertColumnIndexToModel(int) + * @see javax.swing.plaf.basic.BasicTableHeaderUI + */ + public static int convertColumnIndexToModel(TableColumnModel cm, + int viewColumnIndex) { + if (viewColumnIndex < 0) { + return viewColumnIndex; + } + return cm.getColumn(viewColumnIndex).getModelIndex(); + } + + /** + * Maps the index of the column in the {@code cm} at + * {@code modelColumnIndex} to the index of the column + * in the view. Returns the index of the + * corresponding column in the view; returns {@code -1} if this column + * is not being displayed. If {@code modelColumnIndex} is less than zero, + * returns {@code modelColumnIndex}. + * + * @param cm the table model + * @param modelColumnIndex the index of the column in the model + * @return the index of the corresponding column in the view + * + * @see JTable#convertColumnIndexToView(int) + * @see javax.swing.plaf.basic.BasicTableHeaderUI + */ + public static int convertColumnIndexToView(TableColumnModel cm, + int modelColumnIndex) { + if (modelColumnIndex < 0) { + return modelColumnIndex; + } + for (int column = 0; column < cm.getColumnCount(); column++) { + if (cm.getColumn(column).getModelIndex() == modelColumnIndex) { + return column; + } + } + return -1; + } }
--- a/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java Wed Jun 16 14:07:47 2010 -0700 @@ -788,7 +788,7 @@ // for example /foo/bar/ becomes /foo/bar File canonical; try { - canonical = directory.getCanonicalFile(); + canonical = ShellFolder.getNormalizedFile(directory); } catch (IOException e) { // Maybe drive is not ready. Can't abort here. canonical = directory;
--- a/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java Wed Jun 16 14:07:47 2010 -0700 @@ -24,6 +24,8 @@ */ package sun.swing.table; +import sun.swing.DefaultLookup; + import java.awt.Component; import java.awt.Color; import java.awt.FontMetrics; @@ -31,12 +33,11 @@ import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; +import java.io.Serializable; import javax.swing.*; import javax.swing.plaf.UIResource; import javax.swing.border.Border; import javax.swing.table.*; -import sun.swing.DefaultLookup; - public class DefaultTableCellHeaderRenderer extends DefaultTableCellRenderer implements UIResource { @@ -186,7 +187,7 @@ return new Point(x, y); } - private class EmptyIcon implements Icon { + private class EmptyIcon implements Icon, Serializable { int width = 0; int height = 0; public void paintIcon(Component c, Graphics g, int x, int y) {}
--- a/src/share/native/sun/font/AccelGlyphCache.c Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/native/sun/font/AccelGlyphCache.c Wed Jun 16 14:07:47 2010 -0700 @@ -325,6 +325,7 @@ cellInfo->glyphInfo = glyph; cellInfo->nextGCI = glyph->cellInfo; glyph->cellInfo = cellInfo; + glyph->managed = MANAGED_GLYPH; } /**
--- a/src/share/native/sun/font/fontscalerdefs.h Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/native/sun/font/fontscalerdefs.h Wed Jun 16 14:07:47 2010 -0700 @@ -84,15 +84,26 @@ #define t2kScalarAverage(a, b) (((a) + (b)) / (t2kScalar)(2)) + /* managed: 1 means the glyph has a hardware cached + * copy, and its freeing is managed by the the usual + * 2D disposer code. + * A value of 0 means its either unaccelerated (and so has no cellInfos) + * or we want to free this in a different way. + * The field uses previously unused padding, so doesn't enlarge + * the structure. + */ +#define UNMANAGED_GLYPH 0 +#define MANAGED_GLYPH 1 typedef struct GlyphInfo { float advanceX; float advanceY; UInt16 width; UInt16 height; UInt16 rowBytes; + UInt8 managed; float topLeftX; float topLeftY; - struct _CacheCellInfo *cellInfo; + void *cellInfo; UInt8 *image; } GlyphInfo;
--- a/src/share/native/sun/font/freetypeScaler.c Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/native/sun/font/freetypeScaler.c Wed Jun 16 14:07:47 2010 -0700 @@ -782,6 +782,7 @@ return ptr_to_jlong(glyphInfo); } glyphInfo->cellInfo = NULL; + glyphInfo->managed = UNMANAGED_GLYPH; glyphInfo->rowBytes = width; glyphInfo->width = width; glyphInfo->height = height; @@ -1130,7 +1131,7 @@ current_type = SEG_LINETO; } } else if (FT_CURVE_TAG(outline->tags[i]) == FT_CURVE_TAG_CUBIC) { - /* Bit 1 is meaningful for ‘off’ points only. + /* Bit 1 is meaningful for 'off' points only. If set, it indicates a third-order Bezier arc control point; and a second-order control point if unset. */ current_type = SEG_CUBICTO;
--- a/src/share/native/sun/font/sunFont.c Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/native/sun/font/sunFont.c Wed Jun 16 14:07:47 2010 -0700 @@ -233,7 +233,8 @@ for (i=0; i< len; i++) { if (ptrs[i] != 0) { GlyphInfo *ginfo = (GlyphInfo *)ptrs[i]; - if (ginfo->cellInfo != NULL) { + if (ginfo->cellInfo != NULL && + ginfo->managed == MANAGED_GLYPH) { // invalidate this glyph's accelerated cache cell AccelGlyphCache_RemoveAllCellInfos(ginfo); } @@ -264,7 +265,8 @@ for (i=0; i< len; i++) { if (ptrs[i] != 0L) { GlyphInfo *ginfo = (GlyphInfo *) jlong_to_ptr(ptrs[i]); - if (ginfo->cellInfo != NULL) { + if (ginfo->cellInfo != NULL && + ginfo->managed == MANAGED_GLYPH) { AccelGlyphCache_RemoveAllCellInfos(ginfo); } free((void*)ginfo); @@ -285,7 +287,7 @@ GlyphInfo *info; size_t baseAddr; - if ((*env)->GetArrayLength(env, results) < 10) { + if ((*env)->GetArrayLength(env, results) < 13) { return; } @@ -310,6 +312,9 @@ nresults[8] = (size_t)&(info->topLeftY)-baseAddr; nresults[9] = (size_t)&(info->image)-baseAddr; nresults[10] = (jlong)(uintptr_t)info; /* invisible glyph */ + nresults[11] = (size_t)&(info->cellInfo)-baseAddr; + nresults[12] = (size_t)&(info->managed)-baseAddr; + (*env)->ReleasePrimitiveArrayCritical(env, results, nresults, 0); }
--- a/src/share/native/sun/java2d/opengl/OGLTextRenderer.c Wed Jun 16 12:40:22 2010 -0700 +++ b/src/share/native/sun/java2d/opengl/OGLTextRenderer.c Wed Jun 16 14:07:47 2010 -0700 @@ -244,6 +244,7 @@ OGLTR_AddToGlyphCache(GlyphInfo *glyph, jboolean rgbOrder) { GLenum pixelFormat; + CacheCellInfo *ccinfo; J2dTraceLn(J2D_TRACE_INFO, "OGLTR_AddToGlyphCache"); @@ -258,11 +259,12 @@ } AccelGlyphCache_AddGlyph(glyphCache, glyph); + ccinfo = (CacheCellInfo *) glyph->cellInfo; - if (glyph->cellInfo != NULL) { + if (ccinfo != NULL) { // store glyph image in texture cell j2d_glTexSubImage2D(GL_TEXTURE_2D, 0, - glyph->cellInfo->x, glyph->cellInfo->y, + ccinfo->x, ccinfo->y, glyph->width, glyph->height, pixelFormat, GL_UNSIGNED_BYTE, glyph->image); } @@ -668,7 +670,7 @@ } } - cell = ginfo->cellInfo; + cell = (CacheCellInfo *) (ginfo->cellInfo); cell->timesRendered++; x1 = (jfloat)x; @@ -871,7 +873,7 @@ } } - cell = ginfo->cellInfo; + cell = (CacheCellInfo *) (ginfo->cellInfo); cell->timesRendered++; // location of the glyph in the destination's coordinate space
--- a/src/solaris/classes/sun/awt/X11/keysym2ucs.h Wed Jun 16 12:40:22 2010 -0700 +++ b/src/solaris/classes/sun/awt/X11/keysym2ucs.h Wed Jun 16 14:07:47 2010 -0700 @@ -39,7 +39,7 @@ */ tojava /* -tojava * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved. +tojava * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. tojava * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. tojava * tojava * This code is free software; you can redistribute it and/or modify it
--- a/src/solaris/classes/sun/awt/X11GraphicsDevice.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/solaris/classes/sun/awt/X11GraphicsDevice.java Wed Jun 16 14:07:47 2010 -0700 @@ -39,6 +39,7 @@ import java.util.HashMap; import sun.java2d.opengl.GLXGraphicsConfig; +import sun.java2d.xr.XRGraphicsConfig; import sun.java2d.loops.SurfaceType; /** @@ -152,6 +153,8 @@ } boolean glxSupported = X11GraphicsEnvironment.isGLXAvailable(); + boolean xrenderSupported = X11GraphicsEnvironment.isXRenderAvailable(); + boolean dbeSupported = isDBESupported(); if (dbeSupported && doubleBufferVisuals == null) { doubleBufferVisuals = new HashSet(); @@ -167,9 +170,15 @@ boolean doubleBuffer = (dbeSupported && doubleBufferVisuals.contains(Integer.valueOf(visNum))); - ret[i] = X11GraphicsConfig.getConfig(this, visNum, depth, - getConfigColormap(i, screen), - doubleBuffer); + + if (xrenderSupported) { + ret[i] = XRGraphicsConfig.getConfig(this, visNum, depth, getConfigColormap(i, screen), + doubleBuffer); + } else { + ret[i] = X11GraphicsConfig.getConfig(this, visNum, depth, + getConfigColormap(i, screen), + doubleBuffer); + } } } configs = ret; @@ -243,9 +252,19 @@ doubleBuffer = doubleBufferVisuals.contains(Integer.valueOf(visNum)); } - defaultConfig = X11GraphicsConfig.getConfig(this, visNum, - depth, getConfigColormap(0, screen), - doubleBuffer); + + if (X11GraphicsEnvironment.isXRenderAvailable()) { + if (X11GraphicsEnvironment.isXRenderVerbose()) { + System.out.println("XRender pipeline enabled"); + } + defaultConfig = XRGraphicsConfig.getConfig(this, visNum, + depth, getConfigColormap(0, screen), + doubleBuffer); + } else { + defaultConfig = X11GraphicsConfig.getConfig(this, visNum, + depth, getConfigColormap(0, screen), + doubleBuffer); + } } } }
--- a/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java Wed Jun 16 14:07:47 2010 -0700 @@ -26,6 +26,7 @@ package sun.awt; import java.awt.GraphicsDevice; + import java.awt.Point; import java.awt.Rectangle; import java.io.BufferedReader; @@ -51,6 +52,7 @@ import sun.java2d.SurfaceManagerFactory; import sun.java2d.UnixSurfaceManagerFactory; import sun.util.logging.PlatformLogger; +import sun.java2d.xr.XRSurfaceData; /** * This is an implementation of a GraphicsEnvironment object for the @@ -92,6 +94,18 @@ } } + // Now check for XRender system property + boolean xRenderRequested = false; + String xProp = System.getProperty("sun.java2d.xrender"); + if (xProp != null) { + if (xProp.equals("true") || xProp.equals("t")) { + xRenderRequested = true; + } else if (xProp.equals("True") || xProp.equals("T")) { + xRenderRequested = true; + xRenderVerbose = true; + } + } + // initialize the X11 display connection initDisplay(glxRequested); @@ -104,6 +118,19 @@ "pipeline (GLX 1.3 not available)"); } } + + // only attempt to initialize Xrender if it was requested + if (xRenderRequested) { + xRenderAvailable = initXRender(); + if (xRenderVerbose && !xRenderAvailable) { + System.out.println( + "Could not enable XRender pipeline"); + } + } + + if (xRenderAvailable) { + XRSurfaceData.initXRSurfaceData(); + } } return null; @@ -115,6 +142,7 @@ } + private static boolean glxAvailable; private static boolean glxVerbose; @@ -128,6 +156,18 @@ return glxVerbose; } + private static boolean xRenderVerbose; + private static boolean xRenderAvailable; + + private static native boolean initXRender(); + public static boolean isXRenderAvailable() { + return xRenderAvailable; + } + + public static boolean isXRenderVerbose() { + return xRenderVerbose; + } + /** * Checks if Shared Memory extension can be used. * Returns:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/font/XRGlyphCache.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,301 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.font; + +import java.io.*; +import java.util.*; + +import sun.awt.*; +import sun.java2d.xr.*; + +/** + * Glyph cache used by the XRender pipeline. + * + * @author Clemens Eisserer + */ + +public class XRGlyphCache implements GlyphDisposedListener { + XRBackend con; + XRCompositeManager maskBuffer; + HashMap<MutableInteger, XRGlyphCacheEntry> cacheMap = new HashMap<MutableInteger, XRGlyphCacheEntry>(256); + + int nextID = 1; + MutableInteger tmp = new MutableInteger(0); + + int grayGlyphSet; + int lcdGlyphSet; + + int time = 0; + int cachedPixels = 0; + static final int MAX_CACHED_PIXELS = 100000; + + ArrayList<Integer> freeGlyphIDs = new ArrayList<Integer>(255); + + static final boolean batchGlyphUpload = true; // Boolean.parseBoolean(System.getProperty("sun.java2d.xrender.batchGlyphUpload")); + + public XRGlyphCache(XRCompositeManager maskBuf) { + this.con = maskBuf.getBackend(); + this.maskBuffer = maskBuf; + + grayGlyphSet = con.XRenderCreateGlyphSet(XRUtils.PictStandardA8); + lcdGlyphSet = con.XRenderCreateGlyphSet(XRUtils.PictStandardARGB32); + + StrikeCache.addGlyphDisposedListener(this); + } + + public void glyphDisposed(ArrayList<Long> glyphPtrList) { + try { + SunToolkit.awtLock(); + + ArrayList<Integer> glyphIDList = new ArrayList<Integer>(glyphPtrList.size()); + for (long glyphPtr : glyphPtrList) { + glyphIDList.add(XRGlyphCacheEntry.getGlyphID(glyphPtr)); + } + freeGlyphs(glyphIDList); + } finally { + SunToolkit.awtUnlock(); + } + } + + protected int getFreeGlyphID() { + if (freeGlyphIDs.size() > 0) { + int newID = freeGlyphIDs.remove(freeGlyphIDs.size() - 1); + ; + return newID; + } + return nextID++; + } + + protected XRGlyphCacheEntry getEntryForPointer(long imgPtr) { + int id = XRGlyphCacheEntry.getGlyphID(imgPtr); + + if (id == 0) { + return null; + } + + tmp.setValue(id); + return cacheMap.get(tmp); + } + + public XRGlyphCacheEntry[] cacheGlyphs(GlyphList glyphList) { + time++; + + XRGlyphCacheEntry[] entries = new XRGlyphCacheEntry[glyphList.getNumGlyphs()]; + long[] imgPtrs = glyphList.getImages(); + ArrayList<XRGlyphCacheEntry> uncachedGlyphs = null; + + for (int i = 0; i < glyphList.getNumGlyphs(); i++) { + XRGlyphCacheEntry glyph; + + // Find uncached glyphs and queue them for upload + if ((glyph = getEntryForPointer(imgPtrs[i])) == null) { + glyph = new XRGlyphCacheEntry(imgPtrs[i], glyphList); + glyph.setGlyphID(getFreeGlyphID()); + cacheMap.put(new MutableInteger(glyph.getGlyphID()), glyph); + + if (uncachedGlyphs == null) { + uncachedGlyphs = new ArrayList<XRGlyphCacheEntry>(); + } + uncachedGlyphs.add(glyph); + } + glyph.setLastUsed(time); + entries[i] = glyph; + } + + // Add glyphs to cache + if (uncachedGlyphs != null) { + uploadGlyphs(entries, uncachedGlyphs, glyphList, null); + } + + return entries; + } + + protected void uploadGlyphs(XRGlyphCacheEntry[] glyphs, ArrayList<XRGlyphCacheEntry> uncachedGlyphs, GlyphList gl, int[] glIndices) { + for (XRGlyphCacheEntry glyph : uncachedGlyphs) { + cachedPixels += glyph.getPixelCnt(); + } + + if (cachedPixels > MAX_CACHED_PIXELS) { + clearCache(glyphs); + } + + boolean containsLCDGlyphs = containsLCDGlyphs(uncachedGlyphs); + List<XRGlyphCacheEntry>[] seperatedGlyphList = seperateGlyphTypes(uncachedGlyphs, containsLCDGlyphs); + List<XRGlyphCacheEntry> grayGlyphList = seperatedGlyphList[0]; + List<XRGlyphCacheEntry> lcdGlyphList = seperatedGlyphList[1]; + + /* + * Some XServers crash when uploading multiple glyphs at once. TODO: + * Implement build-switch in local case for distributors who know their + * XServer is fixed + */ + if (batchGlyphUpload) { + if (grayGlyphList != null && grayGlyphList.size() > 0) { + con.XRenderAddGlyphs(grayGlyphSet, gl, grayGlyphList, generateGlyphImageStream(grayGlyphList)); + } + if (lcdGlyphList != null && lcdGlyphList.size() > 0) { + con.XRenderAddGlyphs(lcdGlyphSet, gl, lcdGlyphList, generateGlyphImageStream(lcdGlyphList)); + } + } else { + ArrayList<XRGlyphCacheEntry> tmpList = new ArrayList<XRGlyphCacheEntry>(1); + tmpList.add(null); + + for (XRGlyphCacheEntry entry : uncachedGlyphs) { + tmpList.set(0, entry); + + if (entry.getGlyphSet() == grayGlyphSet) { + con.XRenderAddGlyphs(grayGlyphSet, gl, tmpList, generateGlyphImageStream(tmpList)); + } else { + con.XRenderAddGlyphs(lcdGlyphSet, gl, tmpList, generateGlyphImageStream(tmpList)); + } + } + } + } + + /** + * Seperates lcd and grayscale glyphs queued for upload, and sets the + * appropriate glyphset for the cache entries. + */ + protected List<XRGlyphCacheEntry>[] seperateGlyphTypes(List<XRGlyphCacheEntry> glyphList, boolean containsLCDGlyphs) { + ArrayList<XRGlyphCacheEntry> lcdGlyphs = null; + ArrayList<XRGlyphCacheEntry> grayGlyphs = null; + + for (XRGlyphCacheEntry cacheEntry : glyphList) { + if (cacheEntry.isGrayscale(containsLCDGlyphs)) { + if (grayGlyphs == null) { + grayGlyphs = new ArrayList<XRGlyphCacheEntry>(glyphList.size()); + } + cacheEntry.setGlyphSet(grayGlyphSet); + grayGlyphs.add(cacheEntry); + } else { + if (lcdGlyphs == null) { + lcdGlyphs = new ArrayList<XRGlyphCacheEntry>(glyphList.size()); + } + cacheEntry.setGlyphSet(lcdGlyphSet); + lcdGlyphs.add(cacheEntry); + } + } + + return new List[] { grayGlyphs, lcdGlyphs }; + } + + /** + * Copies the glyph-images into a continous buffer, required for uploading. + */ + protected byte[] generateGlyphImageStream(List<XRGlyphCacheEntry> glyphList) { + boolean isLCDGlyph = glyphList.get(0).getGlyphSet() == lcdGlyphSet; + + ByteArrayOutputStream stream = new ByteArrayOutputStream((isLCDGlyph ? 4 : 1) * 48 * glyphList.size()); + for (XRGlyphCacheEntry cacheEntry : glyphList) { + cacheEntry.writePixelData(stream, isLCDGlyph); + } + + return stream.toByteArray(); + } + + protected boolean containsLCDGlyphs(List<XRGlyphCacheEntry> entries) { + boolean containsLCDGlyphs = false; + + for (XRGlyphCacheEntry entry : entries) { + containsLCDGlyphs = !(entry.getSourceRowBytes() == entry.getWidth()); + + if (containsLCDGlyphs) { + return true; + } + } + return false; + } + + protected void clearCache(XRGlyphCacheEntry[] glyps) { + /* + * Glyph uploading is so slow anyway, we can afford some inefficiency + * here, as the cache should usually be quite small. TODO: Implement + * something not that stupid ;) + */ + ArrayList<XRGlyphCacheEntry> cacheList = new ArrayList<XRGlyphCacheEntry>(cacheMap.values()); + Collections.sort(cacheList, new Comparator<XRGlyphCacheEntry>() { + public int compare(XRGlyphCacheEntry e1, XRGlyphCacheEntry e2) { + return e2.getLastUsed() - e1.getLastUsed(); + } + }); + + for (XRGlyphCacheEntry glyph : glyps) { + glyph.setPinned(); + } + + ArrayList<Integer> deleteGlyphList = new ArrayList<Integer>(); + int pixelsToRelease = cachedPixels - MAX_CACHED_PIXELS; + + for (int i = cacheList.size() - 1; i >= 0 && pixelsToRelease > 0; i--) { + XRGlyphCacheEntry entry = cacheList.get(i); + + if (!entry.isPinned()) { + pixelsToRelease -= entry.getPixelCnt(); + deleteGlyphList.add(new Integer(entry.getGlyphID())); + } + } + + for (XRGlyphCacheEntry glyph : glyps) { + glyph.setUnpinned(); + } + + freeGlyphs(deleteGlyphList); + } + + private void freeGlyphs(List<Integer> glyphIdList) { + + freeGlyphIDs.addAll(glyphIdList); + + GrowableIntArray removedLCDGlyphs = new GrowableIntArray(1, 1); + GrowableIntArray removedGrayscaleGlyphs = new GrowableIntArray(1, 1); + + for (Integer glyphId : glyphIdList) { + tmp.setValue(glyphId.intValue()); + XRGlyphCacheEntry entry = cacheMap.get(tmp); + cachedPixels -= entry.getPixelCnt(); + + int removedGlyphID = entry.getGlyphID(); + tmp.setValue(removedGlyphID); + cacheMap.remove(tmp); + + if (entry.getGlyphSet() == grayGlyphSet) { + removedGrayscaleGlyphs.addInt(removedGlyphID); + } else { + removedLCDGlyphs.addInt(removedGlyphID); + } + + entry.setGlyphID(0); + } + + if (removedGrayscaleGlyphs.getSize() > 0) { + con.XRenderFreeGlyphs(grayGlyphSet, removedGrayscaleGlyphs.getSizedArray()); + } + + if (removedLCDGlyphs.getSize() > 0) { + con.XRenderFreeGlyphs(lcdGlyphSet, removedLCDGlyphs.getSizedArray()); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/font/XRGlyphCacheEntry.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,206 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.font; + +import java.io.*; + +/** + * Stores glyph-related data, used in the pure-java glyphcache. + * + * @author Clemens Eisserer + */ + +public class XRGlyphCacheEntry { + long glyphInfoPtr; + + int lastUsed; + boolean pinned; + + int xOff; + int yOff; + + int glyphSet; + + public XRGlyphCacheEntry(long glyphInfoPtr, GlyphList gl) { + this.glyphInfoPtr = glyphInfoPtr; + + /* TODO: Does it make sence to cache results? */ + xOff = (int) Math.round(getXAdvance()); + yOff = (int) Math.round(getYAdvance()); + } + + public int getXOff() { + return xOff; + } + + public int getYOff() { + return yOff; + } + + public void setGlyphSet(int glyphSet) { + this.glyphSet = glyphSet; + } + + public int getGlyphSet() { + return glyphSet; + } + + public static int getGlyphID(long glyphInfoPtr) { + return (int) StrikeCache.unsafe.getInt(glyphInfoPtr + StrikeCache.cacheCellOffset); + } + + public static void setGlyphID(long glyphInfoPtr, int id) { + StrikeCache.unsafe.putInt(glyphInfoPtr + StrikeCache.cacheCellOffset, id); + } + + public int getGlyphID() { + return getGlyphID(glyphInfoPtr); + } + + public void setGlyphID(int id) { + setGlyphID(glyphInfoPtr, id); + } + + public float getXAdvance() { + return StrikeCache.unsafe.getFloat(glyphInfoPtr + StrikeCache.xAdvanceOffset); + } + + public float getYAdvance() { + return StrikeCache.unsafe.getFloat(glyphInfoPtr + StrikeCache.yAdvanceOffset); + } + + public int getSourceRowBytes() { + return StrikeCache.unsafe.getShort(glyphInfoPtr + StrikeCache.rowBytesOffset); + } + + public int getWidth() { + return StrikeCache.unsafe.getShort(glyphInfoPtr + StrikeCache.widthOffset); + } + + public int getHeight() { + return StrikeCache.unsafe.getShort(glyphInfoPtr + StrikeCache.heightOffset); + } + + public void writePixelData(ByteArrayOutputStream os, boolean uploadAsLCD) { + long pixelDataAddress; + if (StrikeCache.nativeAddressSize == 4) { + pixelDataAddress = 0xffffffff & StrikeCache.unsafe.getInt(glyphInfoPtr + StrikeCache.pixelDataOffset); + } else { + pixelDataAddress = StrikeCache.unsafe.getLong(glyphInfoPtr + StrikeCache.pixelDataOffset); + } + if (pixelDataAddress == 0L) { + return; + } + + int width = getWidth(); + int height = getHeight(); + int rowBytes = getSourceRowBytes(); + int paddedWidth = getPaddedWidth(uploadAsLCD); + + if (!uploadAsLCD) { + for (int line = 0; line < height; line++) { + for(int x = 0; x < paddedWidth; x++) { + if(x < width) { + os.write(StrikeCache.unsafe.getByte(pixelDataAddress + (line * rowBytes + x))); + }else { + /*pad to multiple of 4 bytes per line*/ + os.write(0); + } + } + } + } else { + for (int line = 0; line < height; line++) { + int rowStart = line * rowBytes; + int rowBytesWidth = width * 3; + int srcpix = 0; + while (srcpix < rowBytesWidth) { + os.write(StrikeCache.unsafe.getByte + (pixelDataAddress + (rowStart + srcpix + 2))); + os.write(StrikeCache.unsafe.getByte + (pixelDataAddress + (rowStart + srcpix + 1))); + os.write(StrikeCache.unsafe.getByte + (pixelDataAddress + (rowStart + srcpix + 0))); + os.write(255); + srcpix += 3; + } + } + } + } + + public float getTopLeftXOffset() { + return StrikeCache.unsafe.getFloat(glyphInfoPtr + StrikeCache.topLeftXOffset); + } + + public float getTopLeftYOffset() { + return StrikeCache.unsafe.getFloat(glyphInfoPtr + StrikeCache.topLeftYOffset); + } + + public long getGlyphInfoPtr() { + return glyphInfoPtr; + } + + public boolean isGrayscale(boolean listContainsLCDGlyphs) { + return getSourceRowBytes() == getWidth() && !(getWidth() == 0 && getHeight() == 0 && listContainsLCDGlyphs); + } + + public int getPaddedWidth(boolean listContainsLCDGlyphs) { + int width = getWidth(); + return isGrayscale(listContainsLCDGlyphs) ? (int) Math.ceil(width / 4.0) * 4 : width; + } + + public int getDestinationRowBytes(boolean listContainsLCDGlyphs) { + boolean grayscale = isGrayscale(listContainsLCDGlyphs); + return grayscale ? getPaddedWidth(grayscale) : getWidth() * 4; + } + + public int getGlyphDataLenth(boolean listContainsLCDGlyphs) { + return getDestinationRowBytes(listContainsLCDGlyphs) * getHeight(); + } + + public void setPinned() { + pinned = true; + } + + public void setUnpinned() { + pinned = false; + } + + public int getLastUsed() { + return lastUsed; + } + + public void setLastUsed(int lastUsed) { + this.lastUsed = lastUsed; + } + + public int getPixelCnt() { + return getWidth() * getHeight(); + } + + public boolean isPinned() { + return pinned; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/font/XRTextRenderer.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,152 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.font; + +import sun.awt.*; +import sun.java2d.SunGraphics2D; +import sun.java2d.pipe.GlyphListPipe; +import sun.java2d.xr.*; + +/** + * A delegate pipe of SG2D for drawing any text to a XRender surface + * + * @author Clemens Eisserer + */ +public class XRTextRenderer extends GlyphListPipe { + + XRGlyphCache glyphCache; + XRCompositeManager maskBuffer; + XRBackend backend; + + GrowableEltArray eltList; + + public XRTextRenderer(XRCompositeManager buffer) { + glyphCache = new XRGlyphCache(buffer); + maskBuffer = buffer; + backend = buffer.getBackend(); + eltList = new GrowableEltArray(64); + } + + protected void drawGlyphList(SunGraphics2D sg2d, GlyphList gl) { + if (gl.getNumGlyphs() == 0) { + return; + } + + try { + SunToolkit.awtLock(); + + XRSurfaceData x11sd = (XRSurfaceData) sg2d.surfaceData; + x11sd.validateAsDestination(null, sg2d.getCompClip()); + x11sd.maskBuffer.validateCompositeState(sg2d.composite, sg2d.transform, sg2d.paint, sg2d); + + float advX = gl.getX(); + float advY = gl.getY(); + int oldPosX = 0, oldPosY = 0; + + if (gl.isSubPixPos()) { + advX += 0.1666667f; + advY += 0.1666667f; + } else { + advX += 0.5f; + advY += 0.5f; + } + + XRGlyphCacheEntry[] cachedGlyphs = glyphCache.cacheGlyphs(gl); + boolean containsLCDGlyphs = false; + int activeGlyphSet = cachedGlyphs[0].getGlyphSet(); + + int eltIndex = -1; + gl.getBounds(); + float[] positions = gl.getPositions(); + for (int i = 0; i < gl.getNumGlyphs(); i++) { + gl.setGlyphIndex(i); + XRGlyphCacheEntry cacheEntry = cachedGlyphs[i]; + + eltList.getGlyphs().addInt(cacheEntry.getGlyphID()); + int glyphSet = cacheEntry.getGlyphSet(); + + containsLCDGlyphs |= (glyphSet == glyphCache.lcdGlyphSet); + + int posX = 0, posY = 0; + if (gl.usePositions() + || (cacheEntry.getXAdvance() != ((float) cacheEntry.getXOff()) || cacheEntry.getYAdvance() != ((float) cacheEntry.getYOff())) + || eltIndex < 0 || glyphSet != activeGlyphSet) { + + eltIndex = eltList.getNextIndex(); + eltList.setCharCnt(eltIndex, 1); + activeGlyphSet = glyphSet; + eltList.setGlyphSet(eltIndex, glyphSet); + + if (gl.usePositions()) { + // /*In this case advX only stores rounding errors*/ + float x = positions[i * 2] + advX; + float y = positions[i * 2 + 1] + advY; + posX = (int) Math.floor(x); + posY = (int) Math.floor(y); + advX -= cacheEntry.getXOff(); + advY -= cacheEntry.getYOff(); + } else { + /* + * Calculate next glyph's position in the case of + * relative positioning. In XRender we can only position + * glyphs using integer coordinates, therefor we sum all + * the advances up as float, and convert them to integer + * later. This way rounding-error can be corrected, and + * is required to be consistent with the software loops. + */ + posX = (int) Math.floor(advX); + posY = (int) Math.floor(advY); + + // Advance of ELT = difference between stored + // relative + // positioning information and required float. + advX += (cacheEntry.getXAdvance() - cacheEntry.getXOff()); + advY += (cacheEntry.getYAdvance() - cacheEntry.getYOff()); + } + /* + * Offset of the current glyph is the difference to the last + * glyph and this one + */ + eltList.setXOff(eltIndex, (posX - oldPosX)); + eltList.setYOff(eltIndex, (posY - oldPosY)); + + oldPosX = posX; + oldPosY = posY; + + } else { + eltList.setCharCnt(eltIndex, eltList.getCharCnt(eltIndex) + 1); + } + } + + int maskFormat = containsLCDGlyphs ? XRUtils.PictStandardARGB32 : XRUtils.PictStandardA8; + maskBuffer.compositeText(x11sd.picture, 0, maskFormat, eltList); + + eltList.clear(); + } finally { + SunToolkit.awtUnlock(); + } + } +}
--- a/src/solaris/classes/sun/java2d/UnixSurfaceManagerFactory.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/solaris/classes/sun/java2d/UnixSurfaceManagerFactory.java Wed Jun 16 14:07:47 2010 -0700 @@ -33,6 +33,7 @@ import sun.java2d.opengl.GLXGraphicsConfig; import sun.java2d.opengl.GLXVolatileSurfaceManager; import sun.java2d.x11.X11VolatileSurfaceManager; +import sun.java2d.xr.*; /** * The SurfaceManagerFactory that creates VolatileSurfaceManager @@ -54,9 +55,12 @@ Object context) { GraphicsConfiguration gc = vImg.getGraphicsConfig(); + if (gc instanceof GLXGraphicsConfig) { return new GLXVolatileSurfaceManager(vImg, context); - } else { + } else if(gc instanceof XRGraphicsConfig) { + return new XRVolatileSurfaceManager(vImg, context); + }else { return new X11VolatileSurfaceManager(vImg, context); } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/jules/IdleTileCache.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,109 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.jules; + +import java.util.*; + +public class IdleTileCache { + final static int IDLE_TILE_SYNC_GRANULARITY = 16; + final static ArrayList<JulesTile> idleBuffers = new ArrayList<JulesTile>(); + + ArrayList<JulesTile> idleTileWorkerCacheList = new ArrayList<JulesTile>(); + ArrayList<JulesTile> idleTileConsumerCacheList = + new ArrayList<JulesTile>(IDLE_TILE_SYNC_GRANULARITY); + + /** + * Return a cached Tile, if possible from cache. + * Allowed caller: Rasterizer/Producer-Thread + * + * @param: maxCache - Specify the maximum amount of tiles needed + */ + public JulesTile getIdleTileWorker(int maxCache) { + /* Try to fetch idle tiles from the global cache list */ + if (idleTileWorkerCacheList.size() == 0) { + idleTileWorkerCacheList.ensureCapacity(maxCache); + + synchronized (idleBuffers) { + for (int i = 0; i < maxCache && idleBuffers.size() > 0; i++) { + idleTileWorkerCacheList.add( + idleBuffers.remove(idleBuffers.size() - 1)); + } + } + } + + if (idleTileWorkerCacheList.size() > 0) { + return idleTileWorkerCacheList.remove(idleTileWorkerCacheList.size() - 1); + } + + return new JulesTile(); + } + + /** + * Release tile and allow it to be re-used by another thread. Allowed + * Allowed caller: MaskBlit/Consumer-Thread + */ + public void releaseTile(JulesTile tile) { + if (tile != null && tile.hasBuffer()) { + idleTileConsumerCacheList.add(tile); + + if (idleTileConsumerCacheList.size() > IDLE_TILE_SYNC_GRANULARITY) { + synchronized (idleBuffers) { + idleBuffers.addAll(idleTileConsumerCacheList); + } + idleTileConsumerCacheList.clear(); + } + } + } + + /** + * Releases thread-local tiles cached for use by the rasterizing thread. + * Allowed caller: Rasterizer/Producer-Thread + */ + public void disposeRasterizerResources() { + releaseTiles(idleTileWorkerCacheList); + } + + /** + * Releases thread-local tiles cached for performance reasons. Allowed + * Allowed caller: MaskBlit/Consumer-Thread + */ + public void disposeConsumerResources() { + releaseTiles(idleTileConsumerCacheList); + } + + /** + * Release a list of tiles and allow it to be re-used by another thread. + * Thread safe. + */ + public void releaseTiles(List<JulesTile> tileList) { + if (tileList.size() > 0) { + synchronized (idleBuffers) { + idleBuffers.addAll(tileList); + } + tileList.clear(); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/jules/JulesAATileGenerator.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,349 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.jules; + +import java.awt.*; +import java.awt.geom.*; +import java.util.concurrent.*; +import sun.java2d.pipe.*; +import sun.java2d.xr.*; + +public class JulesAATileGenerator implements AATileGenerator { + /* Threading stuff */ + final static ExecutorService rasterThreadPool = + Executors.newCachedThreadPool(); + final static int CPU_CNT = Runtime.getRuntime().availableProcessors(); + + final static boolean ENABLE_THREADING = false; + final static int THREAD_MIN = 16; + final static int THREAD_BEGIN = 16; + + IdleTileCache tileCache; + TileWorker worker; + boolean threaded = false; + int rasterTileCnt; + + /* Tiling */ + final static int TILE_SIZE = 32; + final static int TILE_SIZE_FP = 32 << 16; + int left, right, top, bottom, width, height; + int leftFP, topFP; + int tileCnt, tilesX, tilesY; + int currTilePos = 0; + TrapezoidList traps; + TileTrapContainer[] tiledTrapArray; + JulesTile mainTile; + + public JulesAATileGenerator(Shape s, AffineTransform at, Region clip, + BasicStroke bs, boolean thin, + boolean normalize, int[] bbox) { + JulesPathBuf buf = new JulesPathBuf(); + + if (bs == null) { + traps = buf.tesselateFill(s, at, clip); + } else { + traps = buf.tesselateStroke(s, bs, thin, false, true, at, clip); + } + + calculateArea(bbox); + bucketSortTraps(); + calculateTypicalAlpha(); + + threaded = ENABLE_THREADING && + rasterTileCnt >= THREAD_MIN && CPU_CNT >= 2; + if (threaded) { + tileCache = new IdleTileCache(); + worker = new TileWorker(this, THREAD_BEGIN, tileCache); + rasterThreadPool.execute(worker); + } + + mainTile = new JulesTile(); + } + + private static native long + rasterizeTrapezoidsNative(long pixmanImagePtr, int[] traps, + int[] trapPos, int trapCnt, + byte[] buffer, int xOff, int yOff); + + private static native void freePixmanImgPtr(long pixmanImgPtr); + + private void calculateArea(int[] bbox) { + tilesX = 0; + tilesY = 0; + tileCnt = 0; + bbox[0] = 0; + bbox[1] = 0; + bbox[2] = 0; + bbox[3] = 0; + + if (traps.getSize() > 0) { + left = traps.getLeft(); + right = traps.getRight(); + top = traps.getTop(); + bottom = traps.getBottom(); + leftFP = left << 16; + topFP = top << 16; + + bbox[0] = left; + bbox[1] = top; + bbox[2] = right; + bbox[3] = bottom; + + width = right - left; + height = bottom - top; + + if (width > 0 && height > 0) { + tilesX = (int) Math.ceil(((double) width) / TILE_SIZE); + tilesY = (int) Math.ceil(((double) height) / TILE_SIZE); + tileCnt = tilesY * tilesX; + tiledTrapArray = new TileTrapContainer[tileCnt]; + } else { + // If there is no area touched by the traps, don't + // render them. + traps.setSize(0); + } + } + } + + + private void bucketSortTraps() { + + for (int i = 0; i < traps.getSize(); i++) { + int top = traps.getTop(i) - XRUtils.XDoubleToFixed(this.top); + int bottom = traps.getBottom(i) - topFP; + int p1xLeft = traps.getP1XLeft(i) - leftFP; + int p2xLeft = traps.getP2XLeft(i) - leftFP; + int p1xRight = traps.getP1XRight(i) - leftFP; + int p2xRight = traps.getP2XRight(i) - leftFP; + + int minLeft = Math.min(p1xLeft, p2xLeft); + int maxRight = Math.max(p1xRight, p2xRight); + + maxRight = maxRight > 0 ? maxRight - 1 : maxRight; + bottom = bottom > 0 ? bottom - 1 : bottom; + + int startTileY = top / TILE_SIZE_FP; + int endTileY = bottom / TILE_SIZE_FP; + int startTileX = minLeft / TILE_SIZE_FP; + int endTileX = maxRight / TILE_SIZE_FP; + + for (int n = startTileY; n <= endTileY; n++) { + + for (int m = startTileX; m <= endTileX; m++) { + int trapArrayPos = n * tilesX + m; + TileTrapContainer trapTileList = tiledTrapArray[trapArrayPos]; + if (trapTileList == null) { + trapTileList = new TileTrapContainer(new GrowableIntArray(1, 16)); + tiledTrapArray[trapArrayPos] = trapTileList; + } + + trapTileList.getTraps().addInt(i); + } + } + } + } + + public void getAlpha(byte[] tileBuffer, int offset, int rowstride) { + JulesTile tile = null; + + if (threaded) { + tile = worker.getPreRasterizedTile(currTilePos); + } + + if (tile != null) { + System.arraycopy(tile.getImgBuffer(), 0, + tileBuffer, 0, tileBuffer.length); + tileCache.releaseTile(tile); + } else { + mainTile.setImgBuffer(tileBuffer); + rasterizeTile(currTilePos, mainTile); + } + + nextTile(); + } + + public void calculateTypicalAlpha() { + rasterTileCnt = 0; + + for (int index = 0; index < tileCnt; index++) { + + TileTrapContainer trapCont = tiledTrapArray[index]; + if (trapCont != null) { + GrowableIntArray trapList = trapCont.getTraps(); + + int tileAlpha = 127; + if (trapList == null || trapList.getSize() == 0) { + tileAlpha = 0; + } else if (doTrapsCoverTile(trapList, index)) { + tileAlpha = 0xff; + } + + if (tileAlpha == 127 || tileAlpha == 0xff) { + rasterTileCnt++; + } + + trapCont.setTileAlpha(tileAlpha); + } + } + } + + /* + * Optimization for large fills. Foutunatly cairo does generate an y-sorted + * list of trapezoids. This makes it quite simple to check wether a tile is + * fully covered by traps by: - Checking wether the tile is fully covered by + * traps vertically (trap 2 starts where trap 1 ended) - Checking wether all + * traps cover the tile horizontally This also works, when a single tile + * coveres the whole tile. + */ + protected boolean doTrapsCoverTile(GrowableIntArray trapList, int tileIndex) { + + // Don't bother optimizing tiles with lots of traps, usually it won't + // succeed anyway. + if (trapList.getSize() > TILE_SIZE) { + return false; + } + + int tileStartX = getXPos(tileIndex) * TILE_SIZE_FP + leftFP; + int tileStartY = getYPos(tileIndex) * TILE_SIZE_FP + topFP; + int tileEndX = tileStartX + TILE_SIZE_FP; + int tileEndY = tileStartY + TILE_SIZE_FP; + + // Check wether first tile covers the beginning of the tile vertically + int firstTop = traps.getTop(trapList.getInt(0)); + int firstBottom = traps.getBottom(trapList.getInt(0)); + if (firstTop > tileStartY || firstBottom < tileStartY) { + return false; + } + + // Initialize lastBottom with top, in order to pass the checks for the + // first iteration + int lastBottom = firstTop; + + for (int i = 0; i < trapList.getSize(); i++) { + int trapPos = trapList.getInt(i); + if (traps.getP1XLeft(trapPos) > tileStartX || + traps.getP2XLeft(trapPos) > tileStartX || + traps.getP1XRight(trapPos) < tileEndX || + traps.getP2XRight(trapPos) < tileEndX || + traps.getTop(trapPos) != lastBottom) + { + return false; + } + lastBottom = traps.getBottom(trapPos); + } + + // When the last trap covered the tileEnd vertically, the tile is fully + // covered + return lastBottom >= tileEndY; + } + + public int getTypicalAlpha() { + if (tiledTrapArray[currTilePos] == null) { + return 0; + } else { + return tiledTrapArray[currTilePos].getTileAlpha(); + } + } + + public void dispose() { + freePixmanImgPtr(mainTile.getPixmanImgPtr()); + + if (threaded) { + tileCache.disposeConsumerResources(); + worker.disposeConsumerResources(); + } + } + + protected JulesTile rasterizeTile(int tileIndex, JulesTile tile) { + int tileOffsetX = left + getXPos(tileIndex) * TILE_SIZE; + int tileOffsetY = top + getYPos(tileIndex) * TILE_SIZE; + TileTrapContainer trapCont = tiledTrapArray[tileIndex]; + GrowableIntArray trapList = trapCont.getTraps(); + + if (trapCont.getTileAlpha() == 127) { + long pixmanImgPtr = + rasterizeTrapezoidsNative(tile.getPixmanImgPtr(), + traps.getTrapArray(), + trapList.getArray(), + trapList.getSize(), + tile.getImgBuffer(), + tileOffsetX, tileOffsetY); + tile.setPixmanImgPtr(pixmanImgPtr); + } + + tile.setTilePos(tileIndex); + return tile; + } + + protected int getXPos(int arrayPos) { + return arrayPos % tilesX; + } + + protected int getYPos(int arrayPos) { + return arrayPos / tilesX; + } + + public void nextTile() { + currTilePos++; + } + + public int getTileHeight() { + return TILE_SIZE; + } + + public int getTileWidth() { + return TILE_SIZE; + } + + public int getTileCount() { + return tileCnt; + } + + public TileTrapContainer getTrapContainer(int index) { + return tiledTrapArray[index]; + } +} + +class TileTrapContainer { + int tileAlpha; + GrowableIntArray traps; + + public TileTrapContainer(GrowableIntArray traps) { + this.traps = traps; + } + + public void setTileAlpha(int tileAlpha) { + this.tileAlpha = tileAlpha; + } + + public int getTileAlpha() { + return tileAlpha; + } + + public GrowableIntArray getTraps() { + return traps; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/jules/JulesPathBuf.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,271 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.jules; + +import java.awt.*; +import java.awt.geom.*; +import sun.awt.X11GraphicsEnvironment; +import sun.java2d.pipe.*; +import sun.java2d.xr.*; + +public class JulesPathBuf { + static final double[] emptyDash = new double[0]; + + private static final byte CAIRO_PATH_OP_MOVE_TO = 0; + private static final byte CAIRO_PATH_OP_LINE_TO = 1; + private static final byte CAIRO_PATH_OP_CURVE_TO = 2; + private static final byte CAIRO_PATH_OP_CLOSE_PATH = 3; + + private static final int CAIRO_FILL_RULE_WINDING = 0; + private static final int CAIRO_FILL_RULE_EVEN_ODD = 1; + + GrowablePointArray points = new GrowablePointArray(128); + GrowableByteArray ops = new GrowableByteArray(1, 128); + int[] xTrapArray = new int[512]; + + private static final boolean isCairoAvailable; + + static { + isCairoAvailable = + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction<Boolean>() { + public Boolean run() { + boolean loadSuccess = false; + if (X11GraphicsEnvironment.isXRenderAvailable()) { + try { + System.loadLibrary("jules"); + loadSuccess = true; + if (X11GraphicsEnvironment.isXRenderVerbose()) { + System.out.println( + "Xrender: INFO: Jules library loaded"); + } + } catch (UnsatisfiedLinkError ex) { + loadSuccess = false; + if (X11GraphicsEnvironment.isXRenderVerbose()) { + System.out.println( + "Xrender: INFO: Jules library not installed."); + } + } + } + return Boolean.valueOf(loadSuccess); + } + }); + } + + public static boolean isCairoAvailable() { + return isCairoAvailable; + } + + public TrapezoidList tesselateFill(Shape s, AffineTransform at, Region clip) { + int windingRule = convertPathData(s, at); + xTrapArray[0] = 0; + + xTrapArray = tesselateFillNative(points.getArray(), ops.getArray(), + points.getSize(), ops.getSize(), + xTrapArray, xTrapArray.length, + getCairoWindingRule(windingRule), + clip.getLoX(), clip.getLoY(), + clip.getHiX(), clip.getHiY()); + + return new TrapezoidList(xTrapArray); + } + + public TrapezoidList tesselateStroke(Shape s, BasicStroke bs, boolean thin, + boolean adjust, boolean antialias, + AffineTransform at, Region clip) { + + float lw; + if (thin) { + if (antialias) { + lw = 0.5f; + } else { + lw = 1.0f; + } + } else { + lw = bs.getLineWidth(); + } + + convertPathData(s, at); + + double[] dashArray = floatToDoubleArray(bs.getDashArray()); + xTrapArray[0] = 0; + + xTrapArray = + tesselateStrokeNative(points.getArray(), ops.getArray(), + points.getSize(), ops.getSize(), + xTrapArray, xTrapArray.length, lw, + bs.getEndCap(), bs.getLineJoin(), + bs.getMiterLimit(), dashArray, + dashArray.length, bs.getDashPhase(), + 1, 0, 0, 0, 1, 0, + clip.getLoX(), clip.getLoY(), + clip.getHiX(), clip.getHiY()); + + return new TrapezoidList(xTrapArray); + } + + protected double[] floatToDoubleArray(float[] dashArrayFloat) { + double[] dashArrayDouble = emptyDash; + if (dashArrayFloat != null) { + dashArrayDouble = new double[dashArrayFloat.length]; + + for (int i = 0; i < dashArrayFloat.length; i++) { + dashArrayDouble[i] = dashArrayFloat[i]; + } + } + + return dashArrayDouble; + } + + protected int convertPathData(Shape s, AffineTransform at) { + PathIterator pi = s.getPathIterator(at); + + double[] coords = new double[6]; + double currX = 0; + double currY = 0; + + while (!pi.isDone()) { + int curOp = pi.currentSegment(coords); + + int pointIndex; + switch (curOp) { + + case PathIterator.SEG_MOVETO: + ops.addByte(CAIRO_PATH_OP_MOVE_TO); + pointIndex = points.getNextIndex(); + points.setX(pointIndex, DoubleToCairoFixed(coords[0])); + points.setY(pointIndex, DoubleToCairoFixed(coords[1])); + currX = coords[0]; + currY = coords[1]; + break; + + case PathIterator.SEG_LINETO: + ops.addByte(CAIRO_PATH_OP_LINE_TO); + pointIndex = points.getNextIndex(); + points.setX(pointIndex, DoubleToCairoFixed(coords[0])); + points.setY(pointIndex, DoubleToCairoFixed(coords[1])); + currX = coords[0]; + currY = coords[1]; + break; + + /** + * q0 = p0 + * q1 = (p0+2*p1)/3 + * q2 = (p2+2*p1)/3 + * q3 = p2 + */ + case PathIterator.SEG_QUADTO: + double x1 = coords[0]; + double y1 = coords[1]; + double x2, y2; + double x3 = coords[2]; + double y3 = coords[3]; + + x2 = x1 + (x3 - x1) / 3; + y2 = y1 + (y3 - y1) / 3; + x1 = currX + 2 * (x1 - currX) / 3; + y1 =currY + 2 * (y1 - currY) / 3; + + ops.addByte(CAIRO_PATH_OP_CURVE_TO); + pointIndex = points.getNextIndex(); + points.setX(pointIndex, DoubleToCairoFixed(x1)); + points.setY(pointIndex, DoubleToCairoFixed(y1)); + pointIndex = points.getNextIndex(); + points.setX(pointIndex, DoubleToCairoFixed(x2)); + points.setY(pointIndex, DoubleToCairoFixed(y2)); + pointIndex = points.getNextIndex(); + points.setX(pointIndex, DoubleToCairoFixed(x3)); + points.setY(pointIndex, DoubleToCairoFixed(y3)); + currX = x3; + currY = y3; + break; + + case PathIterator.SEG_CUBICTO: + ops.addByte(CAIRO_PATH_OP_CURVE_TO); + pointIndex = points.getNextIndex(); + points.setX(pointIndex, DoubleToCairoFixed(coords[0])); + points.setY(pointIndex, DoubleToCairoFixed(coords[1])); + pointIndex = points.getNextIndex(); + points.setX(pointIndex, DoubleToCairoFixed(coords[2])); + points.setY(pointIndex, DoubleToCairoFixed(coords[3])); + pointIndex = points.getNextIndex(); + points.setX(pointIndex, DoubleToCairoFixed(coords[4])); + points.setY(pointIndex, DoubleToCairoFixed(coords[5])); + currX = coords[4]; + currY = coords[5]; + break; + + case PathIterator.SEG_CLOSE: + ops.addByte(CAIRO_PATH_OP_CLOSE_PATH); + break; + } + + pi.next(); + } + + return pi.getWindingRule(); + } + + private static native int[] + tesselateStrokeNative(int[] pointArray, byte[] ops, + int pointCnt, int opCnt, + int[] xTrapArray, int xTrapArrayLength, + double lineWidth, int lineCap, int lineJoin, + double miterLimit, double[] dashArray, + int dashCnt, double offset, + double m00, double m01, double m02, + double m10, double m11, double m12, + int clipLowX, int clipLowY, + int clipWidth, int clipHeight); + + private static native int[] + tesselateFillNative(int[] pointArray, byte[] ops, int pointCnt, + int opCnt, int[] xTrapArray, int xTrapArrayLength, + int windingRule, int clipLowX, int clipLowY, int clipWidth, int clipHeight); + + public void clear() { + points.clear(); + ops.clear(); + xTrapArray[0] = 0; + } + + private static int DoubleToCairoFixed(double dbl) { + return (int) (dbl * 256); + } + + private static int getCairoWindingRule(int j2dWindingRule) { + switch(j2dWindingRule) { + case PathIterator.WIND_EVEN_ODD: + return CAIRO_FILL_RULE_EVEN_ODD; + + case PathIterator.WIND_NON_ZERO: + return CAIRO_FILL_RULE_WINDING; + + default: + throw new IllegalArgumentException("Illegal Java2D winding rule specified"); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/jules/JulesRenderingEngine.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,54 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.jules; + +import java.awt.*; + +import java.awt.geom.*; +import sun.java2d.pipe.*; +import sun.java2d.pisces.*; + +public class JulesRenderingEngine extends PiscesRenderingEngine { + + @Override + public AATileGenerator + getAATileGenerator(Shape s, AffineTransform at, Region clip, + BasicStroke bs, boolean thin, + boolean normalize, int[] bbox) { + + if (JulesPathBuf.isCairoAvailable()) { + return new JulesAATileGenerator(s, at, clip, bs, thin, + normalize, bbox); + } else { + return super.getAATileGenerator(s, at, clip, bs, thin, + normalize, bbox); + } + } + + public float getMinimumAAPenSize() { + return 0.5f; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/jules/JulesShapePipe.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,102 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.jules; + +import java.awt.*; +import sun.awt.*; +import sun.java2d.*; +import sun.java2d.pipe.*; +import sun.java2d.xr.*; + +public class JulesShapePipe implements ShapeDrawPipe { + + XRCompositeManager compMan; + JulesPathBuf buf = new JulesPathBuf(); + + public JulesShapePipe(XRCompositeManager compMan) { + this.compMan = compMan; + } + + /** + * Common validate method, used by all XRRender functions to validate the + * destination context. + */ + private final void validateSurface(SunGraphics2D sg2d) { + XRSurfaceData xrsd = (XRSurfaceData) sg2d.surfaceData; + xrsd.validateAsDestination(sg2d, sg2d.getCompClip()); + xrsd.maskBuffer.validateCompositeState(sg2d.composite, sg2d.transform, + sg2d.paint, sg2d); + } + + public void draw(SunGraphics2D sg2d, Shape s) { + try { + SunToolkit.awtLock(); + validateSurface(sg2d); + XRSurfaceData xrsd = (XRSurfaceData) sg2d.surfaceData; + + BasicStroke bs; + + if (sg2d.stroke instanceof BasicStroke) { + bs = (BasicStroke) sg2d.stroke; + } else { //TODO: What happens in the case of a !BasicStroke?? + s = sg2d.stroke.createStrokedShape(s); + bs = null; + } + + boolean adjust = + (bs != null && sg2d.strokeHint != SunHints.INTVAL_STROKE_PURE); + boolean thin = (sg2d.strokeState <= SunGraphics2D.STROKE_THINDASHED); + + TrapezoidList traps = + buf.tesselateStroke(s, bs, thin, adjust, true, + sg2d.transform, sg2d.getCompClip()); + compMan.XRCompositeTraps(xrsd.picture, + sg2d.transX, sg2d.transY, traps); + + buf.clear(); + + } finally { + SunToolkit.awtUnlock(); + } + } + + public void fill(SunGraphics2D sg2d, Shape s) { + try { + SunToolkit.awtLock(); + validateSurface(sg2d); + + XRSurfaceData xrsd = (XRSurfaceData) sg2d.surfaceData; + + TrapezoidList traps = buf.tesselateFill(s, sg2d.transform, + sg2d.getCompClip()); + compMan.XRCompositeTraps(xrsd.picture, 0, 0, traps); + + buf.clear(); + } finally { + SunToolkit.awtUnlock(); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/jules/JulesTile.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,67 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.jules; + +public class JulesTile { + byte[] imgBuffer; + long pixmanImgPtr = 0; + int tilePos; + + public JulesTile() { + } + + public byte[] getImgBuffer() { + if(imgBuffer == null) { + imgBuffer = new byte[1024]; + } + + return imgBuffer; + } + + public long getPixmanImgPtr() { + return pixmanImgPtr; + } + + public void setPixmanImgPtr(long pixmanImgPtr) { + this.pixmanImgPtr = pixmanImgPtr; + } + + public boolean hasBuffer() { + return imgBuffer != null; + } + + public int getTilePos() { + return tilePos; + } + + public void setTilePos(int tilePos) { + this.tilePos = tilePos; + } + + public void setImgBuffer(byte[] imgBuffer){ + this.imgBuffer = imgBuffer; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/jules/TileWorker.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,146 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.jules; + +import java.util.*; + +public class TileWorker implements Runnable { + final static int RASTERIZED_TILE_SYNC_GRANULARITY = 8; + final ArrayList<JulesTile> rasterizedTileConsumerCache = + new ArrayList<JulesTile>(); + final LinkedList<JulesTile> rasterizedBuffers = new LinkedList<JulesTile>(); + + IdleTileCache tileCache; + JulesAATileGenerator tileGenerator; + int workerStartIndex; + volatile int consumerPos = 0; + + /* Threading statistics */ + int mainThreadCnt = 0; + int workerCnt = 0; + int doubled = 0; + + public TileWorker(JulesAATileGenerator tileGenerator, int workerStartIndex, IdleTileCache tileCache) { + this.tileGenerator = tileGenerator; + this.workerStartIndex = workerStartIndex; + this.tileCache = tileCache; + } + + public void run() { + ArrayList<JulesTile> tiles = new ArrayList<JulesTile>(16); + + for (int i = workerStartIndex; i < tileGenerator.getTileCount(); i++) { + TileTrapContainer tile = tileGenerator.getTrapContainer(i); + + if (tile != null && tile.getTileAlpha() == 127) { + JulesTile rasterizedTile = + tileGenerator.rasterizeTile(i, + tileCache.getIdleTileWorker( + tileGenerator.getTileCount() - i - 1)); + tiles.add(rasterizedTile); + + if (tiles.size() > RASTERIZED_TILE_SYNC_GRANULARITY) { + addRasterizedTiles(tiles); + tiles.clear(); + } + } + + i = Math.max(i, consumerPos + RASTERIZED_TILE_SYNC_GRANULARITY / 2); + } + addRasterizedTiles(tiles); + + tileCache.disposeRasterizerResources(); + } + + /** + * Returns a rasterized tile for the specified tilePos, + * or null if it isn't available. + * Allowed caller: MaskBlit/Consumer-Thread + */ + public JulesTile getPreRasterizedTile(int tilePos) { + JulesTile tile = null; + + if (rasterizedTileConsumerCache.size() == 0 && + tilePos >= workerStartIndex) + { + synchronized (rasterizedBuffers) { + rasterizedTileConsumerCache.addAll(rasterizedBuffers); + rasterizedBuffers.clear(); + } + } + + while (tile == null && rasterizedTileConsumerCache.size() > 0) { + JulesTile t = rasterizedTileConsumerCache.get(0); + + if (t.getTilePos() > tilePos) { + break; + } + + if (t.getTilePos() < tilePos) { + tileCache.releaseTile(t); + doubled++; + } + + if (t.getTilePos() <= tilePos) { + rasterizedTileConsumerCache.remove(0); + } + + if (t.getTilePos() == tilePos) { + tile = t; + } + } + + if (tile == null) { + mainThreadCnt++; + + // If there are no tiles left, tell the producer the current + // position. This avoids producing tiles twice. + consumerPos = tilePos; + } else { + workerCnt++; + } + + return tile; + } + + private void addRasterizedTiles(ArrayList<JulesTile> tiles) { + synchronized (rasterizedBuffers) { + rasterizedBuffers.addAll(tiles); + } + } + + /** + * Releases cached tiles. + * Allowed caller: MaskBlit/Consumer-Thread + */ + public void disposeConsumerResources() { + synchronized (rasterizedBuffers) { + tileCache.releaseTiles(rasterizedBuffers); + } + + tileCache.releaseTiles(rasterizedTileConsumerCache); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/jules/TrapezoidList.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,110 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.jules; + +public class TrapezoidList { + public static final int TRAP_START_INDEX = 5; + public static final int TRAP_SIZE = 10; + + int[] trapArray; + + public TrapezoidList(int[] trapArray) { + this.trapArray = trapArray; + } + + public final int[] getTrapArray() { + return trapArray; + } + + public final int getSize() { + return trapArray[0]; + } + + public final void setSize(int size) { + trapArray[0] = 0; + } + + public final int getLeft() { + return trapArray[1]; + } + + public final int getTop() { + return trapArray[2]; + } + + public final int getRight() { + return trapArray[3]; + } + + public final int getBottom() { + return trapArray[4]; + } + + + private final int getTrapStartAddresse(int pos) { + return TRAP_START_INDEX + TRAP_SIZE * pos; + } + + public final int getTop(int pos) { + return trapArray[getTrapStartAddresse(pos) + 0]; + } + + public final int getBottom(int pos) { + return trapArray[getTrapStartAddresse(pos) + 1]; + } + + public final int getP1XLeft(int pos) { + return trapArray[getTrapStartAddresse(pos) + 2]; + } + + public final int getP1YLeft(int pos) { + return trapArray[getTrapStartAddresse(pos) + 3]; + } + + public final int getP2XLeft(int pos) { + return trapArray[getTrapStartAddresse(pos) + 4]; + } + + public final int getP2YLeft(int pos) { + return trapArray[getTrapStartAddresse(pos) + 5]; + } + + public final int getP1XRight(int pos) { + return trapArray[getTrapStartAddresse(pos) + 6]; + } + + public final int getP1YRight(int pos) { + return trapArray[getTrapStartAddresse(pos) + 7]; + } + + public final int getP2XRight(int pos) { + return trapArray[getTrapStartAddresse(pos) + 8]; + } + + public final int getP2YRight(int pos) { + return trapArray[getTrapStartAddresse(pos) + 9]; + } +}
--- a/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java Wed Jun 16 12:40:22 2010 -0700 +++ b/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java Wed Jun 16 14:07:47 2010 -0700 @@ -46,6 +46,7 @@ import sun.awt.SunToolkit; import sun.awt.X11ComponentPeer; import sun.awt.X11GraphicsConfig; +import sun.awt.X11GraphicsEnvironment; import sun.awt.image.PixelConverter; import sun.font.X11TextRenderer; import sun.java2d.InvalidPipeException; @@ -64,7 +65,7 @@ import sun.java2d.pipe.TextPipe; import sun.java2d.pipe.Region; -public abstract class X11SurfaceData extends SurfaceData { +public abstract class X11SurfaceData extends XSurfaceData { X11ComponentPeer peer; X11GraphicsConfig graphicsConfig; private RenderLoops solidloops; @@ -74,8 +75,6 @@ private static native void initIDs(Class xorComp, boolean tryDGA); protected native void initSurface(int depth, int width, int height, long drawable); - native boolean isDrawableValid(); - protected native void flushNativeSurface(); public static final String DESC_INT_BGR_X11 = "Integer BGR Pixmap"; @@ -212,7 +211,8 @@ protected static boolean dgaAvailable; static { - if (!GraphicsEnvironment.isHeadless()) { + if (!isX11SurfaceDataInitialized() && + !GraphicsEnvironment.isHeadless()) { // If a screen magnifier is present, don't attempt to use DGA String magPresent = (String) java.security.AccessController.doPrivileged (new sun.security.action.GetPropertyAction("javax.accessibility.screen_magnifier_present")); @@ -245,7 +245,7 @@ X11PMBlitLoops.register(); X11PMBlitBgLoops.register(); } - } + } } /** @@ -432,11 +432,11 @@ cm, drawable, transparency); } - /** - * Initializes the native Ops pointer. - */ - private native void initOps(X11ComponentPeer peer, - X11GraphicsConfig gc, int depth); +// /** +// * Initializes the native Ops pointer. +// */ +// private native void initOps(X11ComponentPeer peer, +// X11GraphicsConfig gc, int depth); protected X11SurfaceData(X11ComponentPeer peer, X11GraphicsConfig gc, @@ -613,8 +613,6 @@ return sType; } - public native void setInvalid(); - public void invalidate() { if (isValid()) { setInvalid(); @@ -628,16 +626,9 @@ * X11SurfaceData object. */ - private static native long XCreateGC(long pXSData); - private static native void XResetClip(long xgc); - private static native void XSetClip(long xgc, - int lox, int loy, int hix, int hiy, - Region complexclip); private static native void XSetCopyMode(long xgc); private static native void XSetXorMode(long xgc); private static native void XSetForeground(long xgc, int pixel); - private static native void XSetGraphicsExposures(long xgc, - boolean needExposures); private long xgc; private Region validatedClip;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/x11/XSurfaceData.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,40 @@ +package sun.java2d.x11; + +import java.awt.image.*; + +import sun.awt.*; +import sun.java2d.*; +import sun.java2d.loops.*; +import sun.java2d.pipe.*; + +public abstract class XSurfaceData extends SurfaceData { + static boolean isX11SurfaceDataInitialized = false; + + public static boolean isX11SurfaceDataInitialized() { + return isX11SurfaceDataInitialized; + } + + public static void setX11SurfaceDataInitialized() { + isX11SurfaceDataInitialized = true; + } + + public XSurfaceData(SurfaceType surfaceType, ColorModel cm) { + super(surfaceType, cm); + } + + protected native void initOps(X11ComponentPeer peer, X11GraphicsConfig gc, int depth); + + protected static native long XCreateGC(long pXSData); + + protected static native void XResetClip(long xgc); + + protected static native void XSetClip(long xgc, int lox, int loy, int hix, int hiy, Region complexclip); + + protected native void flushNativeSurface(); + + protected native boolean isDrawableValid(); + + protected native void setInvalid(); + + protected static native void XSetGraphicsExposures(long xgc, boolean needExposures); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/xr/DirtyRegion.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,133 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.xr; + +import static java.lang.Math.min; +import static java.lang.Math.max; +import static sun.java2d.xr.MaskTileManager.MASK_SIZE; + +/** + * This class implements region tracking, used by the tiled-mask code. + * + * @author Clemens Eisserer + */ + +public class DirtyRegion implements Cloneable { + int x, y, x2, y2; + + public DirtyRegion() { + clear(); + } + + public void clear() { + x = Integer.MAX_VALUE; + y = Integer.MAX_VALUE; + x2 = Integer.MIN_VALUE; + y2 = Integer.MIN_VALUE; + } + + public void growDirtyRegion(int x, int y, int x2, int y2) { + this.x = min(x, this.x); + this.y = min(y, this.y); + this.x2 = max(x2, this.x2); + this.y2 = max(y2, this.y2); + } + + public int getWidth() { + return x2 - x; + } + + public int getHeight() { + return y2 - y; + } + + public void growDirtyRegionTileLimit(int x, int y, int x2, int y2) { + if (x < this.x) { + this.x = max(x, 0); + } + if (y < this.y) { + this.y = max(y, 0); + } + if (x2 > this.x2) { + this.x2 = min(x2, MASK_SIZE); + } + if (y2 > this.y2) { + this.y2 = min(y2, MASK_SIZE); + } + } + + public static DirtyRegion combineRegion(DirtyRegion region1, + DirtyRegion region2) { + DirtyRegion region = new DirtyRegion(); + region.x = min(region1.x, region2.x); + region.y = min(region1.y, region2.y); + region.x2 = max(region1.x2, region2.x2); + region.y2 = max(region1.y2, region2.y2); + return region; + } + + public void setDirtyLineRegion(int x1, int y1, int x2, int y2) { + if (x1 < x2) { + this.x = x1; + this.x2 = x2; + } else { + this.x = x2; + this.x2 = x1; + } + + if (y1 < y2) { + this.y = y1; + this.y2 = y2; + } else { + this.y = y2; + this.y2 = y1; + } + } + + public void translate(int x, int y) { + if (this.x != Integer.MAX_VALUE) { + this.x += x; + this.x2 += x; + this.y += y; + this.y2 += y; + } + } + + public String toString() { + return this.getClass().getName() + + "(x: " + x + ", y:" + y + ", x2:" + x2 + ", y2:" + y2 + ")"; + } + + public DirtyRegion cloneRegion() { + try { + return (DirtyRegion) clone(); + } catch (CloneNotSupportedException ex) { + ex.printStackTrace(); + } + + return null; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/xr/GrowableByteArray.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,127 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.xr; + +import java.util.*; + +/** + * Growable int array, designed to allow subclasses to emulate + * the behaviour of value types. + * + * @author Clemens Eisserer + */ + +public class GrowableByteArray +{ + + byte[] array; + int size; + int cellSize; + + public GrowableByteArray(int cellSize, int initialSize) + { + array = new byte[initialSize]; + size = 0; + this.cellSize = cellSize; + } + + private int getNextCellIndex() + { + int oldSize = size; + size += cellSize; + + if (size >= array.length) + { + growArray(); + } + + return oldSize; + } + + /** + * @return a direct reference to the backing array. + */ + public byte[] getArray() + { + return array; + } + + /** + * @return a copy of the backing array. + */ + public byte[] getSizedArray() + { + return Arrays.copyOf(array, getSize()); + } + + public final int getByte(int index) + { + return array[getCellIndex(index)]; + } + + /** + * Returns the index of the next free cell, + * and grows the backing arrays if required. + */ + public final int getNextIndex() + { + return getNextCellIndex() / cellSize; + } + + protected final int getCellIndex(int cellIndex) + { + return cellSize * cellIndex; + } + + public final void addByte(byte i) + { + int nextIndex = getNextIndex(); + array[nextIndex] = i; + } + + /** + * @return The number of stored cells. + */ + public final int getSize() + { + return size / cellSize; + } + + public void clear() + { + size = 0; + } + + protected void growArray() + { + int newSize = Math.max(array.length * 2, 10); + byte[] oldArray = array; + array = new byte[newSize]; + + System.arraycopy(oldArray, 0, array, 0, oldArray.length); + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/xr/GrowableEltArray.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,84 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.java2d.xr; + +/** + * Class to efficiently store glyph information for laid out glyphs, + * passed to native or java backend. + * + * @author Clemens Eisserer + */ +public class GrowableEltArray extends GrowableIntArray { + private static final int ELT_SIZE = 4; + GrowableIntArray glyphs; + + public GrowableEltArray(int initialSize) + { + super(ELT_SIZE, initialSize); + glyphs = new GrowableIntArray(1, initialSize*8); + } + + public final int getCharCnt(int index) { + return array[getCellIndex(index) + 0]; + } + + public final void setCharCnt(int index, int cnt) { + array[getCellIndex(index) + 0] = cnt; + } + + public final int getXOff(int index) { + return array[getCellIndex(index) + 1]; + } + + public final void setXOff(int index, int xOff) { + array[getCellIndex(index) + 1] = xOff; + } + + public final int getYOff(int index) { + return array[getCellIndex(index) + 2]; + } + + public final void setYOff(int index, int yOff) { + array[getCellIndex(index) + 2] = yOff; + } + + public final int getGlyphSet(int index) { + return array[getCellIndex(index) + 3]; + } + + public final void setGlyphSet(int index, int glyphSet) { + array[getCellIndex(index) + 3] = glyphSet; + } + + public GrowableIntArray getGlyphs() { + return glyphs; + } + + public void clear() { + glyphs.clear(); + super.clear(); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/java2d/xr/GrowableIntArray.java Wed Jun 16 14:07:47 2010 -0700 @@ -0,0 +1,114 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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 + * pub