# HG changeset patch # User Andrew John Hughes # Date 1242909949 -3600 # Node ID 5b10caa4c7fdbac2650aeba040e3a41bc898eea0 # Parent 2afddd1c229e64d11f701796d99e0d2464bdefff Add support for disabling Nimbus code generation with JIBX and instead using pre-built files. 2009-05-21 Andrew John Hughes * Makefile.am: Apply patch and use our generated source directory when ENABLE_NIMBUS_GENERATION is not enabled. Symlink JIBX when it is. * acinclude.m4: (AC_CHECK_ENABLE_NIMBUS_GENERATION): New macro. * configure.ac: Turn on ENABLE_NIMBUS_GENERATION and only check for JIBX when this is enabled. * generated/javax/swing/plaf/nimbus/ArrowButtonPainter.java, * generated/javax/swing/plaf/nimbus/ButtonPainter.java, * generated/javax/swing/plaf/nimbus/CheckBoxMenuItemPainter.java, * generated/javax/swing/plaf/nimbus/CheckBoxPainter.java, * generated/javax/swing/plaf/nimbus/ComboBoxComboBoxArrowButtonEditableState.java, * generated/javax/swing/plaf/nimbus/ComboBoxComboBoxArrowButtonPainter.java, * generated/javax/swing/plaf/nimbus/ComboBoxComboBoxTextFieldPainter.java, * generated/javax/swing/plaf/nimbus/ComboBoxEditableState.java, * generated/javax/swing/plaf/nimbus/ComboBoxPainter.java, * generated/javax/swing/plaf/nimbus/DesktopIconPainter.java, * generated/javax/swing/plaf/nimbus/DesktopPanePainter.java, * generated/javax/swing/plaf/nimbus/EditorPanePainter.java, * generated/javax/swing/plaf/nimbus/FileChooserPainter.java, * generated/javax/swing/plaf/nimbus/FormattedTextFieldPainter.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonWindowNotFocusedState.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonWindowNotFocusedState.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowMaximizedState.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonWindowNotFocusedState.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePanePainter.java, * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneWindowFocusedState.java, * generated/javax/swing/plaf/nimbus/InternalFramePainter.java, * generated/javax/swing/plaf/nimbus/InternalFrameWindowFocusedState.java, * generated/javax/swing/plaf/nimbus/MenuBarMenuPainter.java, * generated/javax/swing/plaf/nimbus/MenuBarPainter.java, * generated/javax/swing/plaf/nimbus/MenuItemPainter.java, * generated/javax/swing/plaf/nimbus/MenuPainter.java, * generated/javax/swing/plaf/nimbus/NimbusDefaults.java, * generated/javax/swing/plaf/nimbus/OptionPaneOptionPaneMessageAreaOptionPaneLabelPainter.java, * generated/javax/swing/plaf/nimbus/OptionPaneOptionPaneMessageAreaPainter.java, * generated/javax/swing/plaf/nimbus/OptionPanePainter.java, * generated/javax/swing/plaf/nimbus/PasswordFieldPainter.java, * generated/javax/swing/plaf/nimbus/PopupMenuPainter.java, * generated/javax/swing/plaf/nimbus/PopupMenuSeparatorPainter.java, * generated/javax/swing/plaf/nimbus/ProgressBarFinishedState.java, * generated/javax/swing/plaf/nimbus/ProgressBarIndeterminateState.java, * generated/javax/swing/plaf/nimbus/ProgressBarPainter.java, * generated/javax/swing/plaf/nimbus/RadioButtonMenuItemPainter.java, * generated/javax/swing/plaf/nimbus/RadioButtonPainter.java, * generated/javax/swing/plaf/nimbus/ScrollBarPainter.java, * generated/javax/swing/plaf/nimbus/ScrollBarScrollBarButtonPainter.java, * generated/javax/swing/plaf/nimbus/ScrollBarScrollBarThumbPainter.java, * generated/javax/swing/plaf/nimbus/ScrollBarScrollBarTrackPainter.java, * generated/javax/swing/plaf/nimbus/ScrollPanePainter.java, * generated/javax/swing/plaf/nimbus/SeparatorPainter.java, * generated/javax/swing/plaf/nimbus/SliderArrowShapeState.java, * generated/javax/swing/plaf/nimbus/SliderPainter.java, * generated/javax/swing/plaf/nimbus/SliderSliderThumbArrowShapeState.java, * generated/javax/swing/plaf/nimbus/SliderSliderThumbPainter.java, * generated/javax/swing/plaf/nimbus/SliderSliderTrackArrowShapeState.java, * generated/javax/swing/plaf/nimbus/SliderSliderTrackPainter.java, * generated/javax/swing/plaf/nimbus/SpinnerPainter.java, * generated/javax/swing/plaf/nimbus/SpinnerPanelSpinnerFormattedTextFieldPainter.java, * generated/javax/swing/plaf/nimbus/SpinnerSpinnerNextButtonPainter.java, * generated/javax/swing/plaf/nimbus/SpinnerSpinnerPreviousButtonPainter.java, * generated/javax/swing/plaf/nimbus/SplitPanePainter.java, * generated/javax/swing/plaf/nimbus/SplitPaneSplitPaneDividerPainter.java, * generated/javax/swing/plaf/nimbus/SplitPaneSplitPaneDividerVerticalState.java, * generated/javax/swing/plaf/nimbus/SplitPaneVerticalState.java, * generated/javax/swing/plaf/nimbus/TabbedPanePainter.java, * generated/javax/swing/plaf/nimbus/TabbedPaneTabbedPaneTabAreaPainter.java, * generated/javax/swing/plaf/nimbus/TabbedPaneTabbedPaneTabPainter.java, * generated/javax/swing/plaf/nimbus/TableEditorPainter.java, * generated/javax/swing/plaf/nimbus/TableHeaderPainter.java, * generated/javax/swing/plaf/nimbus/TableHeaderTableHeaderRendererPainter.java, * generated/javax/swing/plaf/nimbus/TableHeaderTableHeaderRendererSortedState.java, * generated/javax/swing/plaf/nimbus/TextAreaNotInScrollPaneState.java, * generated/javax/swing/plaf/nimbus/TextAreaPainter.java, * generated/javax/swing/plaf/nimbus/TextFieldPainter.java, * generated/javax/swing/plaf/nimbus/TextPanePainter.java, * generated/javax/swing/plaf/nimbus/ToggleButtonPainter.java, * generated/javax/swing/plaf/nimbus/ToolBarButtonPainter.java, * generated/javax/swing/plaf/nimbus/ToolBarEastState.java, * generated/javax/swing/plaf/nimbus/ToolBarNorthState.java, * generated/javax/swing/plaf/nimbus/ToolBarPainter.java, * generated/javax/swing/plaf/nimbus/ToolBarSouthState.java, * generated/javax/swing/plaf/nimbus/ToolBarToggleButtonPainter.java, * generated/javax/swing/plaf/nimbus/ToolBarWestState.java, * generated/javax/swing/plaf/nimbus/ToolTipPainter.java, * generated/javax/swing/plaf/nimbus/TreeCellEditorPainter.java, * generated/javax/swing/plaf/nimbus/TreePainter.java, * generated/javax/swing/plaf/nimbus/TreeTreeCellPainter.java: Add generated Nimbus files. * patches/icedtea-stop-nimbus-generation.patch: Turn off building Nimbus tool when --disable-nimbus-generation is given. diff -r 2afddd1c229e -r 5b10caa4c7fd ChangeLog --- a/ChangeLog Thu May 21 00:16:15 2009 +0100 +++ b/ChangeLog Thu May 21 13:45:49 2009 +0100 @@ -1,3 +1,105 @@ +2009-05-21 Andrew John Hughes + + * Makefile.am: + Apply patch and use our generated source directory + when ENABLE_NIMBUS_GENERATION is not enabled. Symlink + JIBX when it is. + * acinclude.m4: + (AC_CHECK_ENABLE_NIMBUS_GENERATION): New macro. + * configure.ac: + Turn on ENABLE_NIMBUS_GENERATION and only check for + JIBX when this is enabled. + * generated/javax/swing/plaf/nimbus/ArrowButtonPainter.java, + * generated/javax/swing/plaf/nimbus/ButtonPainter.java, + * generated/javax/swing/plaf/nimbus/CheckBoxMenuItemPainter.java, + * generated/javax/swing/plaf/nimbus/CheckBoxPainter.java, + * generated/javax/swing/plaf/nimbus/ComboBoxComboBoxArrowButtonEditableState.java, + * generated/javax/swing/plaf/nimbus/ComboBoxComboBoxArrowButtonPainter.java, + * generated/javax/swing/plaf/nimbus/ComboBoxComboBoxTextFieldPainter.java, + * generated/javax/swing/plaf/nimbus/ComboBoxEditableState.java, + * generated/javax/swing/plaf/nimbus/ComboBoxPainter.java, + * generated/javax/swing/plaf/nimbus/DesktopIconPainter.java, + * generated/javax/swing/plaf/nimbus/DesktopPanePainter.java, + * generated/javax/swing/plaf/nimbus/EditorPanePainter.java, + * generated/javax/swing/plaf/nimbus/FileChooserPainter.java, + * generated/javax/swing/plaf/nimbus/FormattedTextFieldPainter.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonWindowNotFocusedState.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonWindowNotFocusedState.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowMaximizedState.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonWindowNotFocusedState.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePanePainter.java, + * generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneWindowFocusedState.java, + * generated/javax/swing/plaf/nimbus/InternalFramePainter.java, + * generated/javax/swing/plaf/nimbus/InternalFrameWindowFocusedState.java, + * generated/javax/swing/plaf/nimbus/MenuBarMenuPainter.java, + * generated/javax/swing/plaf/nimbus/MenuBarPainter.java, + * generated/javax/swing/plaf/nimbus/MenuItemPainter.java, + * generated/javax/swing/plaf/nimbus/MenuPainter.java, + * generated/javax/swing/plaf/nimbus/NimbusDefaults.java, + * generated/javax/swing/plaf/nimbus/OptionPaneOptionPaneMessageAreaOptionPaneLabelPainter.java, + * generated/javax/swing/plaf/nimbus/OptionPaneOptionPaneMessageAreaPainter.java, + * generated/javax/swing/plaf/nimbus/OptionPanePainter.java, + * generated/javax/swing/plaf/nimbus/PasswordFieldPainter.java, + * generated/javax/swing/plaf/nimbus/PopupMenuPainter.java, + * generated/javax/swing/plaf/nimbus/PopupMenuSeparatorPainter.java, + * generated/javax/swing/plaf/nimbus/ProgressBarFinishedState.java, + * generated/javax/swing/plaf/nimbus/ProgressBarIndeterminateState.java, + * generated/javax/swing/plaf/nimbus/ProgressBarPainter.java, + * generated/javax/swing/plaf/nimbus/RadioButtonMenuItemPainter.java, + * generated/javax/swing/plaf/nimbus/RadioButtonPainter.java, + * generated/javax/swing/plaf/nimbus/ScrollBarPainter.java, + * generated/javax/swing/plaf/nimbus/ScrollBarScrollBarButtonPainter.java, + * generated/javax/swing/plaf/nimbus/ScrollBarScrollBarThumbPainter.java, + * generated/javax/swing/plaf/nimbus/ScrollBarScrollBarTrackPainter.java, + * generated/javax/swing/plaf/nimbus/ScrollPanePainter.java, + * generated/javax/swing/plaf/nimbus/SeparatorPainter.java, + * generated/javax/swing/plaf/nimbus/SliderArrowShapeState.java, + * generated/javax/swing/plaf/nimbus/SliderPainter.java, + * generated/javax/swing/plaf/nimbus/SliderSliderThumbArrowShapeState.java, + * generated/javax/swing/plaf/nimbus/SliderSliderThumbPainter.java, + * generated/javax/swing/plaf/nimbus/SliderSliderTrackArrowShapeState.java, + * generated/javax/swing/plaf/nimbus/SliderSliderTrackPainter.java, + * generated/javax/swing/plaf/nimbus/SpinnerPainter.java, + * generated/javax/swing/plaf/nimbus/SpinnerPanelSpinnerFormattedTextFieldPainter.java, + * generated/javax/swing/plaf/nimbus/SpinnerSpinnerNextButtonPainter.java, + * generated/javax/swing/plaf/nimbus/SpinnerSpinnerPreviousButtonPainter.java, + * generated/javax/swing/plaf/nimbus/SplitPanePainter.java, + * generated/javax/swing/plaf/nimbus/SplitPaneSplitPaneDividerPainter.java, + * generated/javax/swing/plaf/nimbus/SplitPaneSplitPaneDividerVerticalState.java, + * generated/javax/swing/plaf/nimbus/SplitPaneVerticalState.java, + * generated/javax/swing/plaf/nimbus/TabbedPanePainter.java, + * generated/javax/swing/plaf/nimbus/TabbedPaneTabbedPaneTabAreaPainter.java, + * generated/javax/swing/plaf/nimbus/TabbedPaneTabbedPaneTabPainter.java, + * generated/javax/swing/plaf/nimbus/TableEditorPainter.java, + * generated/javax/swing/plaf/nimbus/TableHeaderPainter.java, + * generated/javax/swing/plaf/nimbus/TableHeaderTableHeaderRendererPainter.java, + * generated/javax/swing/plaf/nimbus/TableHeaderTableHeaderRendererSortedState.java, + * generated/javax/swing/plaf/nimbus/TextAreaNotInScrollPaneState.java, + * generated/javax/swing/plaf/nimbus/TextAreaPainter.java, + * generated/javax/swing/plaf/nimbus/TextFieldPainter.java, + * generated/javax/swing/plaf/nimbus/TextPanePainter.java, + * generated/javax/swing/plaf/nimbus/ToggleButtonPainter.java, + * generated/javax/swing/plaf/nimbus/ToolBarButtonPainter.java, + * generated/javax/swing/plaf/nimbus/ToolBarEastState.java, + * generated/javax/swing/plaf/nimbus/ToolBarNorthState.java, + * generated/javax/swing/plaf/nimbus/ToolBarPainter.java, + * generated/javax/swing/plaf/nimbus/ToolBarSouthState.java, + * generated/javax/swing/plaf/nimbus/ToolBarToggleButtonPainter.java, + * generated/javax/swing/plaf/nimbus/ToolBarWestState.java, + * generated/javax/swing/plaf/nimbus/ToolTipPainter.java, + * generated/javax/swing/plaf/nimbus/TreeCellEditorPainter.java, + * generated/javax/swing/plaf/nimbus/TreePainter.java, + * generated/javax/swing/plaf/nimbus/TreeTreeCellPainter.java: + Add generated Nimbus files. + * patches/icedtea-stop-nimbus-generation.patch: + Turn off building Nimbus tool when --disable-nimbus-generation + is given. + 2009-05-21 Andrew John Hughes * Makefile.am: diff -r 2afddd1c229e -r 5b10caa4c7fd Makefile.am --- a/Makefile.am Thu May 21 00:16:15 2009 +0100 +++ b/Makefile.am Thu May 21 13:45:49 2009 +0100 @@ -1495,6 +1495,11 @@ "ALT_JAR_CMD=$(ALT_JAR_CMD)" endif +if !ENABLE_NIMBUS_GENERATION +ICEDTEA_ENV += \ + "GENSRCDIR=$(abs_top_builddir)/generated" +endif + env: @echo 'unset JAVA_HOME' @echo 'export $(ICEDTEA_ENV)' @@ -2007,6 +2012,10 @@ ICEDTEA_PATCHES += patches/icedtea-systemtap.patch endif +if !ENABLE_NIMBUS_GENERATION +ICEDTEA_PATCHES += patches/icedtea-stop-nimbus-generation.patch +endif + stamps/extract.stamp: stamps/download.stamp if OPENJDK_SRC_DIR_FOUND cp -a $(OPENJDK_SRC_DIR) openjdk @@ -3039,12 +3048,14 @@ stamps/jibx.stamp: extra-lib/about.jar if ENABLE_NIMBUS +if ENABLE_NIMBUS_GENERATION mkdir $(JIBX_DEPS_DIR) ln -s $(BCEL_JAR) $(JIBX_DEPS_DIR) ln -s $(XPP3_JAR) $(JIBX_DEPS_DIR) ln -s $(JIBX_DIR)/jibx-bind.jar $(JIBX_DEPS_DIR) ln -s $(JIBX_DIR)/jibx-run.jar $(JIBX_DEPS_DIR) endif +endif mkdir -p stamps touch $@ diff -r 2afddd1c229e -r 5b10caa4c7fd acinclude.m4 --- a/acinclude.m4 Thu May 21 00:16:15 2009 +0100 +++ b/acinclude.m4 Thu May 21 13:45:49 2009 +0100 @@ -1498,3 +1498,20 @@ AC_SUBST(MOZILLA_VERSION_COLLAPSED, $xulrunner_cv_collapsed_version) ]) + +AC_DEFUN([AC_CHECK_ENABLE_NIMBUS_GENERATION], +[ + AC_MSG_CHECKING(whether to generate the Nimbus source files using JIBX) + AC_ARG_ENABLE([nimbus-generation], + [AS_HELP_STRING(--enable-nimbus-generation,generate the Nimbus source with JIBX [[default=yes]])], + [ + ENABLE_NIMBUS_GENERATION="${enableval}" + ], + [ + ENABLE_NIMBUS_GENERATION=yes + ]) + + AC_MSG_RESULT(${ENABLE_NIMBUS_GENERATION}) + AM_CONDITIONAL(ENABLE_NIMBUS_GENERATION, test x"${ENABLE_NIMBUS_GENERATION}" = "xyes") + AC_SUBST(ENABLE_NIMBUS_GENERATION) +]) diff -r 2afddd1c229e -r 5b10caa4c7fd configure.ac --- a/configure.ac Thu May 21 00:16:15 2009 +0100 +++ b/configure.ac Thu May 21 13:45:49 2009 +0100 @@ -310,6 +310,7 @@ AC_CHECK_WITH_CACAO_HOME AC_CHECK_WITH_CACAO_SRC_ZIP AC_CHECK_ENABLE_NIMBUS +AC_CHECK_ENABLE_NIMBUS_GENERATION ENABLE_OPTIMIZATIONS SET_SHARK_BUILD ENABLE_ZERO_BUILD @@ -346,9 +347,12 @@ if test "x${ENABLE_NIMBUS}" = "xyes" then -FIND_BCEL_JAR -FIND_XPP3_JAR -FIND_JIBX_DIR + if test "x${ENABLE_NIMBUS_GENERATION}" = "xyes" + then + FIND_BCEL_JAR + FIND_XPP3_JAR + FIND_JIBX_DIR + fi fi dnl pkgconfig cannot be used to find these headers and libraries. diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ArrowButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ArrowButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,118 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ArrowButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ArrowButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int FOREGROUND_DISABLED = 2; + static final int FOREGROUND_ENABLED = 3; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ArrowButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", 0.027408898f, -0.57391655f, 0.1490196f, 0); + private Color color2 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.37254906f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ArrowButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case FOREGROUND_DISABLED: paintForegroundDisabled(g); break; + case FOREGROUND_ENABLED: paintForegroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintForegroundDisabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + + } + + private void paintForegroundEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color2); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.8f), decodeY(1.2f)); + path.lineTo(decodeX(1.2f), decodeY(1.5f)); + path.lineTo(decodeX(1.8f), decodeY(1.8f)); + path.lineTo(decodeX(1.8f), decodeY(1.2f)); + path.closePath(); + return path; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,652 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DEFAULT = 1; + static final int BACKGROUND_DEFAULT_FOCUSED = 2; + static final int BACKGROUND_MOUSEOVER_DEFAULT = 3; + static final int BACKGROUND_MOUSEOVER_DEFAULT_FOCUSED = 4; + static final int BACKGROUND_PRESSED_DEFAULT = 5; + static final int BACKGROUND_PRESSED_DEFAULT_FOCUSED = 6; + static final int BACKGROUND_DISABLED = 7; + static final int BACKGROUND_ENABLED = 8; + static final int BACKGROUND_FOCUSED = 9; + static final int BACKGROUND_MOUSEOVER = 10; + static final int BACKGROUND_MOUSEOVER_FOCUSED = 11; + static final int BACKGROUND_PRESSED = 12; + static final int BACKGROUND_PRESSED_FOCUSED = 13; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.06885965f, -0.36862746f, -190); + private Color color2 = decodeColor("nimbusBase", 5.1498413E-4f, -0.34585923f, -0.007843137f, 0); + private Color color3 = decodeColor("nimbusBase", 5.1498413E-4f, -0.095173776f, -0.25882354f, 0); + private Color color4 = decodeColor("nimbusBase", 0.004681647f, -0.6197143f, 0.43137252f, 0); + private Color color5 = decodeColor("nimbusBase", 0.004681647f, -0.5766426f, 0.38039213f, 0); + private Color color6 = decodeColor("nimbusBase", 5.1498413E-4f, -0.43866998f, 0.24705881f, 0); + private Color color7 = decodeColor("nimbusBase", 5.1498413E-4f, -0.46404046f, 0.36470586f, 0); + private Color color8 = decodeColor("nimbusBase", 5.1498413E-4f, -0.47761154f, 0.44313723f, 0); + private Color color9 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color10 = decodeColor("nimbusBase", 0.0013483167f, -0.1769987f, -0.12156865f, 0); + private Color color11 = decodeColor("nimbusBase", 0.059279382f, 0.3642857f, -0.43529415f, 0); + private Color color12 = decodeColor("nimbusBase", 0.004681647f, -0.6198413f, 0.43921566f, 0); + private Color color13 = decodeColor("nimbusBase", -0.0017285943f, -0.5822163f, 0.40392154f, 0); + private Color color14 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4555341f, 0.3215686f, 0); + private Color color15 = decodeColor("nimbusBase", 5.1498413E-4f, -0.47698414f, 0.43921566f, 0); + private Color color16 = decodeColor("nimbusBase", -0.06415892f, -0.5455182f, 0.45098037f, 0); + private Color color17 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -95); + private Color color18 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color19 = decodeColor("nimbusBase", -3.528595E-5f, 0.018606722f, -0.23137257f, 0); + private Color color20 = decodeColor("nimbusBase", -4.2033195E-4f, -0.38050595f, 0.20392156f, 0); + private Color color21 = decodeColor("nimbusBase", 0.001903832f, -0.29863563f, 0.1490196f, 0); + private Color color22 = decodeColor("nimbusBase", 0.0f, 0.0f, 0.0f, 0); + private Color color23 = decodeColor("nimbusBase", 0.0018727183f, -0.14126986f, 0.15686274f, 0); + private Color color24 = decodeColor("nimbusBase", 8.9377165E-4f, -0.20852983f, 0.2588235f, 0); + private Color color25 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.06885965f, -0.36862746f, -232); + private Color color26 = decodeColor("nimbusBlueGrey", 0.0f, -0.06766917f, 0.07843137f, 0); + private Color color27 = decodeColor("nimbusBlueGrey", 0.0f, -0.06484103f, 0.027450979f, 0); + private Color color28 = decodeColor("nimbusBlueGrey", 0.0f, -0.08477524f, 0.16862744f, 0); + private Color color29 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.080091536f, 0.15686274f, 0); + private Color color30 = decodeColor("nimbusBlueGrey", 0.0f, -0.07016757f, 0.12941176f, 0); + private Color color31 = decodeColor("nimbusBlueGrey", 0.0f, -0.07052632f, 0.1372549f, 0); + private Color color32 = decodeColor("nimbusBlueGrey", 0.0f, -0.070878744f, 0.14509803f, 0); + private Color color33 = decodeColor("nimbusBlueGrey", -0.055555522f, -0.05356429f, -0.12549019f, 0); + private Color color34 = decodeColor("nimbusBlueGrey", 0.0f, -0.0147816315f, -0.3764706f, 0); + private Color color35 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10655806f, 0.24313724f, 0); + private Color color36 = decodeColor("nimbusBlueGrey", 0.0f, -0.09823123f, 0.2117647f, 0); + private Color color37 = decodeColor("nimbusBlueGrey", 0.0f, -0.0749532f, 0.24705881f, 0); + private Color color38 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color39 = decodeColor("nimbusBlueGrey", 0.0f, -0.020974077f, -0.21960783f, 0); + private Color color40 = decodeColor("nimbusBlueGrey", 0.0f, 0.11169591f, -0.53333336f, 0); + private Color color41 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10658931f, 0.25098038f, 0); + private Color color42 = decodeColor("nimbusBlueGrey", 0.0f, -0.098526314f, 0.2352941f, 0); + private Color color43 = decodeColor("nimbusBlueGrey", 0.0f, -0.07333623f, 0.20392156f, 0); + private Color color44 = new Color(245, 250, 255, 160); + private Color color45 = decodeColor("nimbusBlueGrey", 0.055555582f, 0.8894737f, -0.7176471f, 0); + private Color color46 = decodeColor("nimbusBlueGrey", 0.0f, 5.847961E-4f, -0.32156864f, 0); + private Color color47 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.05960039f, 0.10196078f, 0); + private Color color48 = decodeColor("nimbusBlueGrey", -0.008547008f, -0.04772438f, 0.06666666f, 0); + private Color color49 = decodeColor("nimbusBlueGrey", -0.0027777553f, -0.0018306673f, -0.02352941f, 0); + private Color color50 = decodeColor("nimbusBlueGrey", -0.0027777553f, -0.0212406f, 0.13333333f, 0); + private Color color51 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.030845039f, 0.23921567f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DEFAULT: paintBackgroundDefault(g); break; + case BACKGROUND_DEFAULT_FOCUSED: paintBackgroundDefaultAndFocused(g); break; + case BACKGROUND_MOUSEOVER_DEFAULT: paintBackgroundMouseOverAndDefault(g); break; + case BACKGROUND_MOUSEOVER_DEFAULT_FOCUSED: paintBackgroundMouseOverAndDefaultAndFocused(g); break; + case BACKGROUND_PRESSED_DEFAULT: paintBackgroundPressedAndDefault(g); break; + case BACKGROUND_PRESSED_DEFAULT_FOCUSED: paintBackgroundPressedAndDefaultAndFocused(g); break; + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_MOUSEOVER_FOCUSED: paintBackgroundMouseOverAndFocused(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_PRESSED_FOCUSED: paintBackgroundPressedAndFocused(g); break; + + } + } + + protected Object[] getExtendedCacheKeys(JComponent c) { + Object[] extendedCacheKeys = null; + switch(state) { + case BACKGROUND_DEFAULT: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color4, -0.6197143f, 0.43137252f, 0), + getComponentColor(c, "background", color5, -0.5766426f, 0.38039213f, 0), + getComponentColor(c, "background", color6, -0.43866998f, 0.24705881f, 0), + getComponentColor(c, "background", color7, -0.46404046f, 0.36470586f, 0), + getComponentColor(c, "background", color8, -0.47761154f, 0.44313723f, 0)}; + break; + case BACKGROUND_DEFAULT_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color4, -0.6197143f, 0.43137252f, 0), + getComponentColor(c, "background", color5, -0.5766426f, 0.38039213f, 0), + getComponentColor(c, "background", color6, -0.43866998f, 0.24705881f, 0), + getComponentColor(c, "background", color7, -0.46404046f, 0.36470586f, 0), + getComponentColor(c, "background", color8, -0.47761154f, 0.44313723f, 0)}; + break; + case BACKGROUND_MOUSEOVER_DEFAULT: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color12, -0.6198413f, 0.43921566f, 0), + getComponentColor(c, "background", color13, -0.5822163f, 0.40392154f, 0), + getComponentColor(c, "background", color14, -0.4555341f, 0.3215686f, 0), + getComponentColor(c, "background", color15, -0.47698414f, 0.43921566f, 0), + getComponentColor(c, "background", color16, -0.5455182f, 0.45098037f, 0)}; + break; + case BACKGROUND_MOUSEOVER_DEFAULT_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color12, -0.6198413f, 0.43921566f, 0), + getComponentColor(c, "background", color13, -0.5822163f, 0.40392154f, 0), + getComponentColor(c, "background", color14, -0.4555341f, 0.3215686f, 0), + getComponentColor(c, "background", color15, -0.47698414f, 0.43921566f, 0), + getComponentColor(c, "background", color16, -0.5455182f, 0.45098037f, 0)}; + break; + case BACKGROUND_PRESSED_DEFAULT: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color20, -0.38050595f, 0.20392156f, 0), + getComponentColor(c, "background", color21, -0.29863563f, 0.1490196f, 0), + getComponentColor(c, "background", color22, 0.0f, 0.0f, 0), + getComponentColor(c, "background", color23, -0.14126986f, 0.15686274f, 0), + getComponentColor(c, "background", color24, -0.20852983f, 0.2588235f, 0)}; + break; + case BACKGROUND_PRESSED_DEFAULT_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color20, -0.38050595f, 0.20392156f, 0), + getComponentColor(c, "background", color21, -0.29863563f, 0.1490196f, 0), + getComponentColor(c, "background", color22, 0.0f, 0.0f, 0), + getComponentColor(c, "background", color23, -0.14126986f, 0.15686274f, 0), + getComponentColor(c, "background", color24, -0.20852983f, 0.2588235f, 0)}; + break; + case BACKGROUND_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color35, -0.10655806f, 0.24313724f, 0), + getComponentColor(c, "background", color36, -0.09823123f, 0.2117647f, 0), + getComponentColor(c, "background", color30, -0.07016757f, 0.12941176f, 0), + getComponentColor(c, "background", color37, -0.0749532f, 0.24705881f, 0), + getComponentColor(c, "background", color38, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color35, -0.10655806f, 0.24313724f, 0), + getComponentColor(c, "background", color36, -0.09823123f, 0.2117647f, 0), + getComponentColor(c, "background", color30, -0.07016757f, 0.12941176f, 0), + getComponentColor(c, "background", color37, -0.0749532f, 0.24705881f, 0), + getComponentColor(c, "background", color38, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_MOUSEOVER: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color41, -0.10658931f, 0.25098038f, 0), + getComponentColor(c, "background", color42, -0.098526314f, 0.2352941f, 0), + getComponentColor(c, "background", color43, -0.07333623f, 0.20392156f, 0), + getComponentColor(c, "background", color38, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_MOUSEOVER_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color41, -0.10658931f, 0.25098038f, 0), + getComponentColor(c, "background", color42, -0.098526314f, 0.2352941f, 0), + getComponentColor(c, "background", color43, -0.07333623f, 0.20392156f, 0), + getComponentColor(c, "background", color38, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_PRESSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color47, -0.05960039f, 0.10196078f, 0), + getComponentColor(c, "background", color48, -0.04772438f, 0.06666666f, 0), + getComponentColor(c, "background", color49, -0.0018306673f, -0.02352941f, 0), + getComponentColor(c, "background", color50, -0.0212406f, 0.13333333f, 0), + getComponentColor(c, "background", color51, -0.030845039f, 0.23921567f, 0)}; + break; + case BACKGROUND_PRESSED_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color47, -0.05960039f, 0.10196078f, 0), + getComponentColor(c, "background", color48, -0.04772438f, 0.06666666f, 0), + getComponentColor(c, "background", color49, -0.0018306673f, -0.02352941f, 0), + getComponentColor(c, "background", color50, -0.0212406f, 0.13333333f, 0), + getComponentColor(c, "background", color51, -0.030845039f, 0.23921567f, 0)}; + break; + } + return extendedCacheKeys; + } + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDefault(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundDefaultAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndDefault(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndDefaultAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndDefault(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color17); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndDefaultAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundDisabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color25); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressed(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color44); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient11(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient11(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(0.2857143f), //x + decodeY(0.42857143f), //y + decodeX(2.7142859f) - decodeX(0.2857143f), //width + decodeY(2.857143f) - decodeY(0.42857143f), //height + 12.0f, 12.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(0.2857143f), //x + decodeY(0.2857143f), //y + decodeX(2.7142859f) - decodeX(0.2857143f), //width + decodeY(2.7142859f) - decodeY(0.2857143f), //height + 9.0f, 9.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(0.42857143f), //x + decodeY(0.42857143f), //y + decodeX(2.5714285f) - decodeX(0.42857143f), //width + decodeY(2.5714285f) - decodeY(0.42857143f), //height + 7.0f, 7.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect4() { + roundRect.setRoundRect(decodeX(0.08571429f), //x + decodeY(0.08571429f), //y + decodeX(2.914286f) - decodeX(0.08571429f), //width + decodeY(2.914286f) - decodeY(0.08571429f), //height + 11.0f, 11.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect5() { + roundRect.setRoundRect(decodeX(0.2857143f), //x + decodeY(0.42857143f), //y + decodeX(2.7142859f) - decodeX(0.2857143f), //width + decodeY(2.857143f) - decodeY(0.42857143f), //height + 9.0f, 9.0f); //rounding + return roundRect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.05f,0.5f,0.95f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.024f,0.06f,0.276f,0.6f,0.65f,0.7f,0.856f,0.96f,0.98399997f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[3],0.5f), + (Color)componentColors[3], + decodeColor((Color)componentColors[3],(Color)componentColors[4],0.5f), + (Color)componentColors[4]}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.05f,0.5f,0.95f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.05f,0.5f,0.95f }, + new Color[] { color18, + decodeColor(color18,color19,0.5f), + color19}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color26, + decodeColor(color26,color27,0.5f), + color27}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.03f,0.06f,0.33f,0.6f,0.65f,0.7f,0.825f,0.95f,0.975f,1.0f }, + new Color[] { color28, + decodeColor(color28,color29,0.5f), + color29, + decodeColor(color29,color30,0.5f), + color30, + decodeColor(color30,color30,0.5f), + color30, + decodeColor(color30,color31,0.5f), + color31, + decodeColor(color31,color32,0.5f), + color32}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color33, + decodeColor(color33,color34,0.5f), + color34}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.03f,0.06f,0.33f,0.6f,0.65f,0.7f,0.825f,0.95f,0.975f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[3],0.5f), + (Color)componentColors[3], + decodeColor((Color)componentColors[3],(Color)componentColors[4],0.5f), + (Color)componentColors[4]}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color39, + decodeColor(color39,color40,0.5f), + color40}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.024f,0.06f,0.276f,0.6f,0.65f,0.7f,0.856f,0.96f,0.98f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[3],0.5f), + (Color)componentColors[3], + decodeColor((Color)componentColors[3],(Color)componentColors[3],0.5f), + (Color)componentColors[3]}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.05f,0.5f,0.95f }, + new Color[] { color45, + decodeColor(color45,color46,0.5f), + color46}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/CheckBoxMenuItemPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/CheckBoxMenuItemPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,162 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class CheckBoxMenuItemPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of CheckBoxMenuItemPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_MOUSEOVER = 3; + static final int BACKGROUND_SELECTED_MOUSEOVER = 4; + static final int CHECKICON_DISABLED_SELECTED = 5; + static final int CHECKICON_ENABLED_SELECTED = 6; + static final int CHECKICON_SELECTED_MOUSEOVER = 7; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of CheckBoxMenuItemPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusSelection", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0f, -0.08983666f, -0.17647058f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.096827686f, -0.45882353f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public CheckBoxMenuItemPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_SELECTED_MOUSEOVER: paintBackgroundSelectedAndMouseOver(g); break; + case CHECKICON_DISABLED_SELECTED: paintcheckIconDisabledAndSelected(g); break; + case CHECKICON_ENABLED_SELECTED: paintcheckIconEnabledAndSelected(g); break; + case CHECKICON_SELECTED_MOUSEOVER: paintcheckIconSelectedAndMouseOver(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundMouseOver(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundSelectedAndMouseOver(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintcheckIconDisabledAndSelected(Graphics2D g) { + path = decodePath1(); + g.setPaint(color2); + g.fill(path); + + } + + private void paintcheckIconEnabledAndSelected(Graphics2D g) { + path = decodePath1(); + g.setPaint(color3); + g.fill(path); + + } + + private void paintcheckIconSelectedAndMouseOver(Graphics2D g) { + path = decodePath1(); + g.setPaint(color4); + g.fill(path); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(1.5f)); + path.lineTo(decodeX(0.4292683f), decodeY(1.5f)); + path.lineTo(decodeX(0.7121951f), decodeY(2.4780488f)); + path.lineTo(decodeX(2.5926828f), decodeY(0.0f)); + path.lineTo(decodeX(3.0f), decodeY(0.0f)); + path.lineTo(decodeX(3.0f), decodeY(0.2f)); + path.lineTo(decodeX(2.8317075f), decodeY(0.39512196f)); + path.lineTo(decodeX(0.8f), decodeY(3.0f)); + path.lineTo(decodeX(0.5731707f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(1.5f)); + path.closePath(); + return path; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/CheckBoxPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/CheckBoxPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,635 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class CheckBoxPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of CheckBoxPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int ICON_DISABLED = 3; + static final int ICON_ENABLED = 4; + static final int ICON_FOCUSED = 5; + static final int ICON_MOUSEOVER = 6; + static final int ICON_MOUSEOVER_FOCUSED = 7; + static final int ICON_PRESSED = 8; + static final int ICON_PRESSED_FOCUSED = 9; + static final int ICON_SELECTED = 10; + static final int ICON_SELECTED_FOCUSED = 11; + static final int ICON_PRESSED_SELECTED = 12; + static final int ICON_PRESSED_SELECTED_FOCUSED = 13; + static final int ICON_MOUSEOVER_SELECTED = 14; + static final int ICON_MOUSEOVER_SELECTED_FOCUSED = 15; + static final int ICON_DISABLED_SELECTED = 16; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of CheckBoxPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.0f, -0.06766917f, 0.07843137f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0f, -0.06484103f, 0.027450979f, 0); + private Color color3 = decodeColor("nimbusBase", 0.032459438f, -0.60996324f, 0.36470586f, 0); + private Color color4 = decodeColor("nimbusBase", 0.02551502f, -0.5996783f, 0.3215686f, 0); + private Color color5 = decodeColor("nimbusBase", 0.032459438f, -0.59624064f, 0.34509802f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, 0.0f, 0.0f, -89); + private Color color7 = decodeColor("nimbusBlueGrey", 0.0f, -0.05356429f, -0.12549019f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0f, -0.015789472f, -0.37254903f, 0); + private Color color9 = decodeColor("nimbusBase", 0.08801502f, -0.63174605f, 0.43921566f, 0); + private Color color10 = decodeColor("nimbusBase", 0.032459438f, -0.5953556f, 0.32549018f, 0); + private Color color11 = decodeColor("nimbusBase", 0.032459438f, -0.59942394f, 0.4235294f, 0); + private Color color12 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color13 = decodeColor("nimbusBlueGrey", 0.0f, -0.020974077f, -0.21960783f, 0); + private Color color14 = decodeColor("nimbusBlueGrey", 0.01010108f, 0.08947369f, -0.5294118f, 0); + private Color color15 = decodeColor("nimbusBase", 0.08801502f, -0.6317773f, 0.4470588f, 0); + private Color color16 = decodeColor("nimbusBase", 0.032459438f, -0.5985242f, 0.39999998f, 0); + private Color color17 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, 0); + private Color color18 = decodeColor("nimbusBlueGrey", 0.055555582f, 0.8894737f, -0.7176471f, 0); + private Color color19 = decodeColor("nimbusBlueGrey", 0.0f, 0.0016232133f, -0.3254902f, 0); + private Color color20 = decodeColor("nimbusBase", 0.027408898f, -0.5847884f, 0.2980392f, 0); + private Color color21 = decodeColor("nimbusBase", 0.029681683f, -0.52701867f, 0.17254901f, 0); + private Color color22 = decodeColor("nimbusBase", 0.029681683f, -0.5376751f, 0.25098038f, 0); + private Color color23 = decodeColor("nimbusBase", 5.1498413E-4f, -0.34585923f, -0.007843137f, 0); + private Color color24 = decodeColor("nimbusBase", 5.1498413E-4f, -0.10238093f, -0.25490198f, 0); + private Color color25 = decodeColor("nimbusBase", 0.004681647f, -0.6197143f, 0.43137252f, 0); + private Color color26 = decodeColor("nimbusBase", 5.1498413E-4f, -0.44153953f, 0.2588235f, 0); + private Color color27 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4602757f, 0.34509802f, 0); + private Color color28 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color29 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color30 = decodeColor("nimbusBase", -3.528595E-5f, 0.026785731f, -0.23529413f, 0); + private Color color31 = decodeColor("nimbusBase", -4.2033195E-4f, -0.38050595f, 0.20392156f, 0); + private Color color32 = decodeColor("nimbusBase", -0.0021489263f, -0.2891234f, 0.14117646f, 0); + private Color color33 = decodeColor("nimbusBase", -0.006362498f, -0.016311288f, -0.02352941f, 0); + private Color color34 = decodeColor("nimbusBase", 0.0f, -0.17930403f, 0.21568626f, 0); + private Color color35 = decodeColor("nimbusBase", 0.0013483167f, -0.1769987f, -0.12156865f, 0); + private Color color36 = decodeColor("nimbusBase", 0.05468172f, 0.3642857f, -0.43137258f, 0); + private Color color37 = decodeColor("nimbusBase", 0.004681647f, -0.6198413f, 0.43921566f, 0); + private Color color38 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4555341f, 0.3215686f, 0); + private Color color39 = decodeColor("nimbusBase", 5.1498413E-4f, -0.47377098f, 0.41960782f, 0); + private Color color40 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.03771078f, 0.062745094f, 0); + private Color color41 = decodeColor("nimbusBlueGrey", -0.02222222f, -0.032806106f, 0.011764705f, 0); + private Color color42 = decodeColor("nimbusBase", 0.021348298f, -0.59223604f, 0.35294116f, 0); + private Color color43 = decodeColor("nimbusBase", 0.021348298f, -0.56722116f, 0.3098039f, 0); + private Color color44 = decodeColor("nimbusBase", 0.021348298f, -0.56875f, 0.32941175f, 0); + private Color color45 = decodeColor("nimbusBase", 0.027408898f, -0.5735674f, 0.14509803f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public CheckBoxPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case ICON_DISABLED: painticonDisabled(g); break; + case ICON_ENABLED: painticonEnabled(g); break; + case ICON_FOCUSED: painticonFocused(g); break; + case ICON_MOUSEOVER: painticonMouseOver(g); break; + case ICON_MOUSEOVER_FOCUSED: painticonMouseOverAndFocused(g); break; + case ICON_PRESSED: painticonPressed(g); break; + case ICON_PRESSED_FOCUSED: painticonPressedAndFocused(g); break; + case ICON_SELECTED: painticonSelected(g); break; + case ICON_SELECTED_FOCUSED: painticonSelectedAndFocused(g); break; + case ICON_PRESSED_SELECTED: painticonPressedAndSelected(g); break; + case ICON_PRESSED_SELECTED_FOCUSED: painticonPressedAndSelectedAndFocused(g); break; + case ICON_MOUSEOVER_SELECTED: painticonMouseOverAndSelected(g); break; + case ICON_MOUSEOVER_SELECTED_FOCUSED: painticonMouseOverAndSelectedAndFocused(g); break; + case ICON_DISABLED_SELECTED: painticonDisabledAndSelected(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void painticonDisabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void painticonEnabled(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color6); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + private void painticonFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color12); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + private void painticonMouseOver(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color6); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + + } + + private void painticonMouseOverAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color12); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + + } + + private void painticonPressed(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color6); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + + } + + private void painticonPressedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color12); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + + } + + private void painticonSelected(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color6); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color28); + g.fill(path); + + } + + private void painticonSelectedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color12); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color28); + g.fill(path); + + } + + private void painticonPressedAndSelected(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color29); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient11(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient12(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color28); + g.fill(path); + + } + + private void painticonPressedAndSelectedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color12); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient11(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient12(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color28); + g.fill(path); + + } + + private void painticonMouseOverAndSelected(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color6); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient13(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient14(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color28); + g.fill(path); + + } + + private void painticonMouseOverAndSelectedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color12); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient13(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient14(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color28); + g.fill(path); + + } + + private void painticonDisabledAndSelected(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient15(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient16(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color45); + g.fill(path); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f), //height + 3.7058823f, 3.7058823f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.4f) - decodeY(0.6f), //height + 3.764706f, 3.764706f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(0.4f), //x + decodeY(1.75f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.8f) - decodeY(1.75f), //height + 5.1764708f, 5.1764708f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect4() { + roundRect.setRoundRect(decodeX(0.120000005f), //x + decodeY(0.120000005f), //y + decodeX(2.8799999f) - decodeX(0.120000005f), //width + decodeY(2.8799999f) - decodeY(0.120000005f), //height + 8.0f, 8.0f); //rounding + return roundRect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.0036764f), decodeY(1.382353f)); + path.lineTo(decodeX(1.2536764f), decodeY(1.382353f)); + path.lineTo(decodeX(1.430147f), decodeY(1.757353f)); + path.lineTo(decodeX(1.8235294f), decodeY(0.62352943f)); + path.lineTo(decodeX(2.2f), decodeY(0.61764705f)); + path.lineTo(decodeX(1.492647f), decodeY(2.0058823f)); + path.lineTo(decodeX(1.382353f), decodeY(2.0058823f)); + path.lineTo(decodeX(1.0036764f), decodeY(1.382353f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25210086f * w) + x, (0.9957983f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.997549f * h) + y, + new float[] { 0.0f,0.32228917f,0.64457834f,0.82228917f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25210086f * w) + x, (0.9957983f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.997549f * h) + y, + new float[] { 0.0f,0.32228917f,0.64457834f,0.82228917f,1.0f }, + new Color[] { color9, + decodeColor(color9,color10,0.5f), + color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25210086f * w) + x, (0.9957983f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.997549f * h) + y, + new float[] { 0.0f,0.32228917f,0.64457834f,0.82228917f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16, + decodeColor(color16,color17,0.5f), + color17}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25210086f * w) + x, (0.9957983f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color18, + decodeColor(color18,color19,0.5f), + color19}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.997549f * h) + y, + new float[] { 0.0f,0.32228917f,0.64457834f,0.82228917f,1.0f }, + new Color[] { color20, + decodeColor(color20,color21,0.5f), + color21, + decodeColor(color21,color22,0.5f), + color22}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25210086f * w) + x, (0.9957983f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color23, + decodeColor(color23,color24,0.5f), + color24}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.997549f * h) + y, + new float[] { 0.0f,0.32228917f,0.64457834f,0.82228917f,1.0f }, + new Color[] { color25, + decodeColor(color25,color26,0.5f), + color26, + decodeColor(color26,color27,0.5f), + color27}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25210086f * w) + x, (0.9957983f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color28, + decodeColor(color28,color30,0.5f), + color30}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.997549f * h) + y, + new float[] { 0.0f,0.05775076f,0.11550152f,0.38003993f,0.64457834f,0.82228917f,1.0f }, + new Color[] { color31, + decodeColor(color31,color32,0.5f), + color32, + decodeColor(color32,color33,0.5f), + color33, + decodeColor(color33,color34,0.5f), + color34}); + } + + private Paint decodeGradient13(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25210086f * w) + x, (0.9957983f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color35, + decodeColor(color35,color36,0.5f), + color36}); + } + + private Paint decodeGradient14(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.997549f * h) + y, + new float[] { 0.0f,0.32228917f,0.64457834f,0.82228917f,1.0f }, + new Color[] { color37, + decodeColor(color37,color38,0.5f), + color38, + decodeColor(color38,color39,0.5f), + color39}); + } + + private Paint decodeGradient15(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25210086f * w) + x, (0.9957983f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color40, + decodeColor(color40,color41,0.5f), + color41}); + } + + private Paint decodeGradient16(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.997549f * h) + y, + new float[] { 0.0f,0.32228917f,0.64457834f,0.82228917f,1.0f }, + new Color[] { color42, + decodeColor(color42,color43,0.5f), + color43, + decodeColor(color43,color44,0.5f), + color44}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ComboBoxComboBoxArrowButtonEditableState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ComboBoxComboBoxArrowButtonEditableState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,42 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class ComboBoxComboBoxArrowButtonEditableState extends State { + ComboBoxComboBoxArrowButtonEditableState() { + super("Editable"); + } + + @Override protected boolean isInState(JComponent c) { + + Component parent = c.getParent(); + return parent instanceof JComboBox && ((JComboBox)parent).isEditable(); + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ComboBoxComboBoxArrowButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ComboBoxComboBoxArrowButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,476 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ComboBoxComboBoxArrowButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ComboBoxComboBoxArrowButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_ENABLED_MOUSEOVER = 3; + static final int BACKGROUND_ENABLED_PRESSED = 4; + static final int BACKGROUND_DISABLED_EDITABLE = 5; + static final int BACKGROUND_ENABLED_EDITABLE = 6; + static final int BACKGROUND_MOUSEOVER_EDITABLE = 7; + static final int BACKGROUND_PRESSED_EDITABLE = 8; + static final int BACKGROUND_SELECTED_EDITABLE = 9; + static final int FOREGROUND_ENABLED = 10; + static final int FOREGROUND_MOUSEOVER = 11; + static final int FOREGROUND_DISABLED = 12; + static final int FOREGROUND_PRESSED = 13; + static final int FOREGROUND_SELECTED = 14; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ComboBoxComboBoxArrowButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, -0.74509805f, -247); + private Color color2 = decodeColor("nimbusBase", 0.021348298f, -0.56289876f, 0.2588235f, 0); + private Color color3 = decodeColor("nimbusBase", 0.010237217f, -0.55799407f, 0.20784312f, 0); + private Color color4 = new Color(255, 200, 0, 255); + private Color color5 = decodeColor("nimbusBase", 0.021348298f, -0.59223604f, 0.35294116f, 0); + private Color color6 = decodeColor("nimbusBase", 0.02391243f, -0.5774183f, 0.32549018f, 0); + private Color color7 = decodeColor("nimbusBase", 0.021348298f, -0.56722116f, 0.3098039f, 0); + private Color color8 = decodeColor("nimbusBase", 0.021348298f, -0.567841f, 0.31764704f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, -0.74509805f, -191); + private Color color10 = decodeColor("nimbusBase", 5.1498413E-4f, -0.34585923f, -0.007843137f, 0); + private Color color11 = decodeColor("nimbusBase", 5.1498413E-4f, -0.095173776f, -0.25882354f, 0); + private Color color12 = decodeColor("nimbusBase", 0.004681647f, -0.6197143f, 0.43137252f, 0); + private Color color13 = decodeColor("nimbusBase", 0.0023007393f, -0.46825016f, 0.27058822f, 0); + private Color color14 = decodeColor("nimbusBase", 5.1498413E-4f, -0.43866998f, 0.24705881f, 0); + private Color color15 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4625541f, 0.35686272f, 0); + private Color color16 = decodeColor("nimbusBase", 0.0013483167f, -0.1769987f, -0.12156865f, 0); + private Color color17 = decodeColor("nimbusBase", 0.059279382f, 0.3642857f, -0.43529415f, 0); + private Color color18 = decodeColor("nimbusBase", 0.004681647f, -0.6198413f, 0.43921566f, 0); + private Color color19 = decodeColor("nimbusBase", 0.0023007393f, -0.48084703f, 0.33725488f, 0); + private Color color20 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4555341f, 0.3215686f, 0); + private Color color21 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4757143f, 0.43137252f, 0); + private Color color22 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color23 = decodeColor("nimbusBase", -3.528595E-5f, 0.018606722f, -0.23137257f, 0); + private Color color24 = decodeColor("nimbusBase", -4.2033195E-4f, -0.38050595f, 0.20392156f, 0); + private Color color25 = decodeColor("nimbusBase", 7.13408E-4f, -0.064285696f, 0.027450979f, 0); + private Color color26 = decodeColor("nimbusBase", 0.0f, -0.00895375f, 0.007843137f, 0); + private Color color27 = decodeColor("nimbusBase", 8.9377165E-4f, -0.13853917f, 0.14509803f, 0); + private Color color28 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.37254906f, 0); + private Color color29 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.5254902f, 0); + private Color color30 = decodeColor("nimbusBase", 0.027408898f, -0.57391655f, 0.1490196f, 0); + private Color color31 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ComboBoxComboBoxArrowButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED_EDITABLE: paintBackgroundDisabledAndEditable(g); break; + case BACKGROUND_ENABLED_EDITABLE: paintBackgroundEnabledAndEditable(g); break; + case BACKGROUND_MOUSEOVER_EDITABLE: paintBackgroundMouseOverAndEditable(g); break; + case BACKGROUND_PRESSED_EDITABLE: paintBackgroundPressedAndEditable(g); break; + case BACKGROUND_SELECTED_EDITABLE: paintBackgroundSelectedAndEditable(g); break; + case FOREGROUND_ENABLED: paintForegroundEnabled(g); break; + case FOREGROUND_MOUSEOVER: paintForegroundMouseOver(g); break; + case FOREGROUND_DISABLED: paintForegroundDisabled(g); break; + case FOREGROUND_PRESSED: paintForegroundPressed(g); break; + case FOREGROUND_SELECTED: paintForegroundSelected(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabledAndEditable(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(color4); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + + } + + private void paintBackgroundEnabledAndEditable(Graphics2D g) { + path = decodePath1(); + g.setPaint(color9); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(color4); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + + } + + private void paintBackgroundMouseOverAndEditable(Graphics2D g) { + path = decodePath1(); + g.setPaint(color9); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(color4); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + + } + + private void paintBackgroundPressedAndEditable(Graphics2D g) { + path = decodePath1(); + g.setPaint(color9); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(color4); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintBackgroundSelectedAndEditable(Graphics2D g) { + path = decodePath1(); + g.setPaint(color9); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(color4); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintForegroundEnabled(Graphics2D g) { + path = decodePath5(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + + } + + private void paintForegroundMouseOver(Graphics2D g) { + path = decodePath6(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + + } + + private void paintForegroundDisabled(Graphics2D g) { + path = decodePath7(); + g.setPaint(color30); + g.fill(path); + + } + + private void paintForegroundPressed(Graphics2D g) { + path = decodePath8(); + g.setPaint(color31); + g.fill(path); + + } + + private void paintForegroundSelected(Graphics2D g) { + path = decodePath7(); + g.setPaint(color31); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(2.0f)); + path.lineTo(decodeX(2.75f), decodeY(2.0f)); + path.lineTo(decodeX(2.75f), decodeY(2.25f)); + path.curveTo(decodeAnchorX(2.75f, 0.0f), decodeAnchorY(2.25f, 4.0f), decodeAnchorX(2.125f, 3.0f), decodeAnchorY(2.875f, 0.0f), decodeX(2.125f), decodeY(2.875f)); + path.lineTo(decodeX(0.0f), decodeY(2.875f)); + path.lineTo(decodeX(0.0f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.25f)); + path.lineTo(decodeX(2.125f), decodeY(0.25f)); + path.curveTo(decodeAnchorX(2.125f, 3.0f), decodeAnchorY(0.25f, 0.0f), decodeAnchorX(2.75f, 0.0f), decodeAnchorY(0.875f, -3.0f), decodeX(2.75f), decodeY(0.875f)); + path.lineTo(decodeX(2.75f), decodeY(2.125f)); + path.curveTo(decodeAnchorX(2.75f, 0.0f), decodeAnchorY(2.125f, 3.0f), decodeAnchorX(2.125f, 3.0f), decodeAnchorY(2.75f, 0.0f), decodeX(2.125f), decodeY(2.75f)); + path.lineTo(decodeX(0.0f), decodeY(2.75f)); + path.lineTo(decodeX(0.0f), decodeY(0.25f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.85294116f), decodeY(2.639706f)); + path.lineTo(decodeX(0.85294116f), decodeY(2.639706f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(0.375f)); + path.lineTo(decodeX(2.0f), decodeY(0.375f)); + path.curveTo(decodeAnchorX(2.0f, 4.0f), decodeAnchorY(0.375f, 0.0f), decodeAnchorX(2.625f, 0.0f), decodeAnchorY(1.0f, -4.0f), decodeX(2.625f), decodeY(1.0f)); + path.lineTo(decodeX(2.625f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(2.625f, 0.0f), decodeAnchorY(2.0f, 4.0f), decodeAnchorX(2.0f, 4.0f), decodeAnchorY(2.625f, 0.0f), decodeX(2.0f), decodeY(2.625f)); + path.lineTo(decodeX(1.0f), decodeY(2.625f)); + path.lineTo(decodeX(1.0f), decodeY(0.375f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(0.9995915f), decodeY(1.3616071f)); + path.lineTo(decodeX(2.0f), decodeY(0.8333333f)); + path.lineTo(decodeX(2.0f), decodeY(1.8571429f)); + path.lineTo(decodeX(0.9995915f), decodeY(1.3616071f)); + path.closePath(); + return path; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(1.00625f), decodeY(1.3526785f)); + path.lineTo(decodeX(2.0f), decodeY(0.8333333f)); + path.lineTo(decodeX(2.0f), decodeY(1.8571429f)); + path.lineTo(decodeX(1.00625f), decodeY(1.3526785f)); + path.closePath(); + return path; + } + + private Path2D decodePath7() { + path.reset(); + path.moveTo(decodeX(1.0117648f), decodeY(1.3616071f)); + path.lineTo(decodeX(2.0f), decodeY(0.8333333f)); + path.lineTo(decodeX(2.0f), decodeY(1.8571429f)); + path.lineTo(decodeX(1.0117648f), decodeY(1.3616071f)); + path.closePath(); + return path; + } + + private Path2D decodePath8() { + path.reset(); + path.moveTo(decodeX(1.0242647f), decodeY(1.3526785f)); + path.lineTo(decodeX(2.0f), decodeY(0.8333333f)); + path.lineTo(decodeX(2.0f), decodeY(1.8571429f)); + path.lineTo(decodeX(1.0242647f), decodeY(1.3526785f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.171875f,0.34375f,0.4815341f,0.6193182f,0.8096591f,1.0f }, + new Color[] { color5, + decodeColor(color5,color6,0.5f), + color6, + decodeColor(color6,color7,0.5f), + color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.12299465f,0.44652405f,0.5441176f,0.64171124f,0.8208556f,1.0f }, + new Color[] { color12, + decodeColor(color12,color13,0.5f), + color13, + decodeColor(color13,color14,0.5f), + color14, + decodeColor(color14,color15,0.5f), + color15}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color16, + decodeColor(color16,color17,0.5f), + color17}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.12299465f,0.44652405f,0.5441176f,0.64171124f,0.81283426f,0.98395723f }, + new Color[] { color18, + decodeColor(color18,color19,0.5f), + color19, + decodeColor(color19,color20,0.5f), + color20, + decodeColor(color20,color21,0.5f), + color21}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color22, + decodeColor(color22,color23,0.5f), + color23}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.12299465f,0.44652405f,0.5441176f,0.64171124f,0.8208556f,1.0f }, + new Color[] { color24, + decodeColor(color24,color25,0.5f), + color25, + decodeColor(color25,color26,0.5f), + color26, + decodeColor(color26,color27,0.5f), + color27}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((1.0f * w) + x, (0.5f * h) + y, (0.0f * w) + x, (0.5f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color28, + decodeColor(color28,color29,0.5f), + color29}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ComboBoxComboBoxTextFieldPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ComboBoxComboBoxTextFieldPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,254 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ComboBoxComboBoxTextFieldPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ComboBoxComboBoxTextFieldPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_SELECTED = 3; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ComboBoxComboBoxTextFieldPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, -0.74509805f, -237); + private Color color2 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.07187897f, 0.06666666f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07703349f, 0.0745098f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07968931f, 0.14509803f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07856284f, 0.11372548f, 0); + private Color color6 = decodeColor("nimbusBase", 0.040395975f, -0.60315615f, 0.29411763f, 0); + private Color color7 = decodeColor("nimbusBase", 0.016586483f, -0.6051466f, 0.3490196f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.0965403f, -0.18431371f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.1048766f, -0.05098039f, 0); + private Color color10 = decodeColor("nimbusLightBackground", 0.6666667f, 0.004901961f, -0.19999999f, 0); + private Color color11 = decodeColor("nimbusLightBackground", 0.0f, 0.0f, 0.0f, 0); + private Color color12 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.105344966f, 0.011764705f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ComboBoxComboBoxTextFieldPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color6); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color7); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color12); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color11); + g.fill(rect); + + } + + private void paintBackgroundSelected(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color12); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color11); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(2.3333333f), //y + decodeX(3.0f) - decodeX(0.6666667f), //width + decodeY(2.6666667f) - decodeY(2.3333333f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(0.4f), //y + decodeX(3.0f) - decodeX(0.6666667f), //width + decodeY(1.0f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.6f), //y + decodeX(3.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(1.0f), //y + decodeX(3.0f) - decodeX(0.6666667f), //width + decodeY(2.3333333f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect5() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(3.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (1.0f * h) + y, (0.5f * w) + x, (0.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.49573863f,0.99147725f }, + new Color[] { color8, + decodeColor(color8,color9,0.5f), + color9}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ComboBoxEditableState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ComboBoxEditableState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,41 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class ComboBoxEditableState extends State { + ComboBoxEditableState() { + super("Editable"); + } + + @Override protected boolean isInState(JComponent c) { + + return ((JComboBox)c).isEditable(); + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ComboBoxPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ComboBoxPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,733 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ComboBoxPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ComboBoxPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_DISABLED_PRESSED = 2; + static final int BACKGROUND_ENABLED = 3; + static final int BACKGROUND_FOCUSED = 4; + static final int BACKGROUND_MOUSEOVER_FOCUSED = 5; + static final int BACKGROUND_MOUSEOVER = 6; + static final int BACKGROUND_PRESSED_FOCUSED = 7; + static final int BACKGROUND_PRESSED = 8; + static final int BACKGROUND_ENABLED_SELECTED = 9; + static final int BACKGROUND_DISABLED_EDITABLE = 10; + static final int BACKGROUND_ENABLED_EDITABLE = 11; + static final int BACKGROUND_FOCUSED_EDITABLE = 12; + static final int BACKGROUND_MOUSEOVER_EDITABLE = 13; + static final int BACKGROUND_PRESSED_EDITABLE = 14; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ComboBoxPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, -0.74509805f, -247); + private Color color2 = decodeColor("nimbusBase", 0.032459438f, -0.5928571f, 0.2745098f, 0); + private Color color3 = decodeColor("nimbusBase", 0.032459438f, -0.590029f, 0.2235294f, 0); + private Color color4 = decodeColor("nimbusBase", 0.032459438f, -0.60996324f, 0.36470586f, 0); + private Color color5 = decodeColor("nimbusBase", 0.040395975f, -0.60474086f, 0.33725488f, 0); + private Color color6 = decodeColor("nimbusBase", 0.032459438f, -0.5953556f, 0.32549018f, 0); + private Color color7 = decodeColor("nimbusBase", 0.032459438f, -0.5957143f, 0.3333333f, 0); + private Color color8 = decodeColor("nimbusBase", 0.021348298f, -0.56289876f, 0.2588235f, 0); + private Color color9 = decodeColor("nimbusBase", 0.010237217f, -0.55799407f, 0.20784312f, 0); + private Color color10 = decodeColor("nimbusBase", 0.021348298f, -0.59223604f, 0.35294116f, 0); + private Color color11 = decodeColor("nimbusBase", 0.02391243f, -0.5774183f, 0.32549018f, 0); + private Color color12 = decodeColor("nimbusBase", 0.021348298f, -0.56722116f, 0.3098039f, 0); + private Color color13 = decodeColor("nimbusBase", 0.021348298f, -0.567841f, 0.31764704f, 0); + private Color color14 = decodeColor("nimbusBlueGrey", 0.0f, 0.0f, -0.22f, -176); + private Color color15 = decodeColor("nimbusBase", 0.032459438f, -0.5787523f, 0.07058823f, 0); + private Color color16 = decodeColor("nimbusBase", 0.032459438f, -0.5399696f, -0.18039218f, 0); + private Color color17 = decodeColor("nimbusBase", 0.08801502f, -0.63174605f, 0.43921566f, 0); + private Color color18 = decodeColor("nimbusBase", 0.040395975f, -0.6054113f, 0.35686272f, 0); + private Color color19 = decodeColor("nimbusBase", 0.032459438f, -0.5998577f, 0.4352941f, 0); + private Color color20 = decodeColor("nimbusBase", 5.1498413E-4f, -0.34585923f, -0.007843137f, 0); + private Color color21 = decodeColor("nimbusBase", 5.1498413E-4f, -0.095173776f, -0.25882354f, 0); + private Color color22 = decodeColor("nimbusBase", 0.004681647f, -0.6197143f, 0.43137252f, 0); + private Color color23 = decodeColor("nimbusBase", -0.0028941035f, -0.4800539f, 0.28235292f, 0); + private Color color24 = decodeColor("nimbusBase", 5.1498413E-4f, -0.43866998f, 0.24705881f, 0); + private Color color25 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4625541f, 0.35686272f, 0); + private Color color26 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color27 = decodeColor("nimbusBase", 0.032459438f, -0.54616207f, -0.02352941f, 0); + private Color color28 = decodeColor("nimbusBase", 0.032459438f, -0.41349208f, -0.33725494f, 0); + private Color color29 = decodeColor("nimbusBase", 0.08801502f, -0.6317773f, 0.4470588f, 0); + private Color color30 = decodeColor("nimbusBase", 0.032459438f, -0.6113241f, 0.41568625f, 0); + private Color color31 = decodeColor("nimbusBase", 0.032459438f, -0.5985242f, 0.39999998f, 0); + private Color color32 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, 0); + private Color color33 = decodeColor("nimbusBase", 0.0013483167f, -0.1769987f, -0.12156865f, 0); + private Color color34 = decodeColor("nimbusBase", 0.059279382f, 0.3642857f, -0.43529415f, 0); + private Color color35 = decodeColor("nimbusBase", 0.004681647f, -0.6198413f, 0.43921566f, 0); + private Color color36 = decodeColor("nimbusBase", -8.738637E-4f, -0.50527954f, 0.35294116f, 0); + private Color color37 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4555341f, 0.3215686f, 0); + private Color color38 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4757143f, 0.43137252f, 0); + private Color color39 = decodeColor("nimbusBase", 0.08801502f, 0.3642857f, -0.52156866f, 0); + private Color color40 = decodeColor("nimbusBase", 0.032459438f, -0.5246032f, -0.12549022f, 0); + private Color color41 = decodeColor("nimbusBase", 0.027408898f, -0.5847884f, 0.2980392f, 0); + private Color color42 = decodeColor("nimbusBase", 0.026611507f, -0.53623784f, 0.19999999f, 0); + private Color color43 = decodeColor("nimbusBase", 0.029681683f, -0.52701867f, 0.17254901f, 0); + private Color color44 = decodeColor("nimbusBase", 0.03801495f, -0.5456242f, 0.3215686f, 0); + private Color color45 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color46 = decodeColor("nimbusBase", -3.528595E-5f, 0.018606722f, -0.23137257f, 0); + private Color color47 = decodeColor("nimbusBase", -4.2033195E-4f, -0.38050595f, 0.20392156f, 0); + private Color color48 = decodeColor("nimbusBase", 4.081726E-4f, -0.12922078f, 0.054901958f, 0); + private Color color49 = decodeColor("nimbusBase", 0.0f, -0.00895375f, 0.007843137f, 0); + private Color color50 = decodeColor("nimbusBase", -0.0015907288f, -0.1436508f, 0.19215685f, 0); + private Color color51 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -83); + private Color color52 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -88); + private Color color53 = decodeColor("nimbusBlueGrey", 0.0f, -0.005263157f, -0.52156866f, -191); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ComboBoxPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_DISABLED_PRESSED: paintBackgroundDisabledAndPressed(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case BACKGROUND_MOUSEOVER_FOCUSED: paintBackgroundMouseOverAndFocused(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_PRESSED_FOCUSED: paintBackgroundPressedAndFocused(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_ENABLED_SELECTED: paintBackgroundEnabledAndSelected(g); break; + case BACKGROUND_DISABLED_EDITABLE: paintBackgroundDisabledAndEditable(g); break; + case BACKGROUND_ENABLED_EDITABLE: paintBackgroundEnabledAndEditable(g); break; + case BACKGROUND_FOCUSED_EDITABLE: paintBackgroundFocusedAndEditable(g); break; + case BACKGROUND_MOUSEOVER_EDITABLE: paintBackgroundMouseOverAndEditable(g); break; + case BACKGROUND_PRESSED_EDITABLE: paintBackgroundPressedAndEditable(g); break; + + } + } + + protected Object[] getExtendedCacheKeys(JComponent c) { + Object[] extendedCacheKeys = null; + switch(state) { + case BACKGROUND_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color17, -0.63174605f, 0.43921566f, 0), + getComponentColor(c, "background", color18, -0.6054113f, 0.35686272f, 0), + getComponentColor(c, "background", color6, -0.5953556f, 0.32549018f, 0), + getComponentColor(c, "background", color19, -0.5998577f, 0.4352941f, 0), + getComponentColor(c, "background", color22, -0.6197143f, 0.43137252f, 0), + getComponentColor(c, "background", color23, -0.4800539f, 0.28235292f, 0), + getComponentColor(c, "background", color24, -0.43866998f, 0.24705881f, 0), + getComponentColor(c, "background", color25, -0.4625541f, 0.35686272f, 0)}; + break; + case BACKGROUND_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color17, -0.63174605f, 0.43921566f, 0), + getComponentColor(c, "background", color18, -0.6054113f, 0.35686272f, 0), + getComponentColor(c, "background", color6, -0.5953556f, 0.32549018f, 0), + getComponentColor(c, "background", color19, -0.5998577f, 0.4352941f, 0), + getComponentColor(c, "background", color22, -0.6197143f, 0.43137252f, 0), + getComponentColor(c, "background", color23, -0.4800539f, 0.28235292f, 0), + getComponentColor(c, "background", color24, -0.43866998f, 0.24705881f, 0), + getComponentColor(c, "background", color25, -0.4625541f, 0.35686272f, 0)}; + break; + case BACKGROUND_MOUSEOVER_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color29, -0.6317773f, 0.4470588f, 0), + getComponentColor(c, "background", color30, -0.6113241f, 0.41568625f, 0), + getComponentColor(c, "background", color31, -0.5985242f, 0.39999998f, 0), + getComponentColor(c, "background", color32, -0.6357143f, 0.45098037f, 0), + getComponentColor(c, "background", color35, -0.6198413f, 0.43921566f, 0), + getComponentColor(c, "background", color36, -0.50527954f, 0.35294116f, 0), + getComponentColor(c, "background", color37, -0.4555341f, 0.3215686f, 0), + getComponentColor(c, "background", color25, -0.4625541f, 0.35686272f, 0), + getComponentColor(c, "background", color38, -0.4757143f, 0.43137252f, 0)}; + break; + case BACKGROUND_MOUSEOVER: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color29, -0.6317773f, 0.4470588f, 0), + getComponentColor(c, "background", color30, -0.6113241f, 0.41568625f, 0), + getComponentColor(c, "background", color31, -0.5985242f, 0.39999998f, 0), + getComponentColor(c, "background", color32, -0.6357143f, 0.45098037f, 0), + getComponentColor(c, "background", color35, -0.6198413f, 0.43921566f, 0), + getComponentColor(c, "background", color36, -0.50527954f, 0.35294116f, 0), + getComponentColor(c, "background", color37, -0.4555341f, 0.3215686f, 0), + getComponentColor(c, "background", color25, -0.4625541f, 0.35686272f, 0), + getComponentColor(c, "background", color38, -0.4757143f, 0.43137252f, 0)}; + break; + case BACKGROUND_PRESSED_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color41, -0.5847884f, 0.2980392f, 0), + getComponentColor(c, "background", color42, -0.53623784f, 0.19999999f, 0), + getComponentColor(c, "background", color43, -0.52701867f, 0.17254901f, 0), + getComponentColor(c, "background", color44, -0.5456242f, 0.3215686f, 0), + getComponentColor(c, "background", color47, -0.38050595f, 0.20392156f, 0), + getComponentColor(c, "background", color48, -0.12922078f, 0.054901958f, 0), + getComponentColor(c, "background", color49, -0.00895375f, 0.007843137f, 0), + getComponentColor(c, "background", color50, -0.1436508f, 0.19215685f, 0)}; + break; + case BACKGROUND_PRESSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color41, -0.5847884f, 0.2980392f, 0), + getComponentColor(c, "background", color42, -0.53623784f, 0.19999999f, 0), + getComponentColor(c, "background", color43, -0.52701867f, 0.17254901f, 0), + getComponentColor(c, "background", color44, -0.5456242f, 0.3215686f, 0), + getComponentColor(c, "background", color47, -0.38050595f, 0.20392156f, 0), + getComponentColor(c, "background", color48, -0.12922078f, 0.054901958f, 0), + getComponentColor(c, "background", color49, -0.00895375f, 0.007843137f, 0), + getComponentColor(c, "background", color50, -0.1436508f, 0.19215685f, 0)}; + break; + case BACKGROUND_ENABLED_SELECTED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color41, -0.5847884f, 0.2980392f, 0), + getComponentColor(c, "background", color42, -0.53623784f, 0.19999999f, 0), + getComponentColor(c, "background", color43, -0.52701867f, 0.17254901f, 0), + getComponentColor(c, "background", color44, -0.5456242f, 0.3215686f, 0), + getComponentColor(c, "background", color47, -0.38050595f, 0.20392156f, 0), + getComponentColor(c, "background", color48, -0.12922078f, 0.054901958f, 0), + getComponentColor(c, "background", color49, -0.00895375f, 0.007843137f, 0), + getComponentColor(c, "background", color50, -0.1436508f, 0.19215685f, 0)}; + break; + } + return extendedCacheKeys; + } + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + + } + + private void paintBackgroundDisabledAndPressed(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color14); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintBackgroundFocused(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color26); + g.fill(roundRect); + path = decodePath2(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintBackgroundMouseOverAndFocused(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color26); + g.fill(roundRect); + path = decodePath2(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient10(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + path = decodePath1(); + g.setPaint(color14); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient10(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintBackgroundPressedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color26); + g.fill(roundRect); + path = decodePath2(); + g.setPaint(decodeGradient11(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintBackgroundPressed(Graphics2D g) { + path = decodePath1(); + g.setPaint(color51); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient11(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintBackgroundEnabledAndSelected(Graphics2D g) { + path = decodePath1(); + g.setPaint(color52); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient11(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintBackgroundDisabledAndEditable(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color53); + g.fill(rect); + + } + + private void paintBackgroundEnabledAndEditable(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color53); + g.fill(rect); + + } + + private void paintBackgroundFocusedAndEditable(Graphics2D g) { + path = decodePath6(); + g.setPaint(color26); + g.fill(path); + + } + + private void paintBackgroundMouseOverAndEditable(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(color53); + g.fill(rect); + + } + + private void paintBackgroundPressedAndEditable(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(color53); + g.fill(rect); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.22222222f), decodeY(2.0f)); + path.lineTo(decodeX(0.22222222f), decodeY(2.25f)); + path.curveTo(decodeAnchorX(0.2222222238779068f, 0.0f), decodeAnchorY(2.25f, 3.0f), decodeAnchorX(0.7777777910232544f, -3.0f), decodeAnchorY(2.875f, 0.0f), decodeX(0.7777778f), decodeY(2.875f)); + path.lineTo(decodeX(2.631579f), decodeY(2.875f)); + path.curveTo(decodeAnchorX(2.6315789222717285f, 3.0f), decodeAnchorY(2.875f, 0.0f), decodeAnchorX(2.8947367668151855f, 0.0f), decodeAnchorY(2.25f, 3.0f), decodeX(2.8947368f), decodeY(2.25f)); + path.lineTo(decodeX(2.8947368f), decodeY(2.0f)); + path.lineTo(decodeX(0.22222222f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.22222222f), decodeY(0.875f)); + path.lineTo(decodeX(0.22222222f), decodeY(2.125f)); + path.curveTo(decodeAnchorX(0.2222222238779068f, 0.0f), decodeAnchorY(2.125f, 3.0f), decodeAnchorX(0.7777777910232544f, -3.0f), decodeAnchorY(2.75f, 0.0f), decodeX(0.7777778f), decodeY(2.75f)); + path.lineTo(decodeX(2.0f), decodeY(2.75f)); + path.lineTo(decodeX(2.0f), decodeY(0.25f)); + path.lineTo(decodeX(0.7777778f), decodeY(0.25f)); + path.curveTo(decodeAnchorX(0.7777777910232544f, -3.0f), decodeAnchorY(0.25f, 0.0f), decodeAnchorX(0.2222222238779068f, 0.0f), decodeAnchorY(0.875f, -3.0f), decodeX(0.22222222f), decodeY(0.875f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.8888889f), decodeY(0.375f)); + path.lineTo(decodeX(2.0f), decodeY(0.375f)); + path.lineTo(decodeX(2.0f), decodeY(2.625f)); + path.lineTo(decodeX(0.8888889f), decodeY(2.625f)); + path.curveTo(decodeAnchorX(0.8888888955116272f, -4.0f), decodeAnchorY(2.625f, 0.0f), decodeAnchorX(0.3333333432674408f, 0.0f), decodeAnchorY(2.0f, 4.0f), decodeX(0.33333334f), decodeY(2.0f)); + path.lineTo(decodeX(0.33333334f), decodeY(0.875f)); + path.curveTo(decodeAnchorX(0.3333333432674408f, 0.0f), decodeAnchorY(0.875f, -3.0f), decodeAnchorX(0.8888888955116272f, -4.0f), decodeAnchorY(0.375f, 0.0f), decodeX(0.8888889f), decodeY(0.375f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(2.0f), decodeY(0.25f)); + path.lineTo(decodeX(2.631579f), decodeY(0.25f)); + path.curveTo(decodeAnchorX(2.6315789222717285f, 3.0f), decodeAnchorY(0.25f, 0.0f), decodeAnchorX(2.8947367668151855f, 0.0f), decodeAnchorY(0.875f, -3.0f), decodeX(2.8947368f), decodeY(0.875f)); + path.lineTo(decodeX(2.8947368f), decodeY(2.125f)); + path.curveTo(decodeAnchorX(2.8947367668151855f, 0.0f), decodeAnchorY(2.125f, 3.0f), decodeAnchorX(2.6315789222717285f, 3.0f), decodeAnchorY(2.75f, 0.0f), decodeX(2.631579f), decodeY(2.75f)); + path.lineTo(decodeX(2.0f), decodeY(2.75f)); + path.lineTo(decodeX(2.0f), decodeY(0.25f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(2.0131578f), decodeY(0.375f)); + path.lineTo(decodeX(2.5789473f), decodeY(0.375f)); + path.curveTo(decodeAnchorX(2.5789473056793213f, 4.0f), decodeAnchorY(0.375f, 0.0f), decodeAnchorX(2.8421053886413574f, 0.0f), decodeAnchorY(1.0f, -4.0f), decodeX(2.8421054f), decodeY(1.0f)); + path.lineTo(decodeX(2.8421054f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(2.8421053886413574f, 0.0f), decodeAnchorY(2.0f, 4.0f), decodeAnchorX(2.5789473056793213f, 4.0f), decodeAnchorY(2.625f, 0.0f), decodeX(2.5789473f), decodeY(2.625f)); + path.lineTo(decodeX(2.0131578f), decodeY(2.625f)); + path.lineTo(decodeX(2.0131578f), decodeY(0.375f)); + path.closePath(); + return path; + } + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(0.06666667f), //x + decodeY(0.075f), //y + decodeX(2.9684212f) - decodeX(0.06666667f), //width + decodeY(2.925f) - decodeY(0.075f), //height + 13.0f, 13.0f); //rounding + return roundRect; + } + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.4385965f), //x + decodeY(1.4444444f), //y + decodeX(1.4385965f) - decodeX(1.4385965f), //width + decodeY(1.4444444f) - decodeY(1.4444444f)); //height + return rect; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(0.120000005f), decodeY(0.120000005f)); + path.lineTo(decodeX(1.9954545f), decodeY(0.120000005f)); + path.curveTo(decodeAnchorX(1.9954545497894287f, 3.0f), decodeAnchorY(0.12000000476837158f, 0.0f), decodeAnchorX(2.8799986839294434f, 0.0f), decodeAnchorY(1.0941176414489746f, -2.9999999999999996f), decodeX(2.8799987f), decodeY(1.0941176f)); + path.lineTo(decodeX(2.8799987f), decodeY(1.964706f)); + path.curveTo(decodeAnchorX(2.8799986839294434f, 0.0f), decodeAnchorY(1.9647059440612793f, 3.0f), decodeAnchorX(1.9954545497894287f, 3.0f), decodeAnchorY(2.879999876022339f, 0.0f), decodeX(1.9954545f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(0.120000005f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(1.4385965f), //x + decodeY(1.5f), //y + decodeX(1.4385965f) - decodeX(1.4385965f), //width + decodeY(1.5f) - decodeY(1.5f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.2002841f,0.4005682f,0.5326705f,0.66477275f,0.8323864f,1.0f }, + new Color[] { color4, + decodeColor(color4,color5,0.5f), + color5, + decodeColor(color5,color6,0.5f), + color6, + decodeColor(color6,color7,0.5f), + color7}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color8, + decodeColor(color8,color9,0.5f), + color9}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.171875f,0.34375f,0.4815341f,0.6193182f,0.8096591f,1.0f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11, + decodeColor(color11,color12,0.5f), + color12, + decodeColor(color12,color13,0.5f), + color13}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.2002841f,0.4005682f,0.5326705f,0.66477275f,0.8323864f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[3],0.5f), + (Color)componentColors[3]}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color20, + decodeColor(color20,color21,0.5f), + color21}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.171875f,0.34375f,0.4815341f,0.6193182f,0.8096591f,1.0f }, + new Color[] { (Color)componentColors[4], + decodeColor((Color)componentColors[4],(Color)componentColors[5],0.5f), + (Color)componentColors[5], + decodeColor((Color)componentColors[5],(Color)componentColors[6],0.5f), + (Color)componentColors[6], + decodeColor((Color)componentColors[6],(Color)componentColors[7],0.5f), + (Color)componentColors[7]}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color27, + decodeColor(color27,color28,0.5f), + color28}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color33, + decodeColor(color33,color34,0.5f), + color34}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color39, + decodeColor(color39,color40,0.5f), + color40}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color45, + decodeColor(color45,color46,0.5f), + color46}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/DesktopIconPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/DesktopIconPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,159 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class DesktopIconPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of DesktopIconPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of DesktopIconPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", 0.02551502f, -0.47885156f, -0.34901965f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.102261856f, 0.20392156f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.0f, -0.0682728f, 0.09019607f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.088974595f, 0.16470587f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.0f, -0.029445238f, -0.019607842f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public DesktopIconPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(0.4f), //x + decodeY(0.0f), //y + decodeX(2.8f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.0f), //height + 4.8333335f, 4.8333335f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(0.6f), //x + decodeY(0.2f), //y + decodeX(2.8f) - decodeX(0.6f), //width + decodeY(2.4f) - decodeY(0.2f), //height + 3.1f, 3.1f); //rounding + return roundRect; + } + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.8f), //x + decodeY(0.4f), //y + decodeX(2.4f) - decodeX(0.8f), //width + decodeY(2.2f) - decodeY(0.4f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.24f,1.0f }, + new Color[] { color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/DesktopPanePainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/DesktopPanePainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,350 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class DesktopPanePainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of DesktopPanePainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of DesktopPanePainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", -0.004577577f, -0.12867206f, 0.007843137f, 0); + private Color color2 = decodeColor("nimbusBase", -0.0063245893f, -0.08363098f, -0.17254904f, 0); + private Color color3 = decodeColor("nimbusBase", -3.6883354E-4f, -0.056766927f, -0.10196081f, 0); + private Color color4 = decodeColor("nimbusBase", -0.008954704f, -0.12645501f, -0.12549022f, 0); + private Color color5 = new Color(255, 200, 0, 6); + private Color color6 = decodeColor("nimbusBase", -8.028746E-5f, -0.084533215f, -0.05098042f, 0); + private Color color7 = decodeColor("nimbusBase", -0.0052053332f, -0.12267083f, -0.09803924f, 0); + private Color color8 = decodeColor("nimbusBase", -0.012559712f, -0.13136649f, -0.09803924f, 0); + private Color color9 = decodeColor("nimbusBase", -0.009207249f, -0.13984653f, -0.07450983f, 0); + private Color color10 = decodeColor("nimbusBase", -0.010750473f, -0.13571429f, -0.12549022f, 0); + private Color color11 = decodeColor("nimbusBase", -0.008476257f, -0.1267857f, -0.109803945f, 0); + private Color color12 = decodeColor("nimbusBase", -0.0034883022f, -0.042691052f, -0.21176472f, 0); + private Color color13 = decodeColor("nimbusBase", -0.012613952f, -0.11610645f, -0.14901963f, 0); + private Color color14 = decodeColor("nimbusBase", -0.0038217902f, -0.05238098f, -0.21960786f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public DesktopPanePainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(color5); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + path = decodePath6(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath7(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath8(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath9(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.2716666f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(1.2716666460037231f, 0.0f), decodeAnchorY(2.0f, 0.5f), decodeAnchorX(1.128333330154419f, 0.0f), decodeAnchorY(1.0f, 0.0f), decodeX(1.1283333f), decodeY(1.0f)); + path.lineTo(decodeX(1.3516667f), decodeY(1.0f)); + path.lineTo(decodeX(1.5866666f), decodeY(1.5754311f)); + path.lineTo(decodeX(1.5416667f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(1.5416667461395264f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(1.2716666460037231f, 0.0f), decodeAnchorY(2.0f, -0.5f), decodeX(1.2716666f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(1.7883334f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(1.7883334159851074f, 0.0f), decodeAnchorY(2.0f, 0.5f), decodeAnchorX(1.653333306312561f, 0.0f), decodeAnchorY(1.7737069129943848f, 0.0f), decodeX(1.6533333f), decodeY(1.7737069f)); + path.lineTo(decodeX(2.0f), decodeY(1.1465517f)); + path.curveTo(decodeAnchorX(2.0f, 0.0f), decodeAnchorY(1.1465517282485962f, 0.0f), decodeAnchorX(2.0f, 0.0f), decodeAnchorY(2.0f, -0.5f), decodeX(2.0f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(2.0f, 0.5f), decodeAnchorY(2.0f, 0.5f), decodeAnchorX(1.7883334159851074f, 0.0f), decodeAnchorY(2.0f, -0.5f), decodeX(1.7883334f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(1.5666666f), decodeY(1.0f)); + path.lineTo(decodeX(1.5666666f), decodeY(1.5689654f)); + path.lineTo(decodeX(1.675f), decodeY(1.7715517f)); + path.curveTo(decodeAnchorX(1.6749999523162842f, 0.0f), decodeAnchorY(1.7715517282485962f, 0.0f), decodeAnchorX(1.81166672706604f, -23.5f), decodeAnchorY(1.4978448152542114f, 33.5f), decodeX(1.8116667f), decodeY(1.4978448f)); + path.curveTo(decodeAnchorX(1.81166672706604f, 23.5f), decodeAnchorY(1.4978448152542114f, -33.5f), decodeAnchorX(2.0f, 0.0f), decodeAnchorY(1.200430989265442f, 0.0f), decodeX(2.0f), decodeY(1.200431f)); + path.lineTo(decodeX(2.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.5666666f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(1.3383334f), decodeY(1.0f)); + path.curveTo(decodeAnchorX(1.3383333683013916f, 0.0f), decodeAnchorY(1.0f, 0.0f), decodeAnchorX(1.441666603088379f, -21.0f), decodeAnchorY(1.3103448152542114f, -37.5f), decodeX(1.4416666f), decodeY(1.3103448f)); + path.curveTo(decodeAnchorX(1.441666603088379f, 21.0f), decodeAnchorY(1.3103448152542114f, 37.5f), decodeAnchorX(1.5733332633972168f, 0.0f), decodeAnchorY(1.5840517282485962f, 0.0f), decodeX(1.5733333f), decodeY(1.5840517f)); + path.curveTo(decodeAnchorX(1.5733332633972168f, 0.0f), decodeAnchorY(1.5840517282485962f, 0.0f), decodeAnchorX(1.6066666841506958f, 1.5f), decodeAnchorY(1.2413792610168457f, 29.5f), decodeX(1.6066667f), decodeY(1.2413793f)); + path.curveTo(decodeAnchorX(1.6066666841506958f, -1.5f), decodeAnchorY(1.2413792610168457f, -29.5f), decodeAnchorX(1.6050000190734863f, 0.0f), decodeAnchorY(1.0f, 0.0f), decodeX(1.605f), decodeY(1.0f)); + path.lineTo(decodeX(1.3383334f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(1.5683334f), decodeY(1.5797414f)); + path.curveTo(decodeAnchorX(1.568333387374878f, 0.0f), decodeAnchorY(1.579741358757019f, 0.0f), decodeAnchorX(1.5750000476837158f, 0.0f), decodeAnchorY(1.2392241954803467f, 33.0f), decodeX(1.575f), decodeY(1.2392242f)); + path.curveTo(decodeAnchorX(1.5750000476837158f, 0.0f), decodeAnchorY(1.2392241954803467f, -33.0f), decodeAnchorX(1.56166672706604f, 0.0f), decodeAnchorY(1.0f, 0.0f), decodeX(1.5616667f), decodeY(1.0f)); + path.lineTo(decodeX(2.0f), decodeY(1.0f)); + path.lineTo(decodeX(2.0f), decodeY(1.1982758f)); + path.curveTo(decodeAnchorX(2.0f, 0.0f), decodeAnchorY(1.1982758045196533f, 0.0f), decodeAnchorX(1.806666612625122f, 27.5f), decodeAnchorY(1.5043103694915771f, -38.5f), decodeX(1.8066666f), decodeY(1.5043104f)); + path.curveTo(decodeAnchorX(1.806666612625122f, -27.5f), decodeAnchorY(1.5043103694915771f, 38.5f), decodeAnchorX(1.6766667366027832f, 0.0f), decodeAnchorY(1.778017282485962f, 0.0f), decodeX(1.6766667f), decodeY(1.7780173f)); + path.lineTo(decodeX(1.5683334f), decodeY(1.5797414f)); + path.closePath(); + return path; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(1.5216666f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(1.5216666460037231f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(1.5550000667572021f, -2.0f), decodeAnchorY(1.778017282485962f, 22.5f), decodeX(1.5550001f), decodeY(1.7780173f)); + path.curveTo(decodeAnchorX(1.5550000667572021f, 2.0f), decodeAnchorY(1.778017282485962f, -22.5f), decodeAnchorX(1.568333387374878f, 0.0f), decodeAnchorY(1.576508641242981f, 0.0f), decodeX(1.5683334f), decodeY(1.5765086f)); + path.lineTo(decodeX(1.6775f), decodeY(1.7747846f)); + path.curveTo(decodeAnchorX(1.6775000095367432f, 0.0f), decodeAnchorY(1.7747845649719238f, 0.0f), decodeAnchorX(1.6508333683013916f, 6.0f), decodeAnchorY(1.892241358757019f, -14.0f), decodeX(1.6508334f), decodeY(1.8922414f)); + path.curveTo(decodeAnchorX(1.6508333683013916f, -6.0f), decodeAnchorY(1.892241358757019f, 14.0f), decodeAnchorX(1.6083333492279053f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(1.6083333f), decodeY(2.0f)); + path.lineTo(decodeX(1.5216666f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath7() { + path.reset(); + path.moveTo(decodeX(1.6066667f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(1.6066666841506958f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(1.6399999856948853f, -7.0f), decodeAnchorY(1.8814654350280762f, 17.0f), decodeX(1.64f), decodeY(1.8814654f)); + path.curveTo(decodeAnchorX(1.6399999856948853f, 7.0f), decodeAnchorY(1.8814654350280762f, -17.0f), decodeAnchorX(1.6775000095367432f, 0.0f), decodeAnchorY(1.7747845649719238f, 0.0f), decodeX(1.6775f), decodeY(1.7747846f)); + path.curveTo(decodeAnchorX(1.6775000095367432f, 0.0f), decodeAnchorY(1.7747845649719238f, 0.0f), decodeAnchorX(1.7416666746139526f, -11.0f), decodeAnchorY(1.8836207389831543f, -15.0f), decodeX(1.7416667f), decodeY(1.8836207f)); + path.curveTo(decodeAnchorX(1.7416666746139526f, 11.0f), decodeAnchorY(1.8836207389831543f, 15.0f), decodeAnchorX(1.81333327293396f, 0.0f), decodeAnchorY(2.0f, -0.5f), decodeX(1.8133333f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(1.81333327293396f, 0.0f), decodeAnchorY(2.0f, 0.5f), decodeAnchorX(1.6066666841506958f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(1.6066667f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath8() { + path.reset(); + path.moveTo(decodeX(1.2733333f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(1.2733333110809326f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(1.2633333206176758f, 5.0f), decodeAnchorY(1.659482717514038f, 37.0f), decodeX(1.2633333f), decodeY(1.6594827f)); + path.curveTo(decodeAnchorX(1.2633333206176758f, -5.0f), decodeAnchorY(1.659482717514038f, -37.0f), decodeAnchorX(1.193333387374878f, 9.0f), decodeAnchorY(1.2241379022598267f, 33.5f), decodeX(1.1933334f), decodeY(1.2241379f)); + path.curveTo(decodeAnchorX(1.193333387374878f, -9.0f), decodeAnchorY(1.2241379022598267f, -33.5f), decodeAnchorX(1.1333333253860474f, 0.0f), decodeAnchorY(1.0f, 0.0f), decodeX(1.1333333f), decodeY(1.0f)); + path.lineTo(decodeX(1.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.0f), decodeY(1.6120689f)); + path.curveTo(decodeAnchorX(1.0f, 0.0f), decodeAnchorY(1.6120688915252686f, 0.0f), decodeAnchorX(1.149999976158142f, 0.0f), decodeAnchorY(2.0f, -0.5f), decodeX(1.15f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(1.149999976158142f, 0.0f), decodeAnchorY(2.0f, 0.5f), decodeAnchorX(1.2733333110809326f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(1.2733333f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath9() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(1.5969827f)); + path.curveTo(decodeAnchorX(1.0f, 0.0f), decodeAnchorY(1.596982717514038f, 0.0f), decodeAnchorX(1.0733333826065063f, -10.0f), decodeAnchorY(1.7974138259887695f, -19.5f), decodeX(1.0733334f), decodeY(1.7974138f)); + path.curveTo(decodeAnchorX(1.0733333826065063f, 10.0f), decodeAnchorY(1.7974138259887695f, 19.5f), decodeAnchorX(1.1666666269302368f, 0.0f), decodeAnchorY(2.0f, -0.5f), decodeX(1.1666666f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(1.1666666269302368f, 0.0f), decodeAnchorY(2.0f, 0.5f), decodeAnchorX(1.0f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(1.0f), decodeY(2.0f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.75f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.9567308f * w) + x, (0.06835443f * h) + y, (0.75f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.83536583f * w) + x, (0.9522059f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color6, + decodeColor(color6,color7,0.5f), + color7}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.8659696f * w) + x, (0.011049724f * h) + y, (0.24809887f * w) + x, (0.95027626f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color6, + decodeColor(color6,color8,0.5f), + color8}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.3511236f * w) + x, (0.09326425f * h) + y, (0.33426967f * w) + x, (0.9846154f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color9, + decodeColor(color9,color10,0.5f), + color10}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.3548387f * w) + x, (0.114285715f * h) + y, (0.48387095f * w) + x, (0.9809524f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color11, + decodeColor(color11,color4,0.5f), + color4}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.75f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color12,0.5f), + color12}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.75f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/EditorPanePainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/EditorPanePainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,124 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class EditorPanePainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of EditorPanePainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_SELECTED = 3; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of EditorPanePainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.07995863f, 0.15294117f, 0); + private Color color2 = decodeColor("nimbusLightBackground", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public EditorPanePainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color2); + g.fill(rect); + + } + + private void paintBackgroundSelected(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color2); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/FileChooserPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/FileChooserPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,2248 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class FileChooserPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of FileChooserPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int FILEICON_ENABLED = 2; + static final int DIRECTORYICON_ENABLED = 3; + static final int UPFOLDERICON_ENABLED = 4; + static final int NEWFOLDERICON_ENABLED = 5; + static final int COMPUTERICON_ENABLED = 6; + static final int HARDDRIVEICON_ENABLED = 7; + static final int FLOPPYDRIVEICON_ENABLED = 8; + static final int HOMEFOLDERICON_ENABLED = 9; + static final int DETAILSVIEWICON_ENABLED = 10; + static final int LISTVIEWICON_ENABLED = 11; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of FileChooserPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("control", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.065654516f, -0.13333333f, 0); + private Color color3 = new Color(97, 98, 102, 255); + private Color color4 = decodeColor("nimbusBlueGrey", -0.032679737f, -0.043332636f, 0.24705881f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color6 = decodeColor("nimbusBase", 0.0077680945f, -0.51781034f, 0.3490196f, 0); + private Color color7 = decodeColor("nimbusBase", 0.013940871f, -0.599277f, 0.41960782f, 0); + private Color color8 = decodeColor("nimbusBase", 0.004681647f, -0.4198052f, 0.14117646f, 0); + private Color color9 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, -127); + private Color color10 = decodeColor("nimbusBlueGrey", 0.0f, 0.0f, -0.21f, -99); + private Color color11 = decodeColor("nimbusBase", 2.9569864E-4f, -0.45978838f, 0.2980392f, 0); + private Color color12 = decodeColor("nimbusBase", 0.0015952587f, -0.34848025f, 0.18823528f, 0); + private Color color13 = decodeColor("nimbusBase", 0.0015952587f, -0.30844158f, 0.09803921f, 0); + private Color color14 = decodeColor("nimbusBase", 0.0015952587f, -0.27329817f, 0.035294116f, 0); + private Color color15 = decodeColor("nimbusBase", 0.004681647f, -0.6198413f, 0.43921566f, 0); + private Color color16 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, -125); + private Color color17 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, -50); + private Color color18 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, -100); + private Color color19 = decodeColor("nimbusBase", 0.0012094378f, -0.23571429f, -0.0784314f, 0); + private Color color20 = decodeColor("nimbusBase", 2.9569864E-4f, -0.115166366f, -0.2627451f, 0); + private Color color21 = decodeColor("nimbusBase", 0.0027436614f, -0.335015f, 0.011764705f, 0); + private Color color22 = decodeColor("nimbusBase", 0.0024294257f, -0.3857143f, 0.031372547f, 0); + private Color color23 = decodeColor("nimbusBase", 0.0018081069f, -0.3595238f, -0.13725492f, 0); + private Color color24 = new Color(255, 200, 0, 255); + private Color color25 = decodeColor("nimbusBase", 0.004681647f, -0.44904763f, 0.039215684f, 0); + private Color color26 = decodeColor("nimbusBase", 0.0015952587f, -0.43718487f, -0.015686274f, 0); + private Color color27 = decodeColor("nimbusBase", 2.9569864E-4f, -0.39212453f, -0.24313727f, 0); + private Color color28 = decodeColor("nimbusBase", 0.004681647f, -0.6117143f, 0.43137252f, 0); + private Color color29 = decodeColor("nimbusBase", 0.0012094378f, -0.28015873f, -0.019607842f, 0); + private Color color30 = decodeColor("nimbusBase", 0.00254488f, -0.07049692f, -0.2784314f, 0); + private Color color31 = decodeColor("nimbusBase", 0.0015952587f, -0.28045115f, 0.04705882f, 0); + private Color color32 = decodeColor("nimbusBlueGrey", 0.0f, 5.847961E-4f, -0.21568626f, 0); + private Color color33 = decodeColor("nimbusBase", -0.0061469674f, 0.3642857f, 0.14509803f, 0); + private Color color34 = decodeColor("nimbusBase", 0.0053939223f, 0.3642857f, -0.0901961f, 0); + private Color color35 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, 0); + private Color color36 = decodeColor("nimbusBase", -0.006044388f, -0.23963585f, 0.45098037f, 0); + private Color color37 = decodeColor("nimbusBase", -0.0063245893f, 0.01592505f, 0.4078431f, 0); + private Color color38 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -170); + private Color color39 = decodeColor("nimbusOrange", -0.032758567f, -0.018273294f, 0.25098038f, 0); + private Color color40 = new Color(255, 255, 255, 255); + private Color color41 = new Color(252, 255, 92, 255); + private Color color42 = new Color(253, 191, 4, 255); + private Color color43 = new Color(160, 161, 163, 255); + private Color color44 = new Color(0, 0, 0, 255); + private Color color45 = new Color(239, 241, 243, 255); + private Color color46 = new Color(197, 201, 205, 255); + private Color color47 = new Color(105, 110, 118, 255); + private Color color48 = new Color(63, 67, 72, 255); + private Color color49 = new Color(56, 51, 25, 255); + private Color color50 = new Color(144, 255, 0, 255); + private Color color51 = new Color(243, 245, 246, 255); + private Color color52 = new Color(208, 212, 216, 255); + private Color color53 = new Color(191, 193, 194, 255); + private Color color54 = new Color(170, 172, 175, 255); + private Color color55 = new Color(152, 155, 158, 255); + private Color color56 = new Color(59, 62, 66, 255); + private Color color57 = new Color(46, 46, 46, 255); + private Color color58 = new Color(64, 64, 64, 255); + private Color color59 = new Color(43, 43, 43, 255); + private Color color60 = new Color(164, 179, 206, 255); + private Color color61 = new Color(97, 123, 170, 255); + private Color color62 = new Color(53, 86, 146, 255); + private Color color63 = new Color(48, 82, 144, 255); + private Color color64 = new Color(71, 99, 150, 255); + private Color color65 = new Color(224, 224, 224, 255); + private Color color66 = new Color(232, 232, 232, 255); + private Color color67 = new Color(231, 234, 237, 255); + private Color color68 = new Color(205, 211, 215, 255); + private Color color69 = new Color(149, 153, 156, 54); + private Color color70 = new Color(255, 122, 101, 255); + private Color color71 = new Color(54, 78, 122, 255); + private Color color72 = new Color(51, 60, 70, 255); + private Color color73 = new Color(228, 232, 237, 255); + private Color color74 = new Color(27, 57, 87, 255); + private Color color75 = new Color(75, 109, 137, 255); + private Color color76 = new Color(77, 133, 185, 255); + private Color color77 = new Color(81, 59, 7, 255); + private Color color78 = new Color(97, 74, 18, 255); + private Color color79 = new Color(137, 115, 60, 255); + private Color color80 = new Color(174, 151, 91, 255); + private Color color81 = new Color(114, 92, 13, 255); + private Color color82 = new Color(64, 48, 0, 255); + private Color color83 = new Color(244, 222, 143, 255); + private Color color84 = new Color(160, 161, 162, 255); + private Color color85 = new Color(226, 230, 233, 255); + private Color color86 = new Color(221, 225, 230, 255); + private Color color87 = decodeColor("nimbusBase", 0.004681647f, -0.48756614f, 0.19215685f, 0); + private Color color88 = decodeColor("nimbusBase", 0.004681647f, -0.48399013f, 0.019607842f, 0); + private Color color89 = decodeColor("nimbusBase", -0.0028941035f, -0.5906323f, 0.4078431f, 0); + private Color color90 = decodeColor("nimbusBase", 0.004681647f, -0.51290727f, 0.34509802f, 0); + private Color color91 = decodeColor("nimbusBase", 0.009583652f, -0.5642857f, 0.3843137f, 0); + private Color color92 = decodeColor("nimbusBase", -0.0072231293f, -0.6074885f, 0.4235294f, 0); + private Color color93 = decodeColor("nimbusBase", 7.13408E-4f, -0.52158386f, 0.17254901f, 0); + private Color color94 = decodeColor("nimbusBase", 0.012257397f, -0.5775132f, 0.19215685f, 0); + private Color color95 = decodeColor("nimbusBase", 0.08801502f, -0.6164835f, -0.14117649f, 0); + private Color color96 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.5019608f, 0); + private Color color97 = decodeColor("nimbusBase", -0.0036516786f, -0.555393f, 0.42745095f, 0); + private Color color98 = decodeColor("nimbusBase", -0.0010654926f, -0.3634138f, 0.2862745f, 0); + private Color color99 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.29803923f, 0); + private Color color100 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, 0.12156862f, 0); + private Color color101 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color102 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.48627454f, 0); + private Color color103 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.007843137f, 0); + private Color color104 = decodeColor("nimbusBase", -0.0028941035f, -0.5408867f, -0.09411767f, 0); + private Color color105 = decodeColor("nimbusBase", -0.011985004f, -0.54721874f, -0.10588238f, 0); + private Color color106 = decodeColor("nimbusBase", -0.0022627711f, -0.4305861f, -0.0901961f, 0); + private Color color107 = decodeColor("nimbusBase", -0.00573498f, -0.447479f, -0.21568629f, 0); + private Color color108 = decodeColor("nimbusBase", 0.004681647f, -0.53271f, 0.36470586f, 0); + private Color color109 = decodeColor("nimbusBase", 0.004681647f, -0.5276062f, -0.11372551f, 0); + private Color color110 = decodeColor("nimbusBase", -8.738637E-4f, -0.5278006f, -0.0039215684f, 0); + private Color color111 = decodeColor("nimbusBase", -0.0028941035f, -0.5338625f, -0.12549022f, 0); + private Color color112 = decodeColor("nimbusBlueGrey", -0.03535354f, -0.008674465f, -0.32156864f, 0); + private Color color113 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.010526314f, -0.3529412f, 0); + private Color color114 = decodeColor("nimbusBase", -0.0028941035f, -0.5234694f, -0.1647059f, 0); + private Color color115 = decodeColor("nimbusBase", 0.004681647f, -0.53401935f, -0.086274534f, 0); + private Color color116 = decodeColor("nimbusBase", 0.004681647f, -0.52077174f, -0.20784315f, 0); + private Color color117 = new Color(108, 114, 120, 255); + private Color color118 = new Color(77, 82, 87, 255); + private Color color119 = decodeColor("nimbusBase", -0.004577577f, -0.52179027f, -0.2392157f, 0); + private Color color120 = decodeColor("nimbusBase", -0.004577577f, -0.547479f, -0.14901963f, 0); + private Color color121 = new Color(186, 186, 186, 50); + private Color color122 = new Color(186, 186, 186, 40); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public FileChooserPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case FILEICON_ENABLED: paintfileIconEnabled(g); break; + case DIRECTORYICON_ENABLED: paintdirectoryIconEnabled(g); break; + case UPFOLDERICON_ENABLED: paintupFolderIconEnabled(g); break; + case NEWFOLDERICON_ENABLED: paintnewFolderIconEnabled(g); break; + case HARDDRIVEICON_ENABLED: painthardDriveIconEnabled(g); break; + case FLOPPYDRIVEICON_ENABLED: paintfloppyDriveIconEnabled(g); break; + case HOMEFOLDERICON_ENABLED: painthomeFolderIconEnabled(g); break; + case DETAILSVIEWICON_ENABLED: paintdetailsViewIconEnabled(g); break; + case LISTVIEWICON_ENABLED: paintlistViewIconEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintfileIconEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color2); + g.fill(path); + rect = decodeRect2(); + g.setPaint(color3); + g.fill(rect); + path = decodePath2(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(color8); + g.fill(path); + path = decodePath5(); + g.setPaint(color9); + g.fill(path); + + } + + private void paintdirectoryIconEnabled(Graphics2D g) { + path = decodePath6(); + g.setPaint(color10); + g.fill(path); + path = decodePath7(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath8(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color17); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color18); + g.fill(rect); + path = decodePath9(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath10(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath11(); + g.setPaint(color24); + g.fill(path); + + } + + private void paintupFolderIconEnabled(Graphics2D g) { + path = decodePath12(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath13(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + path = decodePath14(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + path = decodePath15(); + g.setPaint(decodeGradient10(path)); + g.fill(path); + path = decodePath16(); + g.setPaint(color32); + g.fill(path); + path = decodePath17(); + g.setPaint(decodeGradient11(path)); + g.fill(path); + path = decodePath18(); + g.setPaint(color35); + g.fill(path); + path = decodePath19(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + + } + + private void paintnewFolderIconEnabled(Graphics2D g) { + path = decodePath6(); + g.setPaint(color10); + g.fill(path); + path = decodePath7(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath8(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color17); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color18); + g.fill(rect); + path = decodePath9(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath10(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath11(); + g.setPaint(color24); + g.fill(path); + path = decodePath20(); + g.setPaint(color38); + g.fill(path); + path = decodePath21(); + g.setPaint(color39); + g.fill(path); + path = decodePath22(); + g.setPaint(decodeRadial1(path)); + g.fill(path); + + } + + private void painthardDriveIconEnabled(Graphics2D g) { + rect = decodeRect6(); + g.setPaint(color43); + g.fill(rect); + rect = decodeRect7(); + g.setPaint(color44); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(decodeGradient13(rect)); + g.fill(rect); + path = decodePath23(); + g.setPaint(decodeGradient14(path)); + g.fill(path); + rect = decodeRect9(); + g.setPaint(color49); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color49); + g.fill(rect); + ellipse = decodeEllipse1(); + g.setPaint(color50); + g.fill(ellipse); + path = decodePath24(); + g.setPaint(decodeGradient15(path)); + g.fill(path); + ellipse = decodeEllipse2(); + g.setPaint(color53); + g.fill(ellipse); + ellipse = decodeEllipse3(); + g.setPaint(color53); + g.fill(ellipse); + ellipse = decodeEllipse4(); + g.setPaint(color54); + g.fill(ellipse); + ellipse = decodeEllipse5(); + g.setPaint(color55); + g.fill(ellipse); + ellipse = decodeEllipse6(); + g.setPaint(color55); + g.fill(ellipse); + ellipse = decodeEllipse7(); + g.setPaint(color55); + g.fill(ellipse); + rect = decodeRect11(); + g.setPaint(color56); + g.fill(rect); + rect = decodeRect12(); + g.setPaint(color56); + g.fill(rect); + rect = decodeRect13(); + g.setPaint(color56); + g.fill(rect); + + } + + private void paintfloppyDriveIconEnabled(Graphics2D g) { + path = decodePath25(); + g.setPaint(decodeGradient16(path)); + g.fill(path); + path = decodePath26(); + g.setPaint(decodeGradient17(path)); + g.fill(path); + path = decodePath27(); + g.setPaint(decodeGradient18(path)); + g.fill(path); + path = decodePath28(); + g.setPaint(decodeGradient19(path)); + g.fill(path); + path = decodePath29(); + g.setPaint(color69); + g.fill(path); + rect = decodeRect14(); + g.setPaint(color70); + g.fill(rect); + rect = decodeRect15(); + g.setPaint(color40); + g.fill(rect); + rect = decodeRect16(); + g.setPaint(color67); + g.fill(rect); + rect = decodeRect17(); + g.setPaint(color71); + g.fill(rect); + rect = decodeRect18(); + g.setPaint(color44); + g.fill(rect); + + } + + private void painthomeFolderIconEnabled(Graphics2D g) { + path = decodePath30(); + g.setPaint(color72); + g.fill(path); + path = decodePath31(); + g.setPaint(color73); + g.fill(path); + rect = decodeRect19(); + g.setPaint(decodeGradient20(rect)); + g.fill(rect); + rect = decodeRect20(); + g.setPaint(color76); + g.fill(rect); + path = decodePath32(); + g.setPaint(decodeGradient21(path)); + g.fill(path); + rect = decodeRect21(); + g.setPaint(decodeGradient22(rect)); + g.fill(rect); + path = decodePath33(); + g.setPaint(decodeGradient23(path)); + g.fill(path); + path = decodePath34(); + g.setPaint(color83); + g.fill(path); + path = decodePath35(); + g.setPaint(decodeGradient24(path)); + g.fill(path); + path = decodePath36(); + g.setPaint(decodeGradient25(path)); + g.fill(path); + + } + + private void paintdetailsViewIconEnabled(Graphics2D g) { + rect = decodeRect22(); + g.setPaint(decodeGradient26(rect)); + g.fill(rect); + rect = decodeRect23(); + g.setPaint(decodeGradient27(rect)); + g.fill(rect); + rect = decodeRect24(); + g.setPaint(color93); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color93); + g.fill(rect); + rect = decodeRect25(); + g.setPaint(color93); + g.fill(rect); + rect = decodeRect26(); + g.setPaint(color94); + g.fill(rect); + ellipse = decodeEllipse8(); + g.setPaint(decodeGradient28(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse9(); + g.setPaint(decodeRadial2(ellipse)); + g.fill(ellipse); + path = decodePath37(); + g.setPaint(decodeGradient29(path)); + g.fill(path); + path = decodePath38(); + g.setPaint(decodeGradient30(path)); + g.fill(path); + rect = decodeRect27(); + g.setPaint(color104); + g.fill(rect); + rect = decodeRect28(); + g.setPaint(color105); + g.fill(rect); + rect = decodeRect29(); + g.setPaint(color106); + g.fill(rect); + rect = decodeRect30(); + g.setPaint(color107); + g.fill(rect); + + } + + private void paintlistViewIconEnabled(Graphics2D g) { + rect = decodeRect31(); + g.setPaint(decodeGradient26(rect)); + g.fill(rect); + rect = decodeRect32(); + g.setPaint(decodeGradient31(rect)); + g.fill(rect); + rect = decodeRect33(); + g.setPaint(color109); + g.fill(rect); + rect = decodeRect34(); + g.setPaint(decodeGradient32(rect)); + g.fill(rect); + rect = decodeRect35(); + g.setPaint(color111); + g.fill(rect); + rect = decodeRect36(); + g.setPaint(color112); + g.fill(rect); + rect = decodeRect37(); + g.setPaint(color113); + g.fill(rect); + rect = decodeRect38(); + g.setPaint(decodeGradient33(rect)); + g.fill(rect); + rect = decodeRect39(); + g.setPaint(color116); + g.fill(rect); + rect = decodeRect40(); + g.setPaint(decodeGradient34(rect)); + g.fill(rect); + rect = decodeRect41(); + g.setPaint(decodeGradient35(rect)); + g.fill(rect); + rect = decodeRect42(); + g.setPaint(color119); + g.fill(rect); + rect = decodeRect43(); + g.setPaint(color121); + g.fill(rect); + rect = decodeRect44(); + g.setPaint(color121); + g.fill(rect); + rect = decodeRect45(); + g.setPaint(color121); + g.fill(rect); + rect = decodeRect46(); + g.setPaint(color122); + g.fill(rect); + rect = decodeRect47(); + g.setPaint(color121); + g.fill(rect); + rect = decodeRect48(); + g.setPaint(color122); + g.fill(rect); + rect = decodeRect49(); + g.setPaint(color122); + g.fill(rect); + rect = decodeRect50(); + g.setPaint(color121); + g.fill(rect); + rect = decodeRect51(); + g.setPaint(color122); + g.fill(rect); + rect = decodeRect52(); + g.setPaint(color122); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.2f), decodeY(0.0f)); + path.lineTo(decodeX(0.2f), decodeY(3.0f)); + path.lineTo(decodeX(0.4f), decodeY(3.0f)); + path.lineTo(decodeX(0.4f), decodeY(0.2f)); + path.lineTo(decodeX(1.9197531f), decodeY(0.2f)); + path.lineTo(decodeX(2.6f), decodeY(0.9f)); + path.lineTo(decodeX(2.6f), decodeY(3.0f)); + path.lineTo(decodeX(2.8f), decodeY(3.0f)); + path.lineTo(decodeX(2.8f), decodeY(0.88888896f)); + path.lineTo(decodeX(1.9537036f), decodeY(0.0f)); + path.lineTo(decodeX(0.2f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.4f), //x + decodeY(2.8f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(3.0f) - decodeY(2.8f)); //height + return rect; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(1.8333333f), decodeY(0.2f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.0f)); + path.lineTo(decodeX(2.6f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(0.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(1.8333333f), decodeY(0.2f)); + path.lineTo(decodeX(0.4f), decodeY(0.2f)); + path.lineTo(decodeX(0.4f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(0.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(1.8333333f), decodeY(0.2f)); + path.lineTo(decodeX(1.6234567f), decodeY(0.2f)); + path.lineTo(decodeX(1.6296296f), decodeY(1.2037038f)); + path.lineTo(decodeX(2.6f), decodeY(1.2006173f)); + path.lineTo(decodeX(2.6f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(0.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(1.8333333f), decodeY(0.4f)); + path.lineTo(decodeX(1.8333333f), decodeY(0.2f)); + path.lineTo(decodeX(0.4f), decodeY(0.2f)); + path.lineTo(decodeX(0.4f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(1.0f)); + path.lineTo(decodeX(2.4f), decodeY(1.0f)); + path.lineTo(decodeX(2.4f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(0.4f)); + path.lineTo(decodeX(1.8333333f), decodeY(0.4f)); + path.closePath(); + return path; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(2.4f)); + path.lineTo(decodeX(0.0f), decodeY(2.6f)); + path.lineTo(decodeX(0.2f), decodeY(3.0f)); + path.lineTo(decodeX(2.6f), decodeY(3.0f)); + path.lineTo(decodeX(2.8f), decodeY(2.6f)); + path.lineTo(decodeX(2.8f), decodeY(2.4f)); + path.lineTo(decodeX(0.0f), decodeY(2.4f)); + path.closePath(); + return path; + } + + private Path2D decodePath7() { + path.reset(); + path.moveTo(decodeX(0.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.6037037f), decodeY(1.8425925f)); + path.lineTo(decodeX(0.8f), decodeY(1.0f)); + path.lineTo(decodeX(2.8f), decodeY(1.0f)); + path.lineTo(decodeX(2.8f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(2.6f)); + path.closePath(); + return path; + } + + private Path2D decodePath8() { + path.reset(); + path.moveTo(decodeX(0.2f), decodeY(2.6f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(0.40833336f), decodeY(1.8645833f)); + path.lineTo(decodeX(0.79583335f), decodeY(0.8f)); + path.lineTo(decodeX(2.4f), decodeY(0.8f)); + path.lineTo(decodeX(2.4f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(0.6f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.4f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.2f)); + path.lineTo(decodeX(0.6f), decodeY(0.2f)); + path.lineTo(decodeX(0.6f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(2.6f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(0.2f), //x + decodeY(0.6f), //y + decodeX(0.4f) - decodeX(0.2f), //width + decodeY(0.8f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.6f), //x + decodeY(0.2f), //y + decodeX(1.3333334f) - decodeX(0.6f), //width + decodeY(0.4f) - decodeY(0.2f)); //height + return rect; + } + + private Rectangle2D decodeRect5() { + rect.setRect(decodeX(1.5f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(1.5f), //width + decodeY(0.8f) - decodeY(0.6f)); //height + return rect; + } + + private Path2D decodePath9() { + path.reset(); + path.moveTo(decodeX(3.0f), decodeY(0.8f)); + path.lineTo(decodeX(3.0f), decodeY(1.0f)); + path.lineTo(decodeX(2.4f), decodeY(1.0f)); + path.lineTo(decodeX(2.4f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(0.6f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.4f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.2f)); + path.lineTo(decodeX(0.5888889f), decodeY(0.20370372f)); + path.lineTo(decodeX(0.5962963f), decodeY(0.34814817f)); + path.lineTo(decodeX(0.34814817f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.774074f), decodeY(1.1604939f)); + path.lineTo(decodeX(2.8f), decodeY(1.0f)); + path.lineTo(decodeX(3.0f), decodeY(1.0f)); + path.lineTo(decodeX(2.8925927f), decodeY(1.1882716f)); + path.lineTo(decodeX(2.8f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.8f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.8f)); + path.lineTo(decodeX(0.2f), decodeY(2.8f)); + path.lineTo(decodeX(0.0f), decodeY(2.6f)); + path.lineTo(decodeX(0.0f), decodeY(0.65185183f)); + path.lineTo(decodeX(0.63703704f), decodeY(0.0f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.0f)); + path.lineTo(decodeX(1.5925925f), decodeY(0.4f)); + path.lineTo(decodeX(2.4f), decodeY(0.4f)); + path.lineTo(decodeX(2.6f), decodeY(0.6f)); + path.lineTo(decodeX(2.6f), decodeY(0.8f)); + path.lineTo(decodeX(3.0f), decodeY(0.8f)); + path.closePath(); + return path; + } + + private Path2D decodePath10() { + path.reset(); + path.moveTo(decodeX(2.4f), decodeY(1.0f)); + path.lineTo(decodeX(2.4f), decodeY(0.8f)); + path.lineTo(decodeX(0.74814814f), decodeY(0.8f)); + path.lineTo(decodeX(0.4037037f), decodeY(1.8425925f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.5925926f), decodeY(2.225926f)); + path.lineTo(decodeX(0.916f), decodeY(0.996f)); + path.lineTo(decodeX(2.4f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath11() { + path.reset(); + path.moveTo(decodeX(2.2f), decodeY(2.2f)); + path.lineTo(decodeX(2.2f), decodeY(2.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath12() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(2.8f)); + path.lineTo(decodeX(0.2f), decodeY(3.0f)); + path.lineTo(decodeX(2.6f), decodeY(3.0f)); + path.lineTo(decodeX(2.8f), decodeY(2.8f)); + path.lineTo(decodeX(2.8f), decodeY(1.8333333f)); + path.lineTo(decodeX(3.0f), decodeY(1.3333334f)); + path.lineTo(decodeX(3.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.5f), decodeY(1.0f)); + path.lineTo(decodeX(1.5f), decodeY(0.4f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.2f)); + path.lineTo(decodeX(0.6f), decodeY(0.2f)); + path.lineTo(decodeX(0.4f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(0.6f)); + path.lineTo(decodeX(0.0f), decodeY(0.8f)); + path.lineTo(decodeX(0.0f), decodeY(2.8f)); + path.closePath(); + return path; + } + + private Path2D decodePath13() { + path.reset(); + path.moveTo(decodeX(0.2f), decodeY(2.8f)); + path.lineTo(decodeX(0.2f), decodeY(0.8f)); + path.lineTo(decodeX(0.4f), decodeY(0.8f)); + path.lineTo(decodeX(0.6f), decodeY(0.6f)); + path.lineTo(decodeX(0.6f), decodeY(0.4f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.4f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(2.8f)); + path.lineTo(decodeX(0.2f), decodeY(2.8f)); + path.closePath(); + return path; + } + + private Path2D decodePath14() { + path.reset(); + path.moveTo(decodeX(0.4f), decodeY(2.0f)); + path.lineTo(decodeX(0.6f), decodeY(1.1666666f)); + path.lineTo(decodeX(0.8f), decodeY(1.0f)); + path.lineTo(decodeX(2.8f), decodeY(1.0f)); + path.lineTo(decodeX(2.8f), decodeY(2.8f)); + path.lineTo(decodeX(2.4f), decodeY(3.0f)); + path.lineTo(decodeX(0.4f), decodeY(3.0f)); + path.lineTo(decodeX(0.4f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath15() { + path.reset(); + path.moveTo(decodeX(0.6f), decodeY(2.8f)); + path.lineTo(decodeX(0.6f), decodeY(2.0f)); + path.lineTo(decodeX(0.8f), decodeY(1.1666666f)); + path.lineTo(decodeX(2.8f), decodeY(1.1666666f)); + path.lineTo(decodeX(2.6f), decodeY(2.0f)); + path.lineTo(decodeX(2.6f), decodeY(2.8f)); + path.lineTo(decodeX(0.6f), decodeY(2.8f)); + path.closePath(); + return path; + } + + private Path2D decodePath16() { + path.reset(); + path.moveTo(decodeX(1.1702899f), decodeY(1.2536231f)); + path.lineTo(decodeX(1.1666666f), decodeY(1.0615941f)); + path.lineTo(decodeX(3.0f), decodeY(1.0978261f)); + path.lineTo(decodeX(2.7782607f), decodeY(1.25f)); + path.lineTo(decodeX(2.3913045f), decodeY(1.3188406f)); + path.lineTo(decodeX(2.3826087f), decodeY(1.7246377f)); + path.lineTo(decodeX(2.173913f), decodeY(1.9347827f)); + path.lineTo(decodeX(1.8695652f), decodeY(1.923913f)); + path.lineTo(decodeX(1.710145f), decodeY(1.7246377f)); + path.lineTo(decodeX(1.710145f), decodeY(1.3115941f)); + path.lineTo(decodeX(1.1702899f), decodeY(1.2536231f)); + path.closePath(); + return path; + } + + private Path2D decodePath17() { + path.reset(); + path.moveTo(decodeX(1.1666666f), decodeY(1.1666666f)); + path.lineTo(decodeX(1.1666666f), decodeY(0.9130435f)); + path.lineTo(decodeX(1.9456522f), decodeY(0.0f)); + path.lineTo(decodeX(2.0608697f), decodeY(0.0f)); + path.lineTo(decodeX(2.9956522f), decodeY(0.9130435f)); + path.lineTo(decodeX(3.0f), decodeY(1.1666666f)); + path.lineTo(decodeX(2.4f), decodeY(1.1666666f)); + path.lineTo(decodeX(2.4f), decodeY(1.6666667f)); + path.lineTo(decodeX(2.2f), decodeY(1.8333333f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.8333333f)); + path.lineTo(decodeX(1.6666667f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.6666667f), decodeY(1.1666666f)); + path.lineTo(decodeX(1.1666666f), decodeY(1.1666666f)); + path.closePath(); + return path; + } + + private Path2D decodePath18() { + path.reset(); + path.moveTo(decodeX(1.2717391f), decodeY(0.9956522f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.6666667f)); + path.lineTo(decodeX(2.2f), decodeY(1.6666667f)); + path.lineTo(decodeX(2.2f), decodeY(1.0f)); + path.lineTo(decodeX(2.8652174f), decodeY(1.0f)); + path.lineTo(decodeX(2.0f), decodeY(0.13043478f)); + path.lineTo(decodeX(1.2717391f), decodeY(0.9956522f)); + path.closePath(); + return path; + } + + private Path2D decodePath19() { + path.reset(); + path.moveTo(decodeX(1.8333333f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.0f)); + path.lineTo(decodeX(1.3913044f), decodeY(1.0f)); + path.lineTo(decodeX(1.9963768f), decodeY(0.25652176f)); + path.lineTo(decodeX(2.6608696f), decodeY(1.0f)); + path.lineTo(decodeX(2.2f), decodeY(1.0f)); + path.lineTo(decodeX(2.2f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.6666667f)); + path.closePath(); + return path; + } + + private Path2D decodePath20() { + path.reset(); + path.moveTo(decodeX(0.22692308f), decodeY(0.061538465f)); + path.lineTo(decodeX(0.75384617f), decodeY(0.37692308f)); + path.lineTo(decodeX(0.91923076f), decodeY(0.01923077f)); + path.lineTo(decodeX(1.2532052f), decodeY(0.40769228f)); + path.lineTo(decodeX(1.7115386f), decodeY(0.13846155f)); + path.lineTo(decodeX(1.6923077f), decodeY(0.85f)); + path.lineTo(decodeX(2.169231f), decodeY(0.9115385f)); + path.lineTo(decodeX(1.7852564f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.9166667f), decodeY(1.9679487f)); + path.lineTo(decodeX(1.3685898f), decodeY(1.8301282f)); + path.lineTo(decodeX(1.1314102f), decodeY(2.2115386f)); + path.lineTo(decodeX(0.63076925f), decodeY(1.8205128f)); + path.lineTo(decodeX(0.22692308f), decodeY(1.9262822f)); + path.lineTo(decodeX(0.31153846f), decodeY(1.4871795f)); + path.lineTo(decodeX(0.0f), decodeY(1.1538461f)); + path.lineTo(decodeX(0.38461536f), decodeY(0.68076926f)); + path.lineTo(decodeX(0.22692308f), decodeY(0.061538465f)); + path.closePath(); + return path; + } + + private Path2D decodePath21() { + path.reset(); + path.moveTo(decodeX(0.23461537f), decodeY(0.33076924f)); + path.lineTo(decodeX(0.32692307f), decodeY(0.21538463f)); + path.lineTo(decodeX(0.9653846f), decodeY(0.74615383f)); + path.lineTo(decodeX(1.0160257f), decodeY(0.01923077f)); + path.lineTo(decodeX(1.1506411f), decodeY(0.01923077f)); + path.lineTo(decodeX(1.2275641f), decodeY(0.72307694f)); + path.lineTo(decodeX(1.6987178f), decodeY(0.20769231f)); + path.lineTo(decodeX(1.8237178f), decodeY(0.37692308f)); + path.lineTo(decodeX(1.3878205f), decodeY(0.94230765f)); + path.lineTo(decodeX(1.9775641f), decodeY(1.0256411f)); + path.lineTo(decodeX(1.9839742f), decodeY(1.1474359f)); + path.lineTo(decodeX(1.4070512f), decodeY(1.2083334f)); + path.lineTo(decodeX(1.7980769f), decodeY(1.7307692f)); + path.lineTo(decodeX(1.7532051f), decodeY(1.8269231f)); + path.lineTo(decodeX(1.2211539f), decodeY(1.3365384f)); + path.lineTo(decodeX(1.1506411f), decodeY(1.9839742f)); + path.lineTo(decodeX(1.0288461f), decodeY(1.9775641f)); + path.lineTo(decodeX(0.95384616f), decodeY(1.3429488f)); + path.lineTo(decodeX(0.28846154f), decodeY(1.8012822f)); + path.lineTo(decodeX(0.20769231f), decodeY(1.7371795f)); + path.lineTo(decodeX(0.75f), decodeY(1.173077f)); + path.lineTo(decodeX(0.011538462f), decodeY(1.1634616f)); + path.lineTo(decodeX(0.015384616f), decodeY(1.0224359f)); + path.lineTo(decodeX(0.79615384f), decodeY(0.94230765f)); + path.lineTo(decodeX(0.23461537f), decodeY(0.33076924f)); + path.closePath(); + return path; + } + + private Path2D decodePath22() { + path.reset(); + path.moveTo(decodeX(0.58461535f), decodeY(0.6615385f)); + path.lineTo(decodeX(0.68846154f), decodeY(0.56923074f)); + path.lineTo(decodeX(0.9884615f), decodeY(0.80769235f)); + path.lineTo(decodeX(1.0352564f), decodeY(0.43076926f)); + path.lineTo(decodeX(1.1282052f), decodeY(0.43846154f)); + path.lineTo(decodeX(1.1891025f), decodeY(0.80769235f)); + path.lineTo(decodeX(1.4006411f), decodeY(0.59615386f)); + path.lineTo(decodeX(1.4967948f), decodeY(0.70384616f)); + path.lineTo(decodeX(1.3173077f), decodeY(0.9384615f)); + path.lineTo(decodeX(1.625f), decodeY(1.0256411f)); + path.lineTo(decodeX(1.6282051f), decodeY(1.1346154f)); + path.lineTo(decodeX(1.2564102f), decodeY(1.176282f)); + path.lineTo(decodeX(1.4711539f), decodeY(1.3910257f)); + path.lineTo(decodeX(1.4070512f), decodeY(1.4807693f)); + path.lineTo(decodeX(1.1858975f), decodeY(1.2724359f)); + path.lineTo(decodeX(1.1474359f), decodeY(1.6602564f)); + path.lineTo(decodeX(1.0416666f), decodeY(1.6602564f)); + path.lineTo(decodeX(0.9769231f), decodeY(1.2884616f)); + path.lineTo(decodeX(0.6923077f), decodeY(1.5f)); + path.lineTo(decodeX(0.6423077f), decodeY(1.3782052f)); + path.lineTo(decodeX(0.83076924f), decodeY(1.176282f)); + path.lineTo(decodeX(0.46923074f), decodeY(1.1474359f)); + path.lineTo(decodeX(0.48076925f), decodeY(1.0064102f)); + path.lineTo(decodeX(0.8230769f), decodeY(0.98461545f)); + path.lineTo(decodeX(0.58461535f), decodeY(0.6615385f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect6() { + rect.setRect(decodeX(0.2f), //x + decodeY(0.0f), //y + decodeX(2.8f) - decodeX(0.2f), //width + decodeY(2.2f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect7() { + rect.setRect(decodeX(0.2f), //x + decodeY(2.2f), //y + decodeX(2.8f) - decodeX(0.2f), //width + decodeY(3.0f) - decodeY(2.2f)); //height + return rect; + } + + private Rectangle2D decodeRect8() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.2f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.2f) - decodeY(0.2f)); //height + return rect; + } + + private Path2D decodePath23() { + path.reset(); + path.moveTo(decodeX(0.4f), decodeY(2.2f)); + path.lineTo(decodeX(0.4f), decodeY(2.8f)); + path.lineTo(decodeX(0.6f), decodeY(2.8f)); + path.lineTo(decodeX(0.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.4f), decodeY(2.6f)); + path.lineTo(decodeX(2.4f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(2.2f)); + path.lineTo(decodeX(0.4f), decodeY(2.2f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect9() { + rect.setRect(decodeX(0.6f), //x + decodeY(2.8f), //y + decodeX(1.6666667f) - decodeX(0.6f), //width + decodeY(3.0f) - decodeY(2.8f)); //height + return rect; + } + + private Rectangle2D decodeRect10() { + rect.setRect(decodeX(1.8333333f), //x + decodeY(2.8f), //y + decodeX(2.4f) - decodeX(1.8333333f), //width + decodeY(3.0f) - decodeY(2.8f)); //height + return rect; + } + + private Ellipse2D decodeEllipse1() { + ellipse.setFrame(decodeX(0.6f), //x + decodeY(2.4f), //y + decodeX(0.8f) - decodeX(0.6f), //width + decodeY(2.6f) - decodeY(2.4f)); //height + return ellipse; + } + + private Path2D decodePath24() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(1.0f, 1.0f), decodeAnchorY(0.4000000059604645f, -1.0f), decodeAnchorX(2.0f, -1.0f), decodeAnchorY(0.4000000059604645f, -1.0f), decodeX(2.0f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.0f, 1.0f), decodeAnchorY(0.4000000059604645f, 1.0f), decodeAnchorX(2.200000047683716f, 0.0f), decodeAnchorY(1.0f, -1.0f), decodeX(2.2f), decodeY(1.0f)); + path.curveTo(decodeAnchorX(2.200000047683716f, 0.0f), decodeAnchorY(1.0f, 1.0f), decodeAnchorX(2.200000047683716f, 0.0f), decodeAnchorY(1.5f, -2.0f), decodeX(2.2f), decodeY(1.5f)); + path.curveTo(decodeAnchorX(2.200000047683716f, 0.0f), decodeAnchorY(1.5f, 2.0f), decodeAnchorX(1.6666667461395264f, 1.0f), decodeAnchorY(1.8333332538604736f, 0.0f), decodeX(1.6666667f), decodeY(1.8333333f)); + path.curveTo(decodeAnchorX(1.6666667461395264f, -1.0f), decodeAnchorY(1.8333332538604736f, 0.0f), decodeAnchorX(1.3333333730697632f, 1.0f), decodeAnchorY(1.8333332538604736f, 0.0f), decodeX(1.3333334f), decodeY(1.8333333f)); + path.curveTo(decodeAnchorX(1.3333333730697632f, -1.0f), decodeAnchorY(1.8333332538604736f, 0.0f), decodeAnchorX(0.800000011920929f, 0.0f), decodeAnchorY(1.5f, 2.0f), decodeX(0.8f), decodeY(1.5f)); + path.curveTo(decodeAnchorX(0.800000011920929f, 0.0f), decodeAnchorY(1.5f, -2.0f), decodeAnchorX(0.800000011920929f, 0.0f), decodeAnchorY(1.0f, 1.0f), decodeX(0.8f), decodeY(1.0f)); + path.curveTo(decodeAnchorX(0.800000011920929f, 0.0f), decodeAnchorY(1.0f, -1.0f), decodeAnchorX(1.0f, -1.0f), decodeAnchorY(0.4000000059604645f, 1.0f), decodeX(1.0f), decodeY(0.4f)); + path.closePath(); + return path; + } + + private Ellipse2D decodeEllipse2() { + ellipse.setFrame(decodeX(0.6f), //x + decodeY(0.2f), //y + decodeX(0.8f) - decodeX(0.6f), //width + decodeY(0.4f) - decodeY(0.2f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse3() { + ellipse.setFrame(decodeX(2.2f), //x + decodeY(0.2f), //y + decodeX(2.4f) - decodeX(2.2f), //width + decodeY(0.4f) - decodeY(0.2f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse4() { + ellipse.setFrame(decodeX(2.2f), //x + decodeY(1.0f), //y + decodeX(2.4f) - decodeX(2.2f), //width + decodeY(1.1666666f) - decodeY(1.0f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse5() { + ellipse.setFrame(decodeX(2.2f), //x + decodeY(1.6666667f), //y + decodeX(2.4f) - decodeX(2.2f), //width + decodeY(1.8333333f) - decodeY(1.6666667f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse6() { + ellipse.setFrame(decodeX(0.6f), //x + decodeY(1.6666667f), //y + decodeX(0.8f) - decodeX(0.6f), //width + decodeY(1.8333333f) - decodeY(1.6666667f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse7() { + ellipse.setFrame(decodeX(0.6f), //x + decodeY(1.0f), //y + decodeX(0.8f) - decodeX(0.6f), //width + decodeY(1.1666666f) - decodeY(1.0f)); //height + return ellipse; + } + + private Rectangle2D decodeRect11() { + rect.setRect(decodeX(0.8f), //x + decodeY(2.2f), //y + decodeX(1.0f) - decodeX(0.8f), //width + decodeY(2.6f) - decodeY(2.2f)); //height + return rect; + } + + private Rectangle2D decodeRect12() { + rect.setRect(decodeX(1.1666666f), //x + decodeY(2.2f), //y + decodeX(1.3333334f) - decodeX(1.1666666f), //width + decodeY(2.6f) - decodeY(2.2f)); //height + return rect; + } + + private Rectangle2D decodeRect13() { + rect.setRect(decodeX(1.5f), //x + decodeY(2.2f), //y + decodeX(1.6666667f) - decodeX(1.5f), //width + decodeY(2.6f) - decodeY(2.2f)); //height + return rect; + } + + private Path2D decodePath25() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.2f)); + path.lineTo(decodeX(0.2f), decodeY(0.0f)); + path.lineTo(decodeX(2.6f), decodeY(0.0f)); + path.lineTo(decodeX(3.0f), decodeY(0.4f)); + path.lineTo(decodeX(3.0f), decodeY(2.8f)); + path.lineTo(decodeX(2.8f), decodeY(3.0f)); + path.lineTo(decodeX(0.2f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.8f)); + path.lineTo(decodeX(0.0f), decodeY(0.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath26() { + path.reset(); + path.moveTo(decodeX(0.2f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.2f)); + path.lineTo(decodeX(2.4f), decodeY(0.2f)); + path.lineTo(decodeX(2.8f), decodeY(0.6f)); + path.lineTo(decodeX(2.8f), decodeY(2.8f)); + path.lineTo(decodeX(0.2f), decodeY(2.8f)); + path.lineTo(decodeX(0.2f), decodeY(0.4f)); + path.closePath(); + return path; + } + + private Path2D decodePath27() { + path.reset(); + path.moveTo(decodeX(0.8f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.0f), decodeY(1.5f)); + path.lineTo(decodeX(2.0f), decodeY(1.5f)); + path.lineTo(decodeX(2.2f), decodeY(1.6666667f)); + path.lineTo(decodeX(2.2f), decodeY(2.6f)); + path.lineTo(decodeX(0.8f), decodeY(2.6f)); + path.lineTo(decodeX(0.8f), decodeY(1.6666667f)); + path.closePath(); + return path; + } + + private Path2D decodePath28() { + path.reset(); + path.moveTo(decodeX(1.1666666f), decodeY(0.2f)); + path.lineTo(decodeX(1.1666666f), decodeY(1.1666666f)); + path.lineTo(decodeX(2.2f), decodeY(1.1666666f)); + path.lineTo(decodeX(2.2f), decodeY(0.4f)); + path.lineTo(decodeX(2.0f), decodeY(0.4f)); + path.lineTo(decodeX(2.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.6666667f), decodeY(1.0f)); + path.lineTo(decodeX(1.6666667f), decodeY(0.4f)); + path.lineTo(decodeX(2.2f), decodeY(0.4f)); + path.lineTo(decodeX(2.2f), decodeY(0.2f)); + path.lineTo(decodeX(1.1666666f), decodeY(0.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath29() { + path.reset(); + path.moveTo(decodeX(0.8f), decodeY(0.2f)); + path.lineTo(decodeX(1.0f), decodeY(0.2f)); + path.lineTo(decodeX(1.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.3333334f), decodeY(1.0f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.2f)); + path.lineTo(decodeX(1.5f), decodeY(0.2f)); + path.lineTo(decodeX(1.5f), decodeY(1.0f)); + path.lineTo(decodeX(1.6666667f), decodeY(1.0f)); + path.lineTo(decodeX(1.6666667f), decodeY(1.1666666f)); + path.lineTo(decodeX(0.8f), decodeY(1.1666666f)); + path.lineTo(decodeX(0.8f), decodeY(0.2f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect14() { + rect.setRect(decodeX(0.8f), //x + decodeY(2.6f), //y + decodeX(2.2f) - decodeX(0.8f), //width + decodeY(2.8f) - decodeY(2.6f)); //height + return rect; + } + + private Rectangle2D decodeRect15() { + rect.setRect(decodeX(0.36153847f), //x + decodeY(2.3576922f), //y + decodeX(0.63461536f) - decodeX(0.36153847f), //width + decodeY(2.6807692f) - decodeY(2.3576922f)); //height + return rect; + } + + private Rectangle2D decodeRect16() { + rect.setRect(decodeX(2.376923f), //x + decodeY(2.3807693f), //y + decodeX(2.6384616f) - decodeX(2.376923f), //width + decodeY(2.6846154f) - decodeY(2.3807693f)); //height + return rect; + } + + private Rectangle2D decodeRect17() { + rect.setRect(decodeX(0.4f), //x + decodeY(2.4f), //y + decodeX(0.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(2.4f)); //height + return rect; + } + + private Rectangle2D decodeRect18() { + rect.setRect(decodeX(2.4f), //x + decodeY(2.4f), //y + decodeX(2.6f) - decodeX(2.4f), //width + decodeY(2.6f) - decodeY(2.4f)); //height + return rect; + } + + private Path2D decodePath30() { + path.reset(); + path.moveTo(decodeX(0.4f), decodeY(1.5f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(2.8f)); + path.lineTo(decodeX(2.4f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(1.5f)); + path.lineTo(decodeX(0.4f), decodeY(1.5f)); + path.closePath(); + return path; + } + + private Path2D decodePath31() { + path.reset(); + path.moveTo(decodeX(0.6f), decodeY(1.5f)); + path.lineTo(decodeX(0.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.4f), decodeY(2.6f)); + path.lineTo(decodeX(2.4f), decodeY(1.5f)); + path.lineTo(decodeX(1.5f), decodeY(0.8f)); + path.lineTo(decodeX(0.6f), decodeY(1.5f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect19() { + rect.setRect(decodeX(1.6666667f), //x + decodeY(1.6666667f), //y + decodeX(2.2f) - decodeX(1.6666667f), //width + decodeY(2.2f) - decodeY(1.6666667f)); //height + return rect; + } + + private Rectangle2D decodeRect20() { + rect.setRect(decodeX(1.8333333f), //x + decodeY(1.8333333f), //y + decodeX(2.0f) - decodeX(1.8333333f), //width + decodeY(2.0f) - decodeY(1.8333333f)); //height + return rect; + } + + private Path2D decodePath32() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(2.8f)); + path.lineTo(decodeX(1.5f), decodeY(2.8f)); + path.lineTo(decodeX(1.5f), decodeY(1.8333333f)); + path.lineTo(decodeX(1.3333334f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.1666666f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.0f), decodeY(1.8333333f)); + path.lineTo(decodeX(1.0f), decodeY(2.8f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect21() { + rect.setRect(decodeX(1.1666666f), //x + decodeY(1.8333333f), //y + decodeX(1.3333334f) - decodeX(1.1666666f), //width + decodeY(2.6f) - decodeY(1.8333333f)); //height + return rect; + } + + private Path2D decodePath33() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(1.3333334f)); + path.lineTo(decodeX(0.0f), decodeY(1.6666667f)); + path.lineTo(decodeX(0.4f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.3974359f), decodeY(0.6f)); + path.lineTo(decodeX(1.596154f), decodeY(0.6f)); + path.lineTo(decodeX(2.6f), decodeY(1.6666667f)); + path.lineTo(decodeX(3.0f), decodeY(1.6666667f)); + path.lineTo(decodeX(3.0f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.6666667f), decodeY(0.0f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(1.3333334f)); + path.closePath(); + return path; + } + + private Path2D decodePath34() { + path.reset(); + path.moveTo(decodeX(0.2576923f), decodeY(1.3717948f)); + path.lineTo(decodeX(0.2f), decodeY(1.5f)); + path.lineTo(decodeX(0.3230769f), decodeY(1.4711539f)); + path.lineTo(decodeX(1.4006411f), decodeY(0.40384617f)); + path.lineTo(decodeX(1.5929487f), decodeY(0.4f)); + path.lineTo(decodeX(2.6615386f), decodeY(1.4615384f)); + path.lineTo(decodeX(2.8f), decodeY(1.5f)); + path.lineTo(decodeX(2.7461538f), decodeY(1.3653846f)); + path.lineTo(decodeX(1.6089742f), decodeY(0.19615385f)); + path.lineTo(decodeX(1.4070512f), decodeY(0.2f)); + path.lineTo(decodeX(0.2576923f), decodeY(1.3717948f)); + path.closePath(); + return path; + } + + private Path2D decodePath35() { + path.reset(); + path.moveTo(decodeX(0.6f), decodeY(1.5f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(1.1666666f)); + path.lineTo(decodeX(1.0f), decodeY(1.6666667f)); + path.lineTo(decodeX(0.6f), decodeY(1.6666667f)); + path.lineTo(decodeX(0.6f), decodeY(1.5f)); + path.closePath(); + return path; + } + + private Path2D decodePath36() { + path.reset(); + path.moveTo(decodeX(1.6666667f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(1.1666666f)); + path.lineTo(decodeX(2.0f), decodeY(1.6666667f)); + path.lineTo(decodeX(2.4f), decodeY(1.6666667f)); + path.lineTo(decodeX(2.4f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.6666667f), decodeY(0.6f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect22() { + rect.setRect(decodeX(0.2f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.2f), //width + decodeY(2.8f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect23() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.2f), //y + decodeX(2.8f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.2f)); //height + return rect; + } + + private Rectangle2D decodeRect24() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.6f), //y + decodeX(1.3333334f) - decodeX(1.0f), //width + decodeY(0.8f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect25() { + rect.setRect(decodeX(1.5f), //x + decodeY(1.3333334f), //y + decodeX(2.4f) - decodeX(1.5f), //width + decodeY(1.5f) - decodeY(1.3333334f)); //height + return rect; + } + + private Rectangle2D decodeRect26() { + rect.setRect(decodeX(1.5f), //x + decodeY(2.0f), //y + decodeX(2.4f) - decodeX(1.5f), //width + decodeY(2.2f) - decodeY(2.0f)); //height + return rect; + } + + private Ellipse2D decodeEllipse8() { + ellipse.setFrame(decodeX(0.6f), //x + decodeY(0.8f), //y + decodeX(2.2f) - decodeX(0.6f), //width + decodeY(2.4f) - decodeY(0.8f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse9() { + ellipse.setFrame(decodeX(0.8f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(0.8f), //width + decodeY(2.2f) - decodeY(1.0f)); //height + return ellipse; + } + + private Path2D decodePath37() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(2.8f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.4f), decodeY(3.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.2f)); + path.lineTo(decodeX(0.8f), decodeY(1.8333333f)); + path.lineTo(decodeX(0.0f), decodeY(2.8f)); + path.closePath(); + return path; + } + + private Path2D decodePath38() { + path.reset(); + path.moveTo(decodeX(0.1826087f), decodeY(2.7217393f)); + path.lineTo(decodeX(0.2826087f), decodeY(2.8217392f)); + path.lineTo(decodeX(1.0181159f), decodeY(2.095652f)); + path.lineTo(decodeX(0.9130435f), decodeY(1.9891305f)); + path.lineTo(decodeX(0.1826087f), decodeY(2.7217393f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect27() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.3333334f), //y + decodeX(1.3333334f) - decodeX(1.0f), //width + decodeY(1.5f) - decodeY(1.3333334f)); //height + return rect; + } + + private Rectangle2D decodeRect28() { + rect.setRect(decodeX(1.5f), //x + decodeY(1.3333334f), //y + decodeX(1.8333333f) - decodeX(1.5f), //width + decodeY(1.5f) - decodeY(1.3333334f)); //height + return rect; + } + + private Rectangle2D decodeRect29() { + rect.setRect(decodeX(1.5f), //x + decodeY(1.6666667f), //y + decodeX(1.8333333f) - decodeX(1.5f), //width + decodeY(1.8333333f) - decodeY(1.6666667f)); //height + return rect; + } + + private Rectangle2D decodeRect30() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.6666667f), //y + decodeX(1.3333334f) - decodeX(1.0f), //width + decodeY(1.8333333f) - decodeY(1.6666667f)); //height + return rect; + } + + private Rectangle2D decodeRect31() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(2.8f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect32() { + rect.setRect(decodeX(0.2f), //x + decodeY(0.2f), //y + decodeX(2.8f) - decodeX(0.2f), //width + decodeY(2.6f) - decodeY(0.2f)); //height + return rect; + } + + private Rectangle2D decodeRect33() { + rect.setRect(decodeX(0.8f), //x + decodeY(0.6f), //y + decodeX(1.1666666f) - decodeX(0.8f), //width + decodeY(0.8f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect34() { + rect.setRect(decodeX(1.3333334f), //x + decodeY(0.6f), //y + decodeX(2.2f) - decodeX(1.3333334f), //width + decodeY(0.8f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect35() { + rect.setRect(decodeX(1.3333334f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.3333334f), //width + decodeY(1.1666666f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect36() { + rect.setRect(decodeX(0.8f), //x + decodeY(1.0f), //y + decodeX(1.1666666f) - decodeX(0.8f), //width + decodeY(1.1666666f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect37() { + rect.setRect(decodeX(0.8f), //x + decodeY(1.3333334f), //y + decodeX(1.1666666f) - decodeX(0.8f), //width + decodeY(1.5f) - decodeY(1.3333334f)); //height + return rect; + } + + private Rectangle2D decodeRect38() { + rect.setRect(decodeX(1.3333334f), //x + decodeY(1.3333334f), //y + decodeX(2.2f) - decodeX(1.3333334f), //width + decodeY(1.5f) - decodeY(1.3333334f)); //height + return rect; + } + + private Rectangle2D decodeRect39() { + rect.setRect(decodeX(0.8f), //x + decodeY(1.6666667f), //y + decodeX(1.1666666f) - decodeX(0.8f), //width + decodeY(1.8333333f) - decodeY(1.6666667f)); //height + return rect; + } + + private Rectangle2D decodeRect40() { + rect.setRect(decodeX(1.3333334f), //x + decodeY(1.6666667f), //y + decodeX(2.0f) - decodeX(1.3333334f), //width + decodeY(1.8333333f) - decodeY(1.6666667f)); //height + return rect; + } + + private Rectangle2D decodeRect41() { + rect.setRect(decodeX(1.3333334f), //x + decodeY(2.0f), //y + decodeX(2.2f) - decodeX(1.3333334f), //width + decodeY(2.2f) - decodeY(2.0f)); //height + return rect; + } + + private Rectangle2D decodeRect42() { + rect.setRect(decodeX(0.8f), //x + decodeY(2.0f), //y + decodeX(1.1666666f) - decodeX(0.8f), //width + decodeY(2.2f) - decodeY(2.0f)); //height + return rect; + } + + private Rectangle2D decodeRect43() { + rect.setRect(decodeX(0.8f), //x + decodeY(0.8f), //y + decodeX(1.1666666f) - decodeX(0.8f), //width + decodeY(1.0f) - decodeY(0.8f)); //height + return rect; + } + + private Rectangle2D decodeRect44() { + rect.setRect(decodeX(1.3333334f), //x + decodeY(0.8f), //y + decodeX(2.2f) - decodeX(1.3333334f), //width + decodeY(1.0f) - decodeY(0.8f)); //height + return rect; + } + + private Rectangle2D decodeRect45() { + rect.setRect(decodeX(0.8f), //x + decodeY(1.1666666f), //y + decodeX(1.1666666f) - decodeX(0.8f), //width + decodeY(1.3333334f) - decodeY(1.1666666f)); //height + return rect; + } + + private Rectangle2D decodeRect46() { + rect.setRect(decodeX(1.3333334f), //x + decodeY(1.1666666f), //y + decodeX(2.0f) - decodeX(1.3333334f), //width + decodeY(1.3333334f) - decodeY(1.1666666f)); //height + return rect; + } + + private Rectangle2D decodeRect47() { + rect.setRect(decodeX(0.8f), //x + decodeY(1.5f), //y + decodeX(1.1666666f) - decodeX(0.8f), //width + decodeY(1.6666667f) - decodeY(1.5f)); //height + return rect; + } + + private Rectangle2D decodeRect48() { + rect.setRect(decodeX(1.3333334f), //x + decodeY(1.5f), //y + decodeX(2.2f) - decodeX(1.3333334f), //width + decodeY(1.6666667f) - decodeY(1.5f)); //height + return rect; + } + + private Rectangle2D decodeRect49() { + rect.setRect(decodeX(1.3333334f), //x + decodeY(1.8333333f), //y + decodeX(2.0f) - decodeX(1.3333334f), //width + decodeY(2.0f) - decodeY(1.8333333f)); //height + return rect; + } + + private Rectangle2D decodeRect50() { + rect.setRect(decodeX(0.8f), //x + decodeY(1.8333333f), //y + decodeX(1.1666666f) - decodeX(0.8f), //width + decodeY(2.0f) - decodeY(1.8333333f)); //height + return rect; + } + + private Rectangle2D decodeRect51() { + rect.setRect(decodeX(0.8f), //x + decodeY(2.2f), //y + decodeX(1.1666666f) - decodeX(0.8f), //width + decodeY(2.4f) - decodeY(2.2f)); //height + return rect; + } + + private Rectangle2D decodeRect52() { + rect.setRect(decodeX(1.3333334f), //x + decodeY(2.2f), //y + decodeX(2.2f) - decodeX(1.3333334f), //width + decodeY(2.4f) - decodeY(2.2f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.046296295f * w) + x, (0.9675926f * h) + y, (0.4861111f * w) + x, (0.5324074f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color6, + decodeColor(color6,color7,0.5f), + color7}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.04191617f,0.10329342f,0.16467066f,0.24550897f,0.3263473f,0.6631737f,1.0f }, + new Color[] { color11, + decodeColor(color11,color12,0.5f), + color12, + decodeColor(color12,color13,0.5f), + color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color6, + decodeColor(color6,color15,0.5f), + color15}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color19, + decodeColor(color19,color20,0.5f), + color20}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.12724552f,0.25449103f,0.62724555f,1.0f }, + new Color[] { color21, + decodeColor(color21,color22,0.5f), + color22, + decodeColor(color22,color23,0.5f), + color23}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.06392045f,0.1278409f,0.5213069f,0.91477275f }, + new Color[] { color25, + decodeColor(color25,color26,0.5f), + color26, + decodeColor(color26,color27,0.5f), + color27}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.048295453f,0.09659091f,0.5482955f,1.0f }, + new Color[] { color28, + decodeColor(color28,color6,0.5f), + color6, + decodeColor(color6,color15,0.5f), + color15}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color29, + decodeColor(color29,color30,0.5f), + color30}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.06534091f,0.13068181f,0.3096591f,0.48863637f,0.7443182f,1.0f }, + new Color[] { color11, + decodeColor(color11,color12,0.5f), + color12, + decodeColor(color12,color31,0.5f), + color31, + decodeColor(color31,color14,0.5f), + color14}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color33, + decodeColor(color33,color34,0.5f), + color34}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color36, + decodeColor(color36,color37,0.5f), + color37}); + } + + private Paint decodeRadial1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeRadialGradient((0.5f * w) + x, (1.0f * h) + y, 0.53913116f, + new float[] { 0.11290322f,0.17419355f,0.23548387f,0.31129032f,0.38709676f,0.47903225f,0.57096773f }, + new Color[] { color40, + decodeColor(color40,color41,0.5f), + color41, + decodeColor(color41,color41,0.5f), + color41, + decodeColor(color41,color42,0.5f), + color42}); + } + + private Paint decodeGradient13(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color45, + decodeColor(color45,color46,0.5f), + color46}); + } + + private Paint decodeGradient14(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color47, + decodeColor(color47,color48,0.5f), + color48}); + } + + private Paint decodeGradient15(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.3983871f,0.7967742f,0.8983871f,1.0f }, + new Color[] { color51, + decodeColor(color51,color52,0.5f), + color52, + decodeColor(color52,color51,0.5f), + color51}); + } + + private Paint decodeGradient16(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.061290324f,0.12258065f,0.5016129f,0.88064516f,0.9403226f,1.0f }, + new Color[] { color57, + decodeColor(color57,color58,0.5f), + color58, + decodeColor(color58,color59,0.5f), + color59, + decodeColor(color59,color44,0.5f), + color44}); + } + + private Paint decodeGradient17(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.05f,0.1f,0.19193548f,0.28387097f,0.5209677f,0.7580645f,0.87903225f,1.0f }, + new Color[] { color60, + decodeColor(color60,color61,0.5f), + color61, + decodeColor(color61,color62,0.5f), + color62, + decodeColor(color62,color63,0.5f), + color63, + decodeColor(color63,color64,0.5f), + color64}); + } + + private Paint decodeGradient18(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.058064517f,0.090322584f,0.12258065f,0.15645161f,0.19032258f,0.22741935f,0.26451612f,0.31290323f,0.36129034f,0.38225806f,0.4032258f,0.4596774f,0.516129f,0.54193544f,0.56774193f,0.61451614f,0.66129035f,0.70645165f,0.7516129f }, + new Color[] { color65, + decodeColor(color65,color40,0.5f), + color40, + decodeColor(color40,color40,0.5f), + color40, + decodeColor(color40,color65,0.5f), + color65, + decodeColor(color65,color65,0.5f), + color65, + decodeColor(color65,color40,0.5f), + color40, + decodeColor(color40,color40,0.5f), + color40, + decodeColor(color40,color66,0.5f), + color66, + decodeColor(color66,color66,0.5f), + color66, + decodeColor(color66,color40,0.5f), + color40}); + } + + private Paint decodeGradient19(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color67, + decodeColor(color67,color67,0.5f), + color67}); + } + + private Paint decodeGradient20(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color74, + decodeColor(color74,color75,0.5f), + color75}); + } + + private Paint decodeGradient21(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color77, + decodeColor(color77,color78,0.5f), + color78}); + } + + private Paint decodeGradient22(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color79, + decodeColor(color79,color80,0.5f), + color80}); + } + + private Paint decodeGradient23(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color81, + decodeColor(color81,color82,0.5f), + color82}); + } + + private Paint decodeGradient24(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.43076923f * w) + x, (0.37820512f * h) + y, (0.7076923f * w) + x, (0.6730769f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color84, + decodeColor(color84,color85,0.5f), + color85}); + } + + private Paint decodeGradient25(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.63076925f * w) + x, (0.3621795f * h) + y, (0.28846154f * w) + x, (0.73397434f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color84, + decodeColor(color84,color86,0.5f), + color86}); + } + + private Paint decodeGradient26(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color87, + decodeColor(color87,color88,0.5f), + color88}); + } + + private Paint decodeGradient27(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.056818184f,0.11363637f,0.34232956f,0.57102275f,0.7855114f,1.0f }, + new Color[] { color89, + decodeColor(color89,color90,0.5f), + color90, + decodeColor(color90,color91,0.5f), + color91, + decodeColor(color91,color92,0.5f), + color92}); + } + + private Paint decodeGradient28(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.75f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color95, + decodeColor(color95,color96,0.5f), + color96}); + } + + private Paint decodeRadial2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeRadialGradient((0.49223602f * w) + x, (0.9751553f * h) + y, 0.73615754f, + new float[] { 0.0f,0.40625f,1.0f }, + new Color[] { color97, + decodeColor(color97,color98,0.5f), + color98}); + } + + private Paint decodeGradient29(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.0f * w) + x, (0.0f * h) + y, (1.0f * w) + x, (1.0f * h) + y, + new float[] { 0.38352272f,0.4190341f,0.45454547f,0.484375f,0.51420456f }, + new Color[] { color99, + decodeColor(color99,color100,0.5f), + color100, + decodeColor(color100,color101,0.5f), + color101}); + } + + private Paint decodeGradient30(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((1.0f * w) + x, (0.0f * h) + y, (0.0f * w) + x, (1.0f * h) + y, + new float[] { 0.12215909f,0.16051137f,0.19886364f,0.2627841f,0.32670453f,0.43039775f,0.53409094f }, + new Color[] { color102, + decodeColor(color102,color35,0.5f), + color35, + decodeColor(color35,color35,0.5f), + color35, + decodeColor(color35,color103,0.5f), + color103}); + } + + private Paint decodeGradient31(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.038352273f,0.07670455f,0.24289773f,0.4090909f,0.7045455f,1.0f }, + new Color[] { color89, + decodeColor(color89,color90,0.5f), + color90, + decodeColor(color90,color108,0.5f), + color108, + decodeColor(color108,color92,0.5f), + color92}); + } + + private Paint decodeGradient32(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.0f * w) + x, (0.0f * h) + y, (1.0f * w) + x, (1.0f * h) + y, + new float[] { 0.25f,0.33522725f,0.42045453f,0.50142044f,0.5823864f }, + new Color[] { color109, + decodeColor(color109,color110,0.5f), + color110, + decodeColor(color110,color109,0.5f), + color109}); + } + + private Paint decodeGradient33(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.75f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.24147727f,0.48295453f,0.74147725f,1.0f }, + new Color[] { color114, + decodeColor(color114,color115,0.5f), + color115, + decodeColor(color115,color114,0.5f), + color114}); + } + + private Paint decodeGradient34(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.0f * w) + x, (0.0f * h) + y, (1.0f * w) + x, (0.0f * h) + y, + new float[] { 0.0f,0.21732955f,0.4346591f }, + new Color[] { color117, + decodeColor(color117,color118,0.5f), + color118}); + } + + private Paint decodeGradient35(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.0f * w) + x, (0.0f * h) + y, (1.0f * w) + x, (0.0f * h) + y, + new float[] { 0.0f,0.21448864f,0.42897728f,0.7144886f,1.0f }, + new Color[] { color119, + decodeColor(color119,color120,0.5f), + color120, + decodeColor(color120,color119,0.5f), + color119}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/FormattedTextFieldPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/FormattedTextFieldPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,381 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class FormattedTextFieldPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of FormattedTextFieldPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_SELECTED = 3; + static final int BORDER_DISABLED = 4; + static final int BORDER_FOCUSED = 5; + static final int BORDER_ENABLED = 6; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of FormattedTextFieldPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.07995863f, 0.15294117f, 0); + private Color color2 = decodeColor("nimbusLightBackground", 0.0f, 0.0f, 0.0f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.07187897f, 0.06666666f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07826825f, 0.10588235f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07856284f, 0.11372548f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07796818f, 0.09803921f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.0965403f, -0.18431371f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.1048766f, -0.05098039f, 0); + private Color color9 = decodeColor("nimbusLightBackground", 0.6666667f, 0.004901961f, -0.19999999f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10512091f, -0.019607842f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.105344966f, 0.011764705f, 0); + private Color color12 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public FormattedTextFieldPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + case BORDER_DISABLED: paintBorderDisabled(g); break; + case BORDER_FOCUSED: paintBorderFocused(g); break; + case BORDER_ENABLED: paintBorderEnabled(g); break; + + } + } + + protected Object[] getExtendedCacheKeys(JComponent c) { + Object[] extendedCacheKeys = null; + switch(state) { + case BACKGROUND_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + case BORDER_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color9, 0.004901961f, -0.19999999f, 0), + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + case BORDER_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color9, 0.004901961f, -0.19999999f, 0), + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + } + return extendedCacheKeys; + } + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint((Color)componentColors[0]); + g.fill(rect); + + } + + private void paintBackgroundSelected(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color2); + g.fill(rect); + + } + + private void paintBorderDisabled(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color6); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect6(); + g.setPaint(color4); + g.fill(rect); + + } + + private void paintBorderFocused(Graphics2D g) { + rect = decodeRect7(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect11(); + g.setPaint(color11); + g.fill(rect); + path = decodePath1(); + g.setPaint(color12); + g.fill(path); + + } + + private void paintBorderEnabled(Graphics2D g) { + rect = decodeRect7(); + g.setPaint(decodeGradient5(rect)); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect11(); + g.setPaint(color11); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(0.4f), //y + decodeX(2.3333333f) - decodeX(0.6666667f), //width + decodeY(1.0f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.6f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(1.0f), //y + decodeX(1.0f) - decodeX(0.6666667f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect5() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(2.3333333f), //y + decodeX(2.3333333f) - decodeX(0.6666667f), //width + decodeY(2.0f) - decodeY(2.3333333f)); //height + return rect; + } + + private Rectangle2D decodeRect6() { + rect.setRect(decodeX(2.0f), //x + decodeY(1.0f), //y + decodeX(2.3333333f) - decodeX(2.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect7() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(1.0f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect8() { + rect.setRect(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(1.0f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect9() { + rect.setRect(decodeX(0.4f), //x + decodeY(1.0f), //y + decodeX(0.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect10() { + rect.setRect(decodeX(2.4f), //x + decodeY(1.0f), //y + decodeX(2.6f) - decodeX(2.4f), //width + decodeY(2.6f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect11() { + rect.setRect(decodeX(0.6f), //x + decodeY(2.4f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.6f) - decodeY(2.4f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.4f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.5999999046325684f, 0.0f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeAnchorX(2.880000352859497f, 0.09999999999999432f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeX(2.8800004f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.880000352859497f, 0.09999999999999432f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeAnchorX(2.880000352859497f, 0.0f), decodeAnchorY(2.879999876022339f, 0.0f), decodeX(2.8800004f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(0.120000005f)); + path.lineTo(decodeX(2.8800004f), decodeY(0.120000005f)); + path.lineTo(decodeX(2.8800004f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.4f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color5, + decodeColor(color5,color1,0.5f), + color1}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.1625f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1]}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,463 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_MOUSEOVER = 3; + static final int BACKGROUND_PRESSED = 4; + static final int BACKGROUND_ENABLED_WINDOWNOTFOCUSED = 5; + static final int BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED = 6; + static final int BACKGROUND_PRESSED_WINDOWNOTFOCUSED = 7; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusRed", 0.5893519f, -0.75736576f, 0.09411764f, 0); + private Color color2 = decodeColor("nimbusRed", 0.5962963f, -0.71005917f, 0.0f, 0); + private Color color3 = decodeColor("nimbusRed", 0.6005698f, -0.7200287f, -0.015686274f, -122); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.062449392f, 0.07058823f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.0029994324f, -0.38039216f, -185); + private Color color6 = decodeColor("nimbusRed", -0.014814814f, 0.20118344f, -0.4431373f, 0); + private Color color7 = decodeColor("nimbusRed", -2.7342606E-4f, 0.13829035f, -0.039215684f, 0); + private Color color8 = decodeColor("nimbusRed", 6.890595E-4f, -0.36665577f, 0.11764705f, 0); + private Color color9 = decodeColor("nimbusRed", -0.001021713f, 0.101804554f, -0.031372547f, 0); + private Color color10 = decodeColor("nimbusRed", -2.7342606E-4f, 0.13243341f, -0.035294116f, 0); + private Color color11 = decodeColor("nimbusRed", -2.7342606E-4f, 0.002258718f, 0.06666666f, 0); + private Color color12 = decodeColor("nimbusRed", 0.0056530247f, 0.0040003657f, -0.38431373f, -122); + private Color color13 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color14 = decodeColor("nimbusRed", -0.014814814f, 0.20118344f, -0.3882353f, 0); + private Color color15 = decodeColor("nimbusRed", -0.014814814f, 0.20118344f, -0.13333333f, 0); + private Color color16 = decodeColor("nimbusRed", 6.890595E-4f, -0.38929275f, 0.1607843f, 0); + private Color color17 = decodeColor("nimbusRed", 2.537202E-5f, 0.012294531f, 0.043137252f, 0); + private Color color18 = decodeColor("nimbusRed", -2.7342606E-4f, 0.033585668f, 0.039215684f, 0); + private Color color19 = decodeColor("nimbusRed", -2.7342606E-4f, -0.07198727f, 0.14117646f, 0); + private Color color20 = decodeColor("nimbusRed", -0.014814814f, 0.20118344f, 0.0039215684f, -122); + private Color color21 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -140); + private Color color22 = decodeColor("nimbusRed", -0.014814814f, 0.20118344f, -0.49411768f, 0); + private Color color23 = decodeColor("nimbusRed", -0.014814814f, 0.20118344f, -0.20392159f, 0); + private Color color24 = decodeColor("nimbusRed", -0.014814814f, -0.21260965f, 0.019607842f, 0); + private Color color25 = decodeColor("nimbusRed", -0.014814814f, 0.17340565f, -0.09803921f, 0); + private Color color26 = decodeColor("nimbusRed", -0.014814814f, 0.20118344f, -0.10588235f, 0); + private Color color27 = decodeColor("nimbusRed", -0.014814814f, 0.20118344f, -0.04705882f, 0); + private Color color28 = decodeColor("nimbusRed", -0.014814814f, 0.20118344f, -0.31764707f, -122); + private Color color29 = decodeColor("nimbusRed", 0.5962963f, -0.6994788f, -0.07058823f, 0); + private Color color30 = decodeColor("nimbusRed", 0.5962963f, -0.66245294f, -0.23137257f, 0); + private Color color31 = decodeColor("nimbusRed", 0.58518517f, -0.77649516f, 0.21568626f, 0); + private Color color32 = decodeColor("nimbusRed", 0.5962963f, -0.7372781f, 0.10196078f, 0); + private Color color33 = decodeColor("nimbusRed", 0.5962963f, -0.73911506f, 0.12549019f, 0); + private Color color34 = decodeColor("nimbusBlueGrey", 0.0f, -0.027957506f, -0.31764707f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_ENABLED_WINDOWNOTFOCUSED: paintBackgroundEnabledAndWindowNotFocused(g); break; + case BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED: paintBackgroundMouseOverAndWindowNotFocused(g); break; + case BACKGROUND_PRESSED_WINDOWNOTFOCUSED: paintBackgroundPressedAndWindowNotFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color3); + g.fill(path); + path = decodePath2(); + g.setPaint(color4); + g.fill(path); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + roundRect = decodeRoundRect2(); + g.setPaint(color5); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color12); + g.fill(path); + path = decodePath2(); + g.setPaint(color13); + g.fill(path); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + roundRect = decodeRoundRect2(); + g.setPaint(color5); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect4(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color20); + g.fill(path); + path = decodePath2(); + g.setPaint(color13); + g.fill(path); + + } + + private void paintBackgroundPressed(Graphics2D g) { + roundRect = decodeRoundRect2(); + g.setPaint(color21); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color28); + g.fill(path); + path = decodePath2(); + g.setPaint(color13); + g.fill(path); + + } + + private void paintBackgroundEnabledAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + path = decodePath2(); + g.setPaint(color34); + g.fill(path); + + } + + private void paintBackgroundMouseOverAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect2(); + g.setPaint(color5); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect4(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color20); + g.fill(path); + path = decodePath2(); + g.setPaint(color13); + g.fill(path); + + } + + private void paintBackgroundPressedAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect2(); + g.setPaint(color21); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(color28); + g.fill(path); + path = decodePath2(); + g.setPaint(color13); + g.fill(path); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(1.9444444f) - decodeY(1.0f), //height + 8.6f, 8.6f); //rounding + return roundRect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.25f), decodeY(1.7373737f)); + path.lineTo(decodeX(1.3002392f), decodeY(1.794192f)); + path.lineTo(decodeX(1.5047847f), decodeY(1.5909091f)); + path.lineTo(decodeX(1.6842105f), decodeY(1.7954545f)); + path.lineTo(decodeX(1.7595694f), decodeY(1.719697f)); + path.lineTo(decodeX(1.5956938f), decodeY(1.5239899f)); + path.lineTo(decodeX(1.7535884f), decodeY(1.3409091f)); + path.lineTo(decodeX(1.6830144f), decodeY(1.2537879f)); + path.lineTo(decodeX(1.5083733f), decodeY(1.4406565f)); + path.lineTo(decodeX(1.3301436f), decodeY(1.2563131f)); + path.lineTo(decodeX(1.257177f), decodeY(1.3320707f)); + path.lineTo(decodeX(1.4270334f), decodeY(1.5252526f)); + path.lineTo(decodeX(1.25f), decodeY(1.7373737f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(1.257177f), decodeY(1.2828283f)); + path.lineTo(decodeX(1.3217703f), decodeY(1.2133838f)); + path.lineTo(decodeX(1.5f), decodeY(1.4040405f)); + path.lineTo(decodeX(1.673445f), decodeY(1.2108586f)); + path.lineTo(decodeX(1.7440192f), decodeY(1.2853535f)); + path.lineTo(decodeX(1.5669856f), decodeY(1.4709597f)); + path.lineTo(decodeX(1.7488039f), decodeY(1.6527778f)); + path.lineTo(decodeX(1.673445f), decodeY(1.7398989f)); + path.lineTo(decodeX(1.4988039f), decodeY(1.5416667f)); + path.lineTo(decodeX(1.3313397f), decodeY(1.7424242f)); + path.lineTo(decodeX(1.2523923f), decodeY(1.6565657f)); + path.lineTo(decodeX(1.4366028f), decodeY(1.4722222f)); + path.lineTo(decodeX(1.257177f), decodeY(1.2828283f)); + path.closePath(); + return path; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(1.0f), //x + decodeY(1.6111112f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.6111112f), //height + 6.0f, 6.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(1.0526316f), //x + decodeY(1.0530303f), //y + decodeX(1.9473684f) - decodeX(1.0526316f), //width + decodeY(1.8863636f) - decodeY(1.0530303f), //height + 6.75f, 6.75f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect4() { + roundRect.setRoundRect(decodeX(1.0526316f), //x + decodeY(1.0517677f), //y + decodeX(1.9473684f) - decodeX(1.0526316f), //width + decodeY(1.8851011f) - decodeY(1.0517677f), //height + 6.75f, 6.75f); //rounding + return roundRect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color6, + decodeColor(color6,color7,0.5f), + color7}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color8, + decodeColor(color8,color9,0.5f), + color9, + decodeColor(color9,color10,0.5f), + color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color14, + decodeColor(color14,color15,0.5f), + color15}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.81480503f,0.97904193f }, + new Color[] { color16, + decodeColor(color16,color17,0.5f), + color17, + decodeColor(color17,color18,0.5f), + color18, + decodeColor(color18,color19,0.5f), + color19}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color22, + decodeColor(color22,color23,0.5f), + color23}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.81630206f,0.98203593f }, + new Color[] { color24, + decodeColor(color24,color25,0.5f), + color25, + decodeColor(color25,color26,0.5f), + color26, + decodeColor(color26,color27,0.5f), + color27}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color29, + decodeColor(color29,color30,0.5f), + color30}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.24101797f,0.48203593f,0.5838324f,0.6856288f,0.8428144f,1.0f }, + new Color[] { color31, + decodeColor(color31,color32,0.5f), + color32, + decodeColor(color32,color32,0.5f), + color32, + decodeColor(color32,color33,0.5f), + color33}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonWindowNotFocusedState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonWindowNotFocusedState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,51 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonWindowNotFocusedState extends State { + InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonWindowNotFocusedState() { + super("WindowNotFocused"); + } + + @Override protected boolean isInState(JComponent c) { + + Component parent = c; + while (parent.getParent() != null) { + if (parent instanceof JInternalFrame) { + break; + } + parent = parent.getParent(); + } + if (parent instanceof JInternalFrame) { + return !(((JInternalFrame)parent).isSelected()); + } + return false; + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,606 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BACKGROUND_DISABLED = 2; + static final int BACKGROUND_MOUSEOVER = 3; + static final int BACKGROUND_PRESSED = 4; + static final int BACKGROUND_ENABLED_WINDOWNOTFOCUSED = 5; + static final int BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED = 6; + static final int BACKGROUND_PRESSED_WINDOWNOTFOCUSED = 7; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.0029994324f, -0.38039216f, -185); + private Color color2 = decodeColor("nimbusOrange", -0.08377897f, 0.02094239f, -0.40392157f, 0); + private Color color3 = decodeColor("nimbusOrange", 0.0f, 0.0f, 0.0f, 0); + private Color color4 = decodeColor("nimbusOrange", -4.4563413E-4f, -0.48364475f, 0.10588235f, 0); + private Color color5 = decodeColor("nimbusOrange", 0.0f, -0.0050992966f, 0.0039215684f, 0); + private Color color6 = decodeColor("nimbusOrange", 0.0f, -0.12125945f, 0.10588235f, 0); + private Color color7 = decodeColor("nimbusOrange", -0.08377897f, 0.02094239f, -0.40392157f, -106); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color9 = decodeColor("nimbusOrange", 0.5203877f, -0.9376068f, 0.007843137f, 0); + private Color color10 = decodeColor("nimbusOrange", 0.5273321f, -0.8903002f, -0.086274505f, 0); + private Color color11 = decodeColor("nimbusOrange", 0.5273321f, -0.93313926f, 0.019607842f, 0); + private Color color12 = decodeColor("nimbusOrange", 0.53526866f, -0.8995122f, -0.058823526f, 0); + private Color color13 = decodeColor("nimbusOrange", 0.5233639f, -0.8971863f, -0.07843137f, 0); + private Color color14 = decodeColor("nimbusBlueGrey", -0.0808081f, 0.015910469f, -0.40392157f, -216); + private Color color15 = decodeColor("nimbusBlueGrey", -0.003968239f, -0.03760965f, 0.007843137f, 0); + private Color color16 = new Color(255, 200, 0, 255); + private Color color17 = decodeColor("nimbusOrange", -0.08377897f, 0.02094239f, -0.31764707f, 0); + private Color color18 = decodeColor("nimbusOrange", -0.02758849f, 0.02094239f, -0.062745094f, 0); + private Color color19 = decodeColor("nimbusOrange", -4.4563413E-4f, -0.5074419f, 0.1490196f, 0); + private Color color20 = decodeColor("nimbusOrange", 9.745359E-6f, -0.11175901f, 0.07843137f, 0); + private Color color21 = decodeColor("nimbusOrange", 0.0f, -0.09280169f, 0.07843137f, 0); + private Color color22 = decodeColor("nimbusOrange", 0.0f, -0.19002807f, 0.18039215f, 0); + private Color color23 = decodeColor("nimbusOrange", -0.025772434f, 0.02094239f, 0.05098039f, 0); + private Color color24 = decodeColor("nimbusOrange", -0.08377897f, 0.02094239f, -0.4f, 0); + private Color color25 = decodeColor("nimbusOrange", -0.053104125f, 0.02094239f, -0.109803915f, 0); + private Color color26 = decodeColor("nimbusOrange", -0.017887495f, -0.33726656f, 0.039215684f, 0); + private Color color27 = decodeColor("nimbusOrange", -0.018038228f, 0.02094239f, -0.043137252f, 0); + private Color color28 = decodeColor("nimbusOrange", -0.015844189f, 0.02094239f, -0.027450979f, 0); + private Color color29 = decodeColor("nimbusOrange", -0.010274701f, 0.02094239f, 0.015686274f, 0); + private Color color30 = decodeColor("nimbusOrange", -0.08377897f, 0.02094239f, -0.14509803f, -91); + private Color color31 = decodeColor("nimbusOrange", 0.5273321f, -0.87971985f, -0.15686274f, 0); + private Color color32 = decodeColor("nimbusOrange", 0.5273321f, -0.842694f, -0.31764707f, 0); + private Color color33 = decodeColor("nimbusOrange", 0.516221f, -0.9567362f, 0.12941176f, 0); + private Color color34 = decodeColor("nimbusOrange", 0.5222816f, -0.9229352f, 0.019607842f, 0); + private Color color35 = decodeColor("nimbusOrange", 0.5273321f, -0.91751915f, 0.015686274f, 0); + private Color color36 = decodeColor("nimbusOrange", 0.5273321f, -0.9193561f, 0.039215684f, 0); + private Color color37 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.017933726f, -0.32156864f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_ENABLED_WINDOWNOTFOCUSED: paintBackgroundEnabledAndWindowNotFocused(g); break; + case BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED: paintBackgroundMouseOverAndWindowNotFocused(g); break; + case BACKGROUND_PRESSED_WINDOWNOTFOCUSED: paintBackgroundPressedAndWindowNotFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color7); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color8); + g.fill(rect); + + } + + private void paintBackgroundDisabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color14); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color15); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color23); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color8); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + + } + + private void paintBackgroundPressed(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + rect = decodeRect4(); + g.setPaint(color30); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color8); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + + } + + private void paintBackgroundEnabledAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color14); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color37); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + + } + + private void paintBackgroundMouseOverAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color23); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color8); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + + } + + private void paintBackgroundPressedAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + rect = decodeRect4(); + g.setPaint(color30); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color8); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(1.0f), //x + decodeY(1.6111112f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.6111112f), //height + 6.0f, 6.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(1.9444444f) - decodeY(1.0f), //height + 8.6f, 8.6f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(1.0526316f), //x + decodeY(1.0555556f), //y + decodeX(1.9473684f) - decodeX(1.0526316f), //width + decodeY(1.8888888f) - decodeY(1.0555556f), //height + 6.75f, 6.75f); //rounding + return roundRect; + } + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.25f), //x + decodeY(1.6628788f), //y + decodeX(1.75f) - decodeX(1.25f), //width + decodeY(1.7487373f) - decodeY(1.6628788f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(1.2870814f), //x + decodeY(1.6123737f), //y + decodeX(1.7165072f) - decodeX(1.2870814f), //width + decodeY(1.7222222f) - decodeY(1.6123737f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(1.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(1.25f), //x + decodeY(1.6527778f), //y + decodeX(1.7511961f) - decodeX(1.25f), //width + decodeY(1.7828283f) - decodeY(1.6527778f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color4, + decodeColor(color4,color3,0.5f), + color3, + decodeColor(color3,color5,0.5f), + color5, + decodeColor(color5,color6,0.5f), + color6}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color9, + decodeColor(color9,color10,0.5f), + color10}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color11, + decodeColor(color11,color12,0.5f), + color12, + decodeColor(color12,color13,0.5f), + color13, + decodeColor(color13,color10,0.5f), + color10}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color17, + decodeColor(color17,color18,0.5f), + color18}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color19, + decodeColor(color19,color20,0.5f), + color20, + decodeColor(color20,color21,0.5f), + color21, + decodeColor(color21,color22,0.5f), + color22}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color24, + decodeColor(color24,color25,0.5f), + color25}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color26, + decodeColor(color26,color27,0.5f), + color27, + decodeColor(color27,color28,0.5f), + color28, + decodeColor(color28,color29,0.5f), + color29}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color31, + decodeColor(color31,color32,0.5f), + color32}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.78336793f,0.9161677f }, + new Color[] { color33, + decodeColor(color33,color34,0.5f), + color34, + decodeColor(color34,color35,0.5f), + color35, + decodeColor(color35,color36,0.5f), + color36}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonWindowNotFocusedState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonWindowNotFocusedState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,51 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonWindowNotFocusedState extends State { + InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonWindowNotFocusedState() { + super("WindowNotFocused"); + } + + @Override protected boolean isInState(JComponent c) { + + Component parent = c; + while (parent.getParent() != null) { + if (parent instanceof JInternalFrame) { + break; + } + parent = parent.getParent(); + } + if (parent instanceof JInternalFrame) { + return !(((JInternalFrame)parent).isSelected()); + } + return false; + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,1045 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED_WINDOWMAXIMIZED = 1; + static final int BACKGROUND_ENABLED_WINDOWMAXIMIZED = 2; + static final int BACKGROUND_MOUSEOVER_WINDOWMAXIMIZED = 3; + static final int BACKGROUND_PRESSED_WINDOWMAXIMIZED = 4; + static final int BACKGROUND_ENABLED_WINDOWNOTFOCUSED_WINDOWMAXIMIZED = 5; + static final int BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED_WINDOWMAXIMIZED = 6; + static final int BACKGROUND_PRESSED_WINDOWNOTFOCUSED_WINDOWMAXIMIZED = 7; + static final int BACKGROUND_DISABLED = 8; + static final int BACKGROUND_ENABLED = 9; + static final int BACKGROUND_MOUSEOVER = 10; + static final int BACKGROUND_PRESSED = 11; + static final int BACKGROUND_ENABLED_WINDOWNOTFOCUSED = 12; + static final int BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED = 13; + static final int BACKGROUND_PRESSED_WINDOWNOTFOCUSED = 14; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusGreen", 0.43362403f, -0.6792196f, 0.054901958f, 0); + private Color color2 = decodeColor("nimbusGreen", 0.44056845f, -0.631913f, -0.039215684f, 0); + private Color color3 = decodeColor("nimbusGreen", 0.44056845f, -0.67475206f, 0.06666666f, 0); + private Color color4 = new Color(255, 200, 0, 255); + private Color color5 = decodeColor("nimbusGreen", 0.4355179f, -0.6581704f, -0.011764705f, 0); + private Color color6 = decodeColor("nimbusGreen", 0.44484192f, -0.644647f, -0.031372547f, 0); + private Color color7 = decodeColor("nimbusGreen", 0.44484192f, -0.6480447f, 0.0f, 0); + private Color color8 = decodeColor("nimbusGreen", 0.4366002f, -0.6368381f, -0.04705882f, 0); + private Color color9 = decodeColor("nimbusGreen", 0.44484192f, -0.6423572f, -0.05098039f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.062449392f, 0.07058823f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", -0.008547008f, -0.04174325f, -0.0039215684f, -13); + private Color color12 = decodeColor("nimbusBlueGrey", 0.0f, -0.049920253f, 0.031372547f, 0); + private Color color13 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.0029994324f, -0.38039216f, -185); + private Color color14 = decodeColor("nimbusGreen", 0.1627907f, 0.2793296f, -0.6431373f, 0); + private Color color15 = decodeColor("nimbusGreen", 0.025363803f, 0.2454313f, -0.2392157f, 0); + private Color color16 = decodeColor("nimbusGreen", 0.02642706f, -0.3456704f, -0.011764705f, 0); + private Color color17 = decodeColor("nimbusGreen", 0.025363803f, 0.2373128f, -0.23529413f, 0); + private Color color18 = decodeColor("nimbusGreen", 0.025363803f, 0.0655365f, -0.13333333f, 0); + private Color color19 = decodeColor("nimbusGreen", -0.0087068975f, -0.009330213f, -0.32156864f, 0); + private Color color20 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -13); + private Color color21 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -33); + private Color color22 = decodeColor("nimbusGreen", 0.1627907f, 0.2793296f, -0.627451f, 0); + private Color color23 = decodeColor("nimbusGreen", 0.04572721f, 0.2793296f, -0.37254903f, 0); + private Color color24 = decodeColor("nimbusGreen", 0.009822637f, -0.34243205f, 0.054901958f, 0); + private Color color25 = decodeColor("nimbusGreen", 0.010559708f, 0.13167858f, -0.11764705f, 0); + private Color color26 = decodeColor("nimbusGreen", 0.010559708f, 0.12599629f, -0.11372548f, 0); + private Color color27 = decodeColor("nimbusGreen", 0.010559708f, 9.2053413E-4f, -0.011764705f, 0); + private Color color28 = decodeColor("nimbusGreen", 0.015249729f, 0.2793296f, -0.22352943f, -49); + private Color color29 = decodeColor("nimbusGreen", 0.01279068f, 0.2793296f, -0.19215685f, 0); + private Color color30 = decodeColor("nimbusGreen", 0.013319805f, 0.2793296f, -0.20784315f, 0); + private Color color31 = decodeColor("nimbusGreen", 0.009604409f, 0.2793296f, -0.16862744f, 0); + private Color color32 = decodeColor("nimbusGreen", 0.011600211f, 0.2793296f, -0.15294117f, 0); + private Color color33 = decodeColor("nimbusGreen", 0.011939123f, 0.2793296f, -0.16470587f, 0); + private Color color34 = decodeColor("nimbusGreen", 0.009506017f, 0.257901f, -0.15294117f, 0); + private Color color35 = decodeColor("nimbusGreen", -0.17054264f, -0.7206704f, -0.7019608f, 0); + private Color color36 = decodeColor("nimbusGreen", 0.07804492f, 0.2793296f, -0.47058827f, 0); + private Color color37 = decodeColor("nimbusGreen", 0.03592503f, -0.23865601f, -0.15686274f, 0); + private Color color38 = decodeColor("nimbusGreen", 0.035979107f, 0.23766291f, -0.3254902f, 0); + private Color color39 = decodeColor("nimbusGreen", 0.03690417f, 0.2793296f, -0.33333334f, 0); + private Color color40 = decodeColor("nimbusGreen", 0.09681849f, 0.2793296f, -0.5137255f, 0); + private Color color41 = decodeColor("nimbusGreen", 0.06535478f, 0.2793296f, -0.44705883f, 0); + private Color color42 = decodeColor("nimbusGreen", 0.0675526f, 0.2793296f, -0.454902f, 0); + private Color color43 = decodeColor("nimbusGreen", 0.060800627f, 0.2793296f, -0.4392157f, 0); + private Color color44 = decodeColor("nimbusGreen", 0.06419912f, 0.2793296f, -0.42352942f, 0); + private Color color45 = decodeColor("nimbusGreen", 0.06375685f, 0.2793296f, -0.43137255f, 0); + private Color color46 = decodeColor("nimbusGreen", 0.048207358f, 0.2793296f, -0.3882353f, 0); + private Color color47 = decodeColor("nimbusGreen", 0.057156876f, 0.2793296f, -0.42352942f, 0); + private Color color48 = decodeColor("nimbusGreen", 0.44056845f, -0.62133265f, -0.109803915f, 0); + private Color color49 = decodeColor("nimbusGreen", 0.44056845f, -0.5843068f, -0.27058825f, 0); + private Color color50 = decodeColor("nimbusGreen", 0.4294573f, -0.698349f, 0.17647058f, 0); + private Color color51 = decodeColor("nimbusGreen", 0.45066953f, -0.665394f, 0.07843137f, 0); + private Color color52 = decodeColor("nimbusGreen", 0.44056845f, -0.65913194f, 0.062745094f, 0); + private Color color53 = decodeColor("nimbusGreen", 0.44056845f, -0.6609689f, 0.086274505f, 0); + private Color color54 = decodeColor("nimbusGreen", 0.44056845f, -0.6578432f, 0.04705882f, 0); + private Color color55 = decodeColor("nimbusGreen", 0.4355179f, -0.6633787f, 0.05098039f, 0); + private Color color56 = decodeColor("nimbusGreen", 0.4355179f, -0.664548f, 0.06666666f, 0); + private Color color57 = decodeColor("nimbusBlueGrey", 0.0f, -0.029445238f, -0.30980393f, -13); + private Color color58 = decodeColor("nimbusBlueGrey", 0.0f, -0.027957506f, -0.31764707f, -33); + private Color color59 = decodeColor("nimbusGreen", 0.43202144f, -0.64722407f, -0.007843137f, 0); + private Color color60 = decodeColor("nimbusGreen", 0.44056845f, -0.6339652f, -0.02352941f, 0); + private Color color61 = new Color(165, 169, 176, 255); + private Color color62 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.057128258f, 0.062745094f, 0); + private Color color63 = decodeColor("nimbusBlueGrey", -0.003968239f, -0.035257496f, -0.015686274f, 0); + private Color color64 = new Color(64, 88, 0, 255); + private Color color65 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color66 = decodeColor("nimbusBlueGrey", 0.004830897f, -0.00920473f, 0.14509803f, -101); + private Color color67 = decodeColor("nimbusGreen", 0.009564877f, 0.100521624f, -0.109803915f, 0); + private Color color68 = new Color(113, 125, 0, 255); + private Color color69 = decodeColor("nimbusBlueGrey", 0.0025252104f, -0.0067527294f, 0.086274505f, -65); + private Color color70 = decodeColor("nimbusGreen", 0.03129223f, 0.2793296f, -0.27450982f, 0); + private Color color71 = new Color(19, 48, 0, 255); + private Color color72 = decodeColor("nimbusBlueGrey", 0.0f, -0.029445238f, -0.30980393f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED_WINDOWMAXIMIZED: paintBackgroundDisabledAndWindowMaximized(g); break; + case BACKGROUND_ENABLED_WINDOWMAXIMIZED: paintBackgroundEnabledAndWindowMaximized(g); break; + case BACKGROUND_MOUSEOVER_WINDOWMAXIMIZED: paintBackgroundMouseOverAndWindowMaximized(g); break; + case BACKGROUND_PRESSED_WINDOWMAXIMIZED: paintBackgroundPressedAndWindowMaximized(g); break; + case BACKGROUND_ENABLED_WINDOWNOTFOCUSED_WINDOWMAXIMIZED: paintBackgroundEnabledAndWindowNotFocusedAndWindowMaximized(g); break; + case BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED_WINDOWMAXIMIZED: paintBackgroundMouseOverAndWindowNotFocusedAndWindowMaximized(g); break; + case BACKGROUND_PRESSED_WINDOWNOTFOCUSED_WINDOWMAXIMIZED: paintBackgroundPressedAndWindowNotFocusedAndWindowMaximized(g); break; + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_ENABLED_WINDOWNOTFOCUSED: paintBackgroundEnabledAndWindowNotFocused(g); break; + case BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED: paintBackgroundMouseOverAndWindowNotFocused(g); break; + case BACKGROUND_PRESSED_WINDOWNOTFOCUSED: paintBackgroundPressedAndWindowNotFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabledAndWindowMaximized(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color5); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color6); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color6); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color7); + g.fill(rect); + rect = decodeRect6(); + g.setPaint(color8); + g.fill(rect); + rect = decodeRect7(); + g.setPaint(color9); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(color7); + g.fill(rect); + path = decodePath1(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(color12); + g.fill(path); + + } + + private void paintBackgroundEnabledAndWindowMaximized(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color13); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color19); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color19); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color19); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color19); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(color19); + g.fill(rect); + rect = decodeRect7(); + g.setPaint(color19); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color19); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(color19); + g.fill(rect); + path = decodePath1(); + g.setPaint(color20); + g.fill(path); + path = decodePath2(); + g.setPaint(color21); + g.fill(path); + + } + + private void paintBackgroundMouseOverAndWindowMaximized(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color13); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color28); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color29); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color30); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color31); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(color32); + g.fill(rect); + rect = decodeRect7(); + g.setPaint(color33); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color34); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(color31); + g.fill(rect); + path = decodePath1(); + g.setPaint(color20); + g.fill(path); + path = decodePath2(); + g.setPaint(color21); + g.fill(path); + + } + + private void paintBackgroundPressedAndWindowMaximized(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color13); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color40); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color41); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color42); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color43); + g.fill(rect); + rect = decodeRect6(); + g.setPaint(color44); + g.fill(rect); + rect = decodeRect7(); + g.setPaint(color45); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color46); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(color47); + g.fill(rect); + path = decodePath1(); + g.setPaint(color20); + g.fill(path); + path = decodePath2(); + g.setPaint(color21); + g.fill(path); + + } + + private void paintBackgroundEnabledAndWindowNotFocusedAndWindowMaximized(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient11(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color54); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color55); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(color56); + g.fill(rect); + path = decodePath1(); + g.setPaint(color57); + g.fill(path); + path = decodePath2(); + g.setPaint(color58); + g.fill(path); + + } + + private void paintBackgroundMouseOverAndWindowNotFocusedAndWindowMaximized(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color13); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color28); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color29); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color30); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color31); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(color32); + g.fill(rect); + rect = decodeRect7(); + g.setPaint(color33); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color34); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(color31); + g.fill(rect); + path = decodePath1(); + g.setPaint(color20); + g.fill(path); + path = decodePath2(); + g.setPaint(color21); + g.fill(path); + + } + + private void paintBackgroundPressedAndWindowNotFocusedAndWindowMaximized(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color13); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color40); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color41); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color42); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color43); + g.fill(rect); + rect = decodeRect6(); + g.setPaint(color44); + g.fill(rect); + rect = decodeRect7(); + g.setPaint(color45); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color46); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(color47); + g.fill(rect); + path = decodePath1(); + g.setPaint(color20); + g.fill(path); + path = decodePath2(); + g.setPaint(color21); + g.fill(path); + + } + + private void paintBackgroundDisabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient12(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + path = decodePath3(); + g.setPaint(color61); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient13(path)); + g.fill(path); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color13); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + path = decodePath3(); + g.setPaint(color64); + g.fill(path); + path = decodePath4(); + g.setPaint(color65); + g.fill(path); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color66); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient14(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + path = decodePath3(); + g.setPaint(color68); + g.fill(path); + path = decodePath4(); + g.setPaint(color65); + g.fill(path); + + } + + private void paintBackgroundPressed(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color69); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient15(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + path = decodePath3(); + g.setPaint(color71); + g.fill(path); + path = decodePath4(); + g.setPaint(color65); + g.fill(path); + + } + + private void paintBackgroundEnabledAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient16(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + path = decodePath4(); + g.setPaint(color72); + g.fill(path); + + } + + private void paintBackgroundMouseOverAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color66); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient14(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + path = decodePath3(); + g.setPaint(color68); + g.fill(path); + path = decodePath4(); + g.setPaint(color65); + g.fill(path); + + } + + private void paintBackgroundPressedAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(color69); + g.fill(roundRect); + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient15(roundRect)); + g.fill(roundRect); + rect = decodeRect1(); + g.setPaint(color4); + g.fill(rect); + path = decodePath3(); + g.setPaint(color71); + g.fill(path); + path = decodePath4(); + g.setPaint(color65); + g.fill(path); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(1.9444444f) - decodeY(1.0f), //height + 8.6f, 8.6f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(1.0526316f), //x + decodeY(1.0555556f), //y + decodeX(1.9473684f) - decodeX(1.0526316f), //width + decodeY(1.8888888f) - decodeY(1.0555556f), //height + 6.75f, 6.75f); //rounding + return roundRect; + } + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(1.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(1.2165072f), //x + decodeY(1.2790405f), //y + decodeX(1.6746411f) - decodeX(1.2165072f), //width + decodeY(1.3876263f) - decodeY(1.2790405f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(1.2212919f), //x + decodeY(1.6047981f), //y + decodeX(1.270335f) - decodeX(1.2212919f), //width + decodeY(1.3876263f) - decodeY(1.6047981f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(1.2643541f), //x + decodeY(1.5542929f), //y + decodeX(1.6315789f) - decodeX(1.2643541f), //width + decodeY(1.5997474f) - decodeY(1.5542929f)); //height + return rect; + } + + private Rectangle2D decodeRect5() { + rect.setRect(decodeX(1.6267943f), //x + decodeY(1.3888888f), //y + decodeX(1.673445f) - decodeX(1.6267943f), //width + decodeY(1.6085858f) - decodeY(1.3888888f)); //height + return rect; + } + + private Rectangle2D decodeRect6() { + rect.setRect(decodeX(1.3684211f), //x + decodeY(1.6111112f), //y + decodeX(1.4210527f) - decodeX(1.3684211f), //width + decodeY(1.7777778f) - decodeY(1.6111112f)); //height + return rect; + } + + private Rectangle2D decodeRect7() { + rect.setRect(decodeX(1.4389952f), //x + decodeY(1.7209597f), //y + decodeX(1.7882775f) - decodeX(1.4389952f), //width + decodeY(1.7765152f) - decodeY(1.7209597f)); //height + return rect; + } + + private Rectangle2D decodeRect8() { + rect.setRect(decodeX(1.5645933f), //x + decodeY(1.4078283f), //y + decodeX(1.7870812f) - decodeX(1.5645933f), //width + decodeY(1.5239899f) - decodeY(1.4078283f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.2105263f), decodeY(1.2222222f)); + path.lineTo(decodeX(1.6315789f), decodeY(1.2222222f)); + path.lineTo(decodeX(1.6315789f), decodeY(1.5555556f)); + path.lineTo(decodeX(1.2105263f), decodeY(1.5555556f)); + path.lineTo(decodeX(1.2105263f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.2631578f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.2631578f), decodeY(1.5f)); + path.lineTo(decodeX(1.5789473f), decodeY(1.5f)); + path.lineTo(decodeX(1.5789473f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.2105263f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.2105263f), decodeY(1.2222222f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(1.6842105f), decodeY(1.3888888f)); + path.lineTo(decodeX(1.6842105f), decodeY(1.5f)); + path.lineTo(decodeX(1.7368422f), decodeY(1.5f)); + path.lineTo(decodeX(1.7368422f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.4210527f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.4210527f), decodeY(1.6111112f)); + path.lineTo(decodeX(1.3684211f), decodeY(1.6111112f)); + path.lineTo(decodeX(1.3684211f), decodeY(1.7222222f)); + path.lineTo(decodeX(1.7894738f), decodeY(1.7222222f)); + path.lineTo(decodeX(1.7894738f), decodeY(1.3888888f)); + path.lineTo(decodeX(1.6842105f), decodeY(1.3888888f)); + path.closePath(); + return path; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(1.0f), //x + decodeY(1.6111112f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.6111112f), //height + 6.0f, 6.0f); //rounding + return roundRect; + } + + private Rectangle2D decodeRect9() { + rect.setRect(decodeX(1.3815789f), //x + decodeY(1.6111112f), //y + decodeX(1.4366028f) - decodeX(1.3815789f), //width + decodeY(1.7739899f) - decodeY(1.6111112f)); //height + return rect; + } + + private Rectangle2D decodeRect10() { + rect.setRect(decodeX(1.7918661f), //x + decodeY(1.7752526f), //y + decodeX(1.8349283f) - decodeX(1.7918661f), //width + decodeY(1.4217172f) - decodeY(1.7752526f)); //height + return rect; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(1.1913875f), decodeY(1.2916666f)); + path.lineTo(decodeX(1.1925838f), decodeY(1.7462121f)); + path.lineTo(decodeX(1.8157895f), decodeY(1.7449496f)); + path.lineTo(decodeX(1.819378f), decodeY(1.2916666f)); + path.lineTo(decodeX(1.722488f), decodeY(1.2916666f)); + path.lineTo(decodeX(1.7320573f), decodeY(1.669192f)); + path.lineTo(decodeX(1.2799044f), decodeY(1.6565657f)); + path.lineTo(decodeX(1.284689f), decodeY(1.3863636f)); + path.lineTo(decodeX(1.7260766f), decodeY(1.385101f)); + path.lineTo(decodeX(1.722488f), decodeY(1.2904041f)); + path.lineTo(decodeX(1.1913875f), decodeY(1.2916666f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(1.2105263f), decodeY(1.2222222f)); + path.lineTo(decodeX(1.2105263f), decodeY(1.7222222f)); + path.lineTo(decodeX(1.7894738f), decodeY(1.7222222f)); + path.lineTo(decodeX(1.7894738f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.7368422f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.7368422f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.2631578f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.2631578f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.7894738f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.7894738f), decodeY(1.2222222f)); + path.lineTo(decodeX(1.2105263f), decodeY(1.2222222f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color3, + decodeColor(color3,color2,0.5f), + color2}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color14, + decodeColor(color14,color15,0.5f), + color15}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color16, + decodeColor(color16,color15,0.5f), + color15, + decodeColor(color15,color17,0.5f), + color17, + decodeColor(color17,color18,0.5f), + color18}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color22, + decodeColor(color22,color23,0.5f), + color23}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color24, + decodeColor(color24,color25,0.5f), + color25, + decodeColor(color25,color26,0.5f), + color26, + decodeColor(color26,color27,0.5f), + color27}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color35, + decodeColor(color35,color36,0.5f), + color36}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color37, + decodeColor(color37,color38,0.5f), + color38, + decodeColor(color38,color39,0.5f), + color39, + decodeColor(color39,color18,0.5f), + color18}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color48, + decodeColor(color48,color49,0.5f), + color49}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color50, + decodeColor(color50,color51,0.5f), + color51, + decodeColor(color51,color52,0.5f), + color52, + decodeColor(color52,color53,0.5f), + color53}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.6082097f,0.6766467f,0.83832335f,1.0f }, + new Color[] { color3, + decodeColor(color3,color59,0.5f), + color59, + decodeColor(color59,color60,0.5f), + color60, + decodeColor(color60,color2,0.5f), + color2}); + } + + private Paint decodeGradient13(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.26047903f,0.6302395f,1.0f }, + new Color[] { color62, + decodeColor(color62,color63,0.5f), + color63}); + } + + private Paint decodeGradient14(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color24, + decodeColor(color24,color67,0.5f), + color67, + decodeColor(color67,color25,0.5f), + color25, + decodeColor(color25,color27,0.5f), + color27}); + } + + private Paint decodeGradient15(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.66659296f,0.79341316f,0.8967066f,1.0f }, + new Color[] { color37, + decodeColor(color37,color38,0.5f), + color38, + decodeColor(color38,color39,0.5f), + color39, + decodeColor(color39,color70,0.5f), + color70}); + } + + private Paint decodeGradient16(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.6291678f,0.7185629f,0.8592814f,1.0f }, + new Color[] { color50, + decodeColor(color50,color52,0.5f), + color52, + decodeColor(color52,color52,0.5f), + color52, + decodeColor(color52,color53,0.5f), + color53}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowMaximizedState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowMaximizedState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,51 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowMaximizedState extends State { + InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowMaximizedState() { + super("WindowMaximized"); + } + + @Override protected boolean isInState(JComponent c) { + + Component parent = c; + while (parent.getParent() != null) { + if (parent instanceof JInternalFrame) { + break; + } + parent = parent.getParent(); + } + if (parent instanceof JInternalFrame) { + return ((JInternalFrame)parent).isMaximum(); + } + return false; + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,51 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState extends State { + InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState() { + super("WindowNotFocused"); + } + + @Override protected boolean isInState(JComponent c) { + + Component parent = c; + while (parent.getParent() != null) { + if (parent instanceof JInternalFrame) { + break; + } + parent = parent.getParent(); + } + if (parent instanceof JInternalFrame) { + return !(((JInternalFrame)parent).isSelected()); + } + return false; + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,517 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter to determine which region/state is being painted + //by that instance. + static final int ICON_ENABLED = 1; + static final int ICON_DISABLED = 2; + static final int ICON_MOUSEOVER = 3; + static final int ICON_PRESSED = 4; + static final int ICON_ENABLED_WINDOWNOTFOCUSED = 5; + static final int ICON_MOUSEOVER_WINDOWNOTFOCUSED = 6; + static final int ICON_PRESSED_WINDOWNOTFOCUSED = 7; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.0029994324f, -0.38039216f, -185); + private Color color2 = decodeColor("nimbusBase", 0.08801502f, 0.3642857f, -0.5019608f, 0); + private Color color3 = decodeColor("nimbusBase", 0.030543745f, -0.3835404f, -0.09803924f, 0); + private Color color4 = decodeColor("nimbusBase", 0.029191494f, -0.53801316f, 0.13333333f, 0); + private Color color5 = decodeColor("nimbusBase", 0.030543745f, -0.3857143f, -0.09411767f, 0); + private Color color6 = decodeColor("nimbusBase", 0.030543745f, -0.43148893f, 0.007843137f, 0); + private Color color7 = decodeColor("nimbusBase", 0.029191494f, -0.24935067f, -0.20392159f, -132); + private Color color8 = decodeColor("nimbusBase", 0.029191494f, -0.24935067f, -0.20392159f, 0); + private Color color9 = decodeColor("nimbusBase", 0.029191494f, -0.24935067f, -0.20392159f, -123); + private Color color10 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.0029994324f, -0.38039216f, -208); + private Color color12 = decodeColor("nimbusBase", 0.02551502f, -0.5942635f, 0.20784312f, 0); + private Color color13 = decodeColor("nimbusBase", 0.032459438f, -0.5490091f, 0.12941176f, 0); + private Color color14 = decodeColor("nimbusBase", 0.032459438f, -0.5469569f, 0.11372548f, 0); + private Color color15 = decodeColor("nimbusBase", 0.032459438f, -0.5760128f, 0.23921567f, 0); + private Color color16 = decodeColor("nimbusBase", 0.08801502f, 0.3642857f, -0.4901961f, 0); + private Color color17 = decodeColor("nimbusBase", 0.032459438f, -0.1857143f, -0.23529413f, 0); + private Color color18 = decodeColor("nimbusBase", 0.029191494f, -0.5438224f, 0.17647058f, 0); + private Color color19 = decodeColor("nimbusBase", 0.030543745f, -0.41929638f, -0.02352941f, 0); + private Color color20 = decodeColor("nimbusBase", 0.030543745f, -0.45559007f, 0.082352936f, 0); + private Color color21 = decodeColor("nimbusBase", 0.03409344f, -0.329408f, -0.11372551f, -132); + private Color color22 = decodeColor("nimbusBase", 0.03409344f, -0.329408f, -0.11372551f, 0); + private Color color23 = decodeColor("nimbusBase", 0.03409344f, -0.329408f, -0.11372551f, -123); + private Color color24 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color25 = decodeColor("nimbusBase", 0.031104386f, 0.12354499f, -0.33725494f, 0); + private Color color26 = decodeColor("nimbusBase", 0.032459438f, -0.4592437f, -0.015686274f, 0); + private Color color27 = decodeColor("nimbusBase", 0.029191494f, -0.2579365f, -0.19607845f, 0); + private Color color28 = decodeColor("nimbusBase", 0.03409344f, -0.3149596f, -0.13333336f, 0); + private Color color29 = decodeColor("nimbusBase", 0.029681683f, 0.07857144f, -0.3294118f, -132); + private Color color30 = decodeColor("nimbusBase", 0.029681683f, 0.07857144f, -0.3294118f, 0); + private Color color31 = decodeColor("nimbusBase", 0.029681683f, 0.07857144f, -0.3294118f, -123); + private Color color32 = decodeColor("nimbusBase", 0.032459438f, -0.53637654f, 0.043137252f, 0); + private Color color33 = decodeColor("nimbusBase", 0.032459438f, -0.49935067f, -0.11764708f, 0); + private Color color34 = decodeColor("nimbusBase", 0.021348298f, -0.6133929f, 0.32941175f, 0); + private Color color35 = decodeColor("nimbusBase", 0.042560518f, -0.5804379f, 0.23137254f, 0); + private Color color36 = decodeColor("nimbusBase", 0.032459438f, -0.57417583f, 0.21568626f, 0); + private Color color37 = decodeColor("nimbusBase", 0.027408898f, -0.5784226f, 0.20392156f, -132); + private Color color38 = decodeColor("nimbusBase", 0.042560518f, -0.5665319f, 0.0745098f, 0); + private Color color39 = decodeColor("nimbusBase", 0.036732912f, -0.5642857f, 0.16470587f, -123); + private Color color40 = decodeColor("nimbusBase", 0.021348298f, -0.54480517f, -0.11764708f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case ICON_ENABLED: painticonEnabled(g); break; + case ICON_DISABLED: painticonDisabled(g); break; + case ICON_MOUSEOVER: painticonMouseOver(g); break; + case ICON_PRESSED: painticonPressed(g); break; + case ICON_ENABLED_WINDOWNOTFOCUSED: painticonEnabledAndWindowNotFocused(g); break; + case ICON_MOUSEOVER_WINDOWNOTFOCUSED: painticonMouseOverAndWindowNotFocused(g); break; + case ICON_PRESSED_WINDOWNOTFOCUSED: painticonPressedAndWindowNotFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void painticonEnabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(color10); + g.fill(path); + + } + + private void painticonDisabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color11); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + path = decodePath2(); + g.setPaint(color15); + g.fill(path); + + } + + private void painticonMouseOver(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(color10); + g.fill(path); + + } + + private void painticonPressed(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(decodeGradient10(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(color10); + g.fill(path); + + } + + private void painticonEnabledAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient11(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient12(roundRect)); + g.fill(roundRect); + path = decodePath3(); + g.setPaint(decodeGradient13(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(color40); + g.fill(path); + + } + + private void painticonMouseOverAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(color10); + g.fill(path); + + } + + private void painticonPressedAndWindowNotFocused(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(decodeGradient10(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(color10); + g.fill(path); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(1.0f), //x + decodeY(1.6111112f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.6111112f), //height + 6.0f, 6.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(1.9444444f) - decodeY(1.0f), //height + 8.6f, 8.6f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(1.0526316f), //x + decodeY(1.0555556f), //y + decodeX(1.9473684f) - decodeX(1.0526316f), //width + decodeY(1.8888888f) - decodeY(1.0555556f), //height + 6.75f, 6.75f); //rounding + return roundRect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.3157895f), decodeY(1.4444444f)); + path.lineTo(decodeX(1.6842105f), decodeY(1.4444444f)); + path.lineTo(decodeX(1.5013158f), decodeY(1.7208333f)); + path.lineTo(decodeX(1.3157895f), decodeY(1.4444444f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(1.3157895f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.6842105f), decodeY(1.3333334f)); + path.lineTo(decodeX(1.5f), decodeY(1.6083333f)); + path.lineTo(decodeX(1.3157895f), decodeY(1.3333334f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(1.3157895f), decodeY(1.3888888f)); + path.lineTo(decodeX(1.6842105f), decodeY(1.3888888f)); + path.lineTo(decodeX(1.4952153f), decodeY(1.655303f)); + path.lineTo(decodeX(1.3157895f), decodeY(1.3888888f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color4, + decodeColor(color4,color5,0.5f), + color5, + decodeColor(color5,color3,0.5f), + color3, + decodeColor(color3,color6,0.5f), + color6}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.50714284f * w) + x, (0.095f * h) + y, (0.49285713f * w) + x, (0.91f * h) + y, + new float[] { 0.0f,0.24289773f,0.48579547f,0.74289775f,1.0f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8, + decodeColor(color8,color9,0.5f), + color9}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.31107953f,0.62215906f,0.8110795f,1.0f }, + new Color[] { color12, + decodeColor(color12,color13,0.5f), + color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color16, + decodeColor(color16,color17,0.5f), + color17}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color18, + decodeColor(color18,color19,0.5f), + color19, + decodeColor(color19,color19,0.5f), + color19, + decodeColor(color19,color20,0.5f), + color20}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.50714284f * w) + x, (0.095f * h) + y, (0.49285713f * w) + x, (0.91f * h) + y, + new float[] { 0.0f,0.24289773f,0.48579547f,0.74289775f,1.0f }, + new Color[] { color21, + decodeColor(color21,color22,0.5f), + color22, + decodeColor(color22,color23,0.5f), + color23}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color24, + decodeColor(color24,color25,0.5f), + color25}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color26, + decodeColor(color26,color27,0.5f), + color27, + decodeColor(color27,color27,0.5f), + color27, + decodeColor(color27,color28,0.5f), + color28}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.50714284f * w) + x, (0.095f * h) + y, (0.49285713f * w) + x, (0.91f * h) + y, + new float[] { 0.0f,0.24289773f,0.48579547f,0.74289775f,1.0f }, + new Color[] { color29, + decodeColor(color29,color30,0.5f), + color30, + decodeColor(color30,color31,0.5f), + color31}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.24868421f * w) + x, (0.0014705883f * h) + y, (0.24868421f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color32, + decodeColor(color32,color33,0.5f), + color33}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25441176f * w) + x, (1.0016667f * h) + y, + new float[] { 0.0f,0.26988637f,0.53977275f,0.5951705f,0.6505682f,0.8252841f,1.0f }, + new Color[] { color34, + decodeColor(color34,color35,0.5f), + color35, + decodeColor(color35,color36,0.5f), + color36, + decodeColor(color36,color15,0.5f), + color15}); + } + + private Paint decodeGradient13(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.50714284f * w) + x, (0.095f * h) + y, (0.49285713f * w) + x, (0.91f * h) + y, + new float[] { 0.0f,0.24289773f,0.48579547f,0.74289775f,1.0f }, + new Color[] { color37, + decodeColor(color37,color38,0.5f), + color38, + decodeColor(color38,color39,0.5f), + color39}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonWindowNotFocusedState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonWindowNotFocusedState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,51 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonWindowNotFocusedState extends State { + InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonWindowNotFocusedState() { + super("WindowNotFocused"); + } + + @Override protected boolean isInState(JComponent c) { + + Component parent = c; + while (parent.getParent() != null) { + if (parent instanceof JInternalFrame) { + break; + } + parent = parent.getParent(); + } + if (parent instanceof JInternalFrame) { + return !(((JInternalFrame)parent).isSelected()); + } + return false; + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePanePainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePanePainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,88 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class InternalFrameInternalFrameTitlePanePainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of InternalFrameInternalFrameTitlePanePainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of InternalFrameInternalFrameTitlePanePainter would be created. For the moment at least, + //however, all are created for each instance. + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public InternalFrameInternalFrameTitlePanePainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneWindowFocusedState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneWindowFocusedState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,41 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class InternalFrameInternalFrameTitlePaneWindowFocusedState extends State { + InternalFrameInternalFrameTitlePaneWindowFocusedState() { + super("WindowFocused"); + } + + @Override protected boolean isInState(JComponent c) { + + return c instanceof JInternalFrame && ((JInternalFrame)c).isSelected(); + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFramePainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFramePainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,402 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class InternalFramePainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of InternalFramePainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BACKGROUND_ENABLED_WINDOWFOCUSED = 2; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of InternalFramePainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", 0.032459438f, -0.53637654f, 0.043137252f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.004273474f, -0.039488062f, -0.027450979f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.056339122f, 0.05098039f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.06357796f, 0.09019607f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.0f, -0.023821115f, -0.06666666f, 0); + private Color color6 = decodeColor("control", 0.0f, 0.0f, 0.0f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.07399663f, 0.11372548f, 0); + private Color color8 = decodeColor("nimbusBase", 0.02551502f, -0.47885156f, -0.34901965f, 0); + private Color color9 = new Color(255, 200, 0, 255); + private Color color10 = decodeColor("nimbusBase", 0.004681647f, -0.6274498f, 0.39999998f, 0); + private Color color11 = decodeColor("nimbusBase", 0.032459438f, -0.5934608f, 0.2862745f, 0); + private Color color12 = new Color(204, 207, 213, 255); + private Color color13 = decodeColor("nimbusBase", 0.032459438f, -0.55506915f, 0.18039215f, 0); + private Color color14 = decodeColor("nimbusBase", 0.004681647f, -0.52792984f, 0.10588235f, 0); + private Color color15 = decodeColor("nimbusBase", 0.03801495f, -0.4794643f, -0.04705882f, 0); + private Color color16 = decodeColor("nimbusBase", 0.021348298f, -0.61416256f, 0.3607843f, 0); + private Color color17 = decodeColor("nimbusBase", 0.032459438f, -0.5546332f, 0.17647058f, 0); + private Color color18 = new Color(235, 236, 238, 255); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public InternalFramePainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_ENABLED_WINDOWFOCUSED: paintBackgroundEnabledAndWindowFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + path = decodePath1(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(color3); + g.fill(path); + path = decodePath3(); + g.setPaint(color4); + g.fill(path); + path = decodePath4(); + g.setPaint(color5); + g.fill(path); + rect = decodeRect1(); + g.setPaint(color6); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color7); + g.fill(rect); + + } + + private void paintBackgroundEnabledAndWindowFocused(Graphics2D g) { + roundRect = decodeRoundRect2(); + g.setPaint(color8); + g.fill(roundRect); + path = decodePath5(); + g.setPaint(color9); + g.fill(path); + path = decodePath1(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + path = decodePath6(); + g.setPaint(color12); + g.fill(path); + path = decodePath7(); + g.setPaint(color13); + g.fill(path); + path = decodePath8(); + g.setPaint(color14); + g.fill(path); + path = decodePath9(); + g.setPaint(color15); + g.fill(path); + rect = decodeRect1(); + g.setPaint(color6); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color9); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color9); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color9); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color18); + g.fill(rect); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f), //height + 4.6666665f, 4.6666665f); //rounding + return roundRect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.16666667f), decodeY(0.12f)); + path.curveTo(decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(0.11999999731779099f, -1.0f), decodeAnchorX(0.5f, -1.0f), decodeAnchorY(0.03999999910593033f, 0.0f), decodeX(0.5f), decodeY(0.04f)); + path.curveTo(decodeAnchorX(0.5f, 1.0f), decodeAnchorY(0.03999999910593033f, 0.0f), decodeAnchorX(2.5f, -1.0f), decodeAnchorY(0.03999999910593033f, 0.0f), decodeX(2.5f), decodeY(0.04f)); + path.curveTo(decodeAnchorX(2.5f, 1.0f), decodeAnchorY(0.03999999910593033f, 0.0f), decodeAnchorX(2.8333332538604736f, 0.0f), decodeAnchorY(0.11999999731779099f, -1.0f), decodeX(2.8333333f), decodeY(0.12f)); + path.curveTo(decodeAnchorX(2.8333332538604736f, 0.0f), decodeAnchorY(0.11999999731779099f, 1.0f), decodeAnchorX(2.8333332538604736f, 0.0f), decodeAnchorY(0.9599999785423279f, 0.0f), decodeX(2.8333333f), decodeY(0.96f)); + path.lineTo(decodeX(0.16666667f), decodeY(0.96f)); + path.curveTo(decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(0.9599999785423279f, 0.0f), decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(0.11999999731779099f, 1.0f), decodeX(0.16666667f), decodeY(0.12f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.6666667f), decodeY(0.96f)); + path.lineTo(decodeX(0.16666667f), decodeY(0.96f)); + path.curveTo(decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(0.9599999785423279f, 0.0f), decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(2.5f, -1.0f), decodeX(0.16666667f), decodeY(2.5f)); + path.curveTo(decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(2.5f, 1.0f), decodeAnchorX(0.5f, -1.0f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeX(0.5f), decodeY(2.8333333f)); + path.curveTo(decodeAnchorX(0.5f, 1.0f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeAnchorX(2.5f, -1.0f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeX(2.5f), decodeY(2.8333333f)); + path.curveTo(decodeAnchorX(2.5f, 1.0f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeAnchorX(2.8333332538604736f, 0.0f), decodeAnchorY(2.5f, 1.0f), decodeX(2.8333333f), decodeY(2.5f)); + path.curveTo(decodeAnchorX(2.8333332538604736f, 0.0f), decodeAnchorY(2.5f, -1.0f), decodeAnchorX(2.8333332538604736f, 0.0f), decodeAnchorY(0.9599999785423279f, 0.0f), decodeX(2.8333333f), decodeY(0.96f)); + path.lineTo(decodeX(2.3333333f), decodeY(0.96f)); + path.lineTo(decodeX(2.3333333f), decodeY(2.3333333f)); + path.lineTo(decodeX(0.6666667f), decodeY(2.3333333f)); + path.lineTo(decodeX(0.6666667f), decodeY(0.96f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.8333333f), decodeY(0.96f)); + path.lineTo(decodeX(0.6666667f), decodeY(0.96f)); + path.lineTo(decodeX(0.6666667f), decodeY(2.3333333f)); + path.lineTo(decodeX(2.3333333f), decodeY(2.3333333f)); + path.lineTo(decodeX(2.3333333f), decodeY(0.96f)); + path.lineTo(decodeX(2.1666667f), decodeY(0.96f)); + path.lineTo(decodeX(2.1666667f), decodeY(2.1666667f)); + path.lineTo(decodeX(0.8333333f), decodeY(2.1666667f)); + path.lineTo(decodeX(0.8333333f), decodeY(0.96f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(2.1666667f), decodeY(1.0f)); + path.lineTo(decodeX(1.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.0f)); + path.lineTo(decodeX(2.0f), decodeY(2.0f)); + path.lineTo(decodeX(2.0f), decodeY(1.0f)); + path.lineTo(decodeX(2.1666667f), decodeY(1.0f)); + path.lineTo(decodeX(2.1666667f), decodeY(2.1666667f)); + path.lineTo(decodeX(0.8333333f), decodeY(2.1666667f)); + path.lineTo(decodeX(0.8333333f), decodeY(0.96f)); + path.lineTo(decodeX(2.1666667f), decodeY(0.96f)); + path.lineTo(decodeX(2.1666667f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.33333334f), //x + decodeY(2.6666667f), //y + decodeX(2.6666667f) - decodeX(0.33333334f), //width + decodeY(2.8333333f) - decodeY(2.6666667f)); //height + return rect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f), //height + 4.8333335f, 4.8333335f); //rounding + return roundRect; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(0.16666667f), decodeY(0.08f)); + path.curveTo(decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(0.07999999821186066f, 1.0f), decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(0.07999999821186066f, -1.0f), decodeX(0.16666667f), decodeY(0.08f)); + path.closePath(); + return path; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(0.5f), decodeY(0.96f)); + path.lineTo(decodeX(0.16666667f), decodeY(0.96f)); + path.curveTo(decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(0.9599999785423279f, 0.0f), decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(2.5f, -1.0f), decodeX(0.16666667f), decodeY(2.5f)); + path.curveTo(decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(2.5f, 1.0f), decodeAnchorX(0.5f, -1.0f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeX(0.5f), decodeY(2.8333333f)); + path.curveTo(decodeAnchorX(0.5f, 1.0f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeAnchorX(2.5f, -1.0f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeX(2.5f), decodeY(2.8333333f)); + path.curveTo(decodeAnchorX(2.5f, 1.0f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeAnchorX(2.8333332538604736f, 0.0f), decodeAnchorY(2.5f, 1.0f), decodeX(2.8333333f), decodeY(2.5f)); + path.curveTo(decodeAnchorX(2.8333332538604736f, 0.0f), decodeAnchorY(2.5f, -1.0f), decodeAnchorX(2.8333332538604736f, 0.0f), decodeAnchorY(0.9599999785423279f, 0.0f), decodeX(2.8333333f), decodeY(0.96f)); + path.lineTo(decodeX(2.5f), decodeY(0.96f)); + path.lineTo(decodeX(2.5f), decodeY(2.5f)); + path.lineTo(decodeX(0.5f), decodeY(2.5f)); + path.lineTo(decodeX(0.5f), decodeY(0.96f)); + path.closePath(); + return path; + } + + private Path2D decodePath7() { + path.reset(); + path.moveTo(decodeX(0.6666667f), decodeY(0.96f)); + path.lineTo(decodeX(0.33333334f), decodeY(0.96f)); + path.curveTo(decodeAnchorX(0.3333333432674408f, 0.0f), decodeAnchorY(0.9599999785423279f, 0.0f), decodeAnchorX(0.3333333432674408f, 0.0f), decodeAnchorY(2.3333332538604736f, -1.0f), decodeX(0.33333334f), decodeY(2.3333333f)); + path.curveTo(decodeAnchorX(0.3333333432674408f, 0.0f), decodeAnchorY(2.3333332538604736f, 1.0f), decodeAnchorX(0.6666666865348816f, -1.0f), decodeAnchorY(2.6666667461395264f, 0.0f), decodeX(0.6666667f), decodeY(2.6666667f)); + path.curveTo(decodeAnchorX(0.6666666865348816f, 1.0f), decodeAnchorY(2.6666667461395264f, 0.0f), decodeAnchorX(2.3333332538604736f, -1.0f), decodeAnchorY(2.6666667461395264f, 0.0f), decodeX(2.3333333f), decodeY(2.6666667f)); + path.curveTo(decodeAnchorX(2.3333332538604736f, 1.0f), decodeAnchorY(2.6666667461395264f, 0.0f), decodeAnchorX(2.6666667461395264f, 0.0f), decodeAnchorY(2.3333332538604736f, 1.0f), decodeX(2.6666667f), decodeY(2.3333333f)); + path.curveTo(decodeAnchorX(2.6666667461395264f, 0.0f), decodeAnchorY(2.3333332538604736f, -1.0f), decodeAnchorX(2.6666667461395264f, 0.0f), decodeAnchorY(0.9599999785423279f, 0.0f), decodeX(2.6666667f), decodeY(0.96f)); + path.lineTo(decodeX(2.3333333f), decodeY(0.96f)); + path.lineTo(decodeX(2.3333333f), decodeY(2.3333333f)); + path.lineTo(decodeX(0.6666667f), decodeY(2.3333333f)); + path.lineTo(decodeX(0.6666667f), decodeY(0.96f)); + path.closePath(); + return path; + } + + private Path2D decodePath8() { + path.reset(); + path.moveTo(decodeX(2.3333333f), decodeY(0.96f)); + path.lineTo(decodeX(2.1666667f), decodeY(0.96f)); + path.lineTo(decodeX(2.1666667f), decodeY(2.1666667f)); + path.lineTo(decodeX(0.8333333f), decodeY(2.1666667f)); + path.lineTo(decodeX(0.8333333f), decodeY(0.96f)); + path.lineTo(decodeX(0.6666667f), decodeY(0.96f)); + path.lineTo(decodeX(0.6666667f), decodeY(2.3333333f)); + path.lineTo(decodeX(2.3333333f), decodeY(2.3333333f)); + path.lineTo(decodeX(2.3333333f), decodeY(0.96f)); + path.closePath(); + return path; + } + + private Path2D decodePath9() { + path.reset(); + path.moveTo(decodeX(0.8333333f), decodeY(1.0f)); + path.lineTo(decodeX(0.8333333f), decodeY(2.1666667f)); + path.lineTo(decodeX(2.1666667f), decodeY(2.1666667f)); + path.lineTo(decodeX(2.1666667f), decodeY(0.96f)); + path.lineTo(decodeX(0.8333333f), decodeY(0.96f)); + path.lineTo(decodeX(0.8333333f), decodeY(1.0f)); + path.lineTo(decodeX(2.0f), decodeY(1.0f)); + path.lineTo(decodeX(2.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(1.0f)); + path.lineTo(decodeX(0.8333333f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(0.0f) - decodeX(0.0f), //width + decodeY(0.0f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.33333334f), //x + decodeY(0.08f), //y + decodeX(2.6666667f) - decodeX(0.33333334f), //width + decodeY(0.96f) - decodeY(0.08f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.3203593f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.24251497f,1.0f }, + new Color[] { color16, + decodeColor(color16,color17,0.5f), + color17}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/InternalFrameWindowFocusedState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/InternalFrameWindowFocusedState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,41 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class InternalFrameWindowFocusedState extends State { + InternalFrameWindowFocusedState() { + super("WindowFocused"); + } + + @Override protected boolean isInState(JComponent c) { + + return c instanceof JInternalFrame && ((JInternalFrame)c).isSelected(); + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/MenuBarMenuPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/MenuBarMenuPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,107 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class MenuBarMenuPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of MenuBarMenuPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_SELECTED = 3; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of MenuBarMenuPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", -0.010750473f, -0.04875779f, -0.007843137f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public MenuBarMenuPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundSelected(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/MenuBarPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/MenuBarPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,152 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class MenuBarPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of MenuBarPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BORDER_ENABLED = 2; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of MenuBarPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.0f, -0.07016757f, 0.12941176f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.10255819f, 0.23921567f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", -0.111111104f, -0.10654225f, 0.23921567f, -29); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -255); + private Color color5 = decodeColor("nimbusBorder", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public MenuBarPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BORDER_ENABLED: paintBorderEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + + } + + private void paintBorderEnabled(Graphics2D g) { + rect = decodeRect3(); + g.setPaint(color5); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(1.9523809f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(1.0f), //x + decodeY(2.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(3.0f) - decodeY(2.0f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((1.0f * w) + x, (0.0f * h) + y, (1.0f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.015f,0.03f,0.23354445f,0.7569444f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/MenuItemPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/MenuItemPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,107 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class MenuItemPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of MenuItemPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_MOUSEOVER = 3; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of MenuItemPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusSelection", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public MenuItemPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundMouseOver(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/MenuPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/MenuPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,157 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class MenuPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of MenuPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_ENABLED_SELECTED = 3; + static final int ARROWICON_DISABLED = 4; + static final int ARROWICON_ENABLED = 5; + static final int ARROWICON_ENABLED_SELECTED = 6; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of MenuPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusSelection", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0f, -0.08983666f, -0.17647058f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.09663743f, -0.4627451f, 0); + private Color color4 = new Color(255, 255, 255, 255); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public MenuPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED_SELECTED: paintBackgroundEnabledAndSelected(g); break; + case ARROWICON_DISABLED: paintarrowIconDisabled(g); break; + case ARROWICON_ENABLED: paintarrowIconEnabled(g); break; + case ARROWICON_ENABLED_SELECTED: paintarrowIconEnabledAndSelected(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabledAndSelected(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintarrowIconDisabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color2); + g.fill(path); + + } + + private void paintarrowIconEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color3); + g.fill(path); + + } + + private void paintarrowIconEnabledAndSelected(Graphics2D g) { + path = decodePath2(); + g.setPaint(color4); + g.fill(path); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.2f)); + path.lineTo(decodeX(2.7512195f), decodeY(2.102439f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.9529617f), decodeY(1.5625f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(1.0f)); + path.closePath(); + return path; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/NimbusDefaults.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/NimbusDefaults.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,1793 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import javax.swing.Painter; +import java.awt.Graphics; +import sun.font.FontManager; +import sun.swing.plaf.synth.DefaultSynthStyle; +import javax.swing.BorderFactory; +import javax.swing.JComponent; +import javax.swing.JInternalFrame; +import javax.swing.UIDefaults; +import javax.swing.UIManager; +import javax.swing.plaf.BorderUIResource; +import javax.swing.plaf.ColorUIResource; +import javax.swing.plaf.DimensionUIResource; +import javax.swing.plaf.FontUIResource; +import javax.swing.plaf.InsetsUIResource; +import javax.swing.plaf.synth.Region; +import javax.swing.plaf.synth.SynthStyle; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Graphics2D; +import java.awt.Insets; +import java.awt.image.BufferedImage; +import static java.awt.image.BufferedImage.*; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.lang.ref.WeakReference; +import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.WeakHashMap; +import javax.swing.border.Border; +import javax.swing.plaf.UIResource; + +/** + * This class contains all the implementation details related to + * Nimbus. It contains all the code for initializing the UIDefaults table, + * as well as for selecting + * a SynthStyle based on a JComponent/Region pair. + * + * @author Richard Bair + */ +final class NimbusDefaults { + /** + * The map of SynthStyles. This map is keyed by Region. Each Region maps + * to a List of LazyStyles. Each LazyStyle has a reference to the prefix + * that was registered with it. This reference can then be inspected to see + * if it is the proper lazy style. + *

+ * There can be more than one LazyStyle for a single Region if there is more + * than one prefix defined for a given region. For example, both Button and + * "MyButton" might be prefixes assigned to the Region.Button region. + */ + private Map> m; + /** + * A map of regions which have been registered. + * This mapping is maintained so that the Region can be found based on + * prefix in a very fast manner. This is used in the "matches" method of + * LazyStyle. + */ + private Map registeredRegions = + new HashMap(); + /** + * Our fallback style to avoid NPEs if the proper style cannot be found in + * this class. Not sure if relying on DefaultSynthStyle is the best choice. + */ + private DefaultSynthStyle defaultStyle; + /** + * The default font that will be used. I store this value so that it can be + * set in the UIDefaults when requested. + */ + private FontUIResource defaultFont; + + /** + * Map of lists of derived colors keyed by the DerivedColorKeys + */ + private Map derivedColorsMap = + new HashMap(); + + /** Tempory key used for fetching from the derivedColorsMap */ + private final DerivedColorKey tmpDCKey = new DerivedColorKey(); + + /** Listener for changes to user defaults table */ + private DefaultsListener defaultsListener = new DefaultsListener(); + + /** Called by UIManager when this look and feel is installed. */ + void initialize() { + // add listener for derived colors + UIManager.addPropertyChangeListener(defaultsListener); + UIManager.getDefaults().addPropertyChangeListener(defaultsListener); + } + + /** Called by UIManager when this look and feel is uninstalled. */ + void uninitialize() { + // remove listener for derived colors + UIManager.getDefaults().removePropertyChangeListener(defaultsListener); + UIManager.removePropertyChangeListener(defaultsListener); + } + + /** + * Create a new NimbusDefaults. This constructor is only called from + * within NimbusLookAndFeel. + */ + NimbusDefaults() { + m = new HashMap>(); + + //Create the default font and default style. Also register all of the + //regions and their states that this class will use for later lookup. + //Additional regions can be registered later by 3rd party components. + //These are simply the default registrations. + defaultFont = FontManager.getFontConfigFUIR("sans", Font.PLAIN, 12); + defaultStyle = new DefaultSynthStyle(); + defaultStyle.setFont(defaultFont); + + //initialize the map of styles + register(Region.ARROW_BUTTON, "ArrowButton"); + register(Region.BUTTON, "Button"); + register(Region.TOGGLE_BUTTON, "ToggleButton"); + register(Region.RADIO_BUTTON, "RadioButton"); + register(Region.CHECK_BOX, "CheckBox"); + register(Region.COLOR_CHOOSER, "ColorChooser"); + register(Region.PANEL, "ColorChooser:\"ColorChooser.previewPanelHolder\""); + register(Region.LABEL, "ColorChooser:\"ColorChooser.previewPanelHolder\":\"OptionPane.label\""); + register(Region.COMBO_BOX, "ComboBox"); + register(Region.TEXT_FIELD, "ComboBox:\"ComboBox.textField\""); + register(Region.ARROW_BUTTON, "ComboBox:\"ComboBox.arrowButton\""); + register(Region.LABEL, "ComboBox:\"ComboBox.listRenderer\""); + register(Region.LABEL, "ComboBox:\"ComboBox.renderer\""); + register(Region.SCROLL_PANE, "\"ComboBox.scrollPane\""); + register(Region.FILE_CHOOSER, "FileChooser"); + register(Region.INTERNAL_FRAME_TITLE_PANE, "InternalFrameTitlePane"); + register(Region.INTERNAL_FRAME, "InternalFrame"); + register(Region.INTERNAL_FRAME_TITLE_PANE, "InternalFrame:InternalFrameTitlePane"); + register(Region.BUTTON, "InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\""); + register(Region.BUTTON, "InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\""); + register(Region.BUTTON, "InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\""); + register(Region.BUTTON, "InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\""); + register(Region.DESKTOP_ICON, "DesktopIcon"); + register(Region.DESKTOP_PANE, "DesktopPane"); + register(Region.LABEL, "Label"); + register(Region.LIST, "List"); + register(Region.LABEL, "List:\"List.cellRenderer\""); + register(Region.MENU_BAR, "MenuBar"); + register(Region.MENU, "MenuBar:Menu"); + register(Region.MENU_ITEM_ACCELERATOR, "MenuBar:Menu:MenuItemAccelerator"); + register(Region.MENU_ITEM, "MenuItem"); + register(Region.MENU_ITEM_ACCELERATOR, "MenuItem:MenuItemAccelerator"); + register(Region.RADIO_BUTTON_MENU_ITEM, "RadioButtonMenuItem"); + register(Region.MENU_ITEM_ACCELERATOR, "RadioButtonMenuItem:MenuItemAccelerator"); + register(Region.CHECK_BOX_MENU_ITEM, "CheckBoxMenuItem"); + register(Region.MENU_ITEM_ACCELERATOR, "CheckBoxMenuItem:MenuItemAccelerator"); + register(Region.MENU, "Menu"); + register(Region.MENU_ITEM_ACCELERATOR, "Menu:MenuItemAccelerator"); + register(Region.POPUP_MENU, "PopupMenu"); + register(Region.POPUP_MENU_SEPARATOR, "PopupMenuSeparator"); + register(Region.OPTION_PANE, "OptionPane"); + register(Region.SEPARATOR, "OptionPane:\"OptionPane.separator\""); + register(Region.PANEL, "OptionPane:\"OptionPane.messageArea\""); + register(Region.LABEL, "OptionPane:\"OptionPane.messageArea\":\"OptionPane.label\""); + register(Region.PANEL, "Panel"); + register(Region.PROGRESS_BAR, "ProgressBar"); + register(Region.SEPARATOR, "Separator"); + register(Region.SCROLL_BAR, "ScrollBar"); + register(Region.ARROW_BUTTON, "ScrollBar:\"ScrollBar.button\""); + register(Region.SCROLL_BAR_THUMB, "ScrollBar:ScrollBarThumb"); + register(Region.SCROLL_BAR_TRACK, "ScrollBar:ScrollBarTrack"); + register(Region.SCROLL_PANE, "ScrollPane"); + register(Region.VIEWPORT, "Viewport"); + register(Region.SLIDER, "Slider"); + register(Region.SLIDER_THUMB, "Slider:SliderThumb"); + register(Region.SLIDER_TRACK, "Slider:SliderTrack"); + register(Region.SPINNER, "Spinner"); + register(Region.PANEL, "Spinner:\"Spinner.editor\""); + register(Region.FORMATTED_TEXT_FIELD, "Spinner:Panel:\"Spinner.formattedTextField\""); + register(Region.ARROW_BUTTON, "Spinner:\"Spinner.previousButton\""); + register(Region.ARROW_BUTTON, "Spinner:\"Spinner.nextButton\""); + register(Region.SPLIT_PANE, "SplitPane"); + register(Region.SPLIT_PANE_DIVIDER, "SplitPane:SplitPaneDivider"); + register(Region.TABBED_PANE, "TabbedPane"); + register(Region.TABBED_PANE_TAB, "TabbedPane:TabbedPaneTab"); + register(Region.TABBED_PANE_TAB_AREA, "TabbedPane:TabbedPaneTabArea"); + register(Region.TABBED_PANE_CONTENT, "TabbedPane:TabbedPaneContent"); + register(Region.TABLE, "Table"); + register(Region.LABEL, "Table:\"Table.cellRenderer\""); + register(Region.TABLE_HEADER, "TableHeader"); + register(Region.LABEL, "TableHeader:\"TableHeader.renderer\""); + register(Region.TEXT_FIELD, "\"Table.editor\""); + register(Region.TEXT_FIELD, "\"Tree.cellEditor\""); + register(Region.TEXT_FIELD, "TextField"); + register(Region.FORMATTED_TEXT_FIELD, "FormattedTextField"); + register(Region.PASSWORD_FIELD, "PasswordField"); + register(Region.TEXT_AREA, "TextArea"); + register(Region.TEXT_PANE, "TextPane"); + register(Region.EDITOR_PANE, "EditorPane"); + register(Region.TOOL_BAR, "ToolBar"); + register(Region.BUTTON, "ToolBar:Button"); + register(Region.TOGGLE_BUTTON, "ToolBar:ToggleButton"); + register(Region.TOOL_BAR_SEPARATOR, "ToolBarSeparator"); + register(Region.TOOL_TIP, "ToolTip"); + register(Region.TREE, "Tree"); + register(Region.TREE_CELL, "Tree:TreeCell"); + register(Region.LABEL, "Tree:\"Tree.cellRenderer\""); + register(Region.ROOT_PANE, "RootPane"); + + } + + //--------------- Methods called by NimbusLookAndFeel + + /** + * Called from NimbusLookAndFeel to initialize the UIDefaults. + * + * @param d UIDefaults table to initialize. This will never be null. + * If listeners are attached to d, then you will + * only receive notification of LookAndFeel level defaults, not + * all defaults on the UIManager. + */ + void initializeDefaults(UIDefaults d) { + //Color palette + d.put("text",new ColorUIResource(new Color(0, 0, 0, 255))); + d.put("control",new ColorUIResource(new Color(214, 217, 223, 255))); + d.put("nimbusBase",new ColorUIResource(new Color(51, 98, 140, 255))); + d.put("nimbusBlueGrey",getDerivedColor("nimbusBase",0.032459438f,-0.52518797f,0.19607842f,0)); + d.put("nimbusOrange",new ColorUIResource(new Color(191, 98, 4, 255))); + d.put("nimbusGreen",new ColorUIResource(new Color(176, 179, 50, 255))); + d.put("nimbusRed",new ColorUIResource(new Color(169, 46, 34, 255))); + d.put("nimbusBorder",getDerivedColor("nimbusBlueGrey",0.0f,-0.017358616f,-0.11372548f,0)); + d.put("nimbusSelection",getDerivedColor("nimbusBase",-0.010750473f,-0.04875779f,-0.007843137f,0)); + d.put("nimbusInfoBlue",new ColorUIResource(new Color(47, 92, 180, 255))); + d.put("nimbusAlertYellow",new ColorUIResource(new Color(255, 220, 35, 255))); + d.put("nimbusFocus",new ColorUIResource(new Color(115, 164, 209, 255))); + d.put("nimbusSelectedText",new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("nimbusSelectionBackground",new ColorUIResource(new Color(57, 105, 138, 255))); + d.put("nimbusDisabledText",new ColorUIResource(new Color(142, 143, 145, 255))); + d.put("nimbusLightBackground",new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("infoText",getDerivedColor("text",0.0f,0.0f,0.0f,0)); + d.put("info",new ColorUIResource(new Color(242, 242, 189, 255))); + d.put("menuText",getDerivedColor("text",0.0f,0.0f,0.0f,0)); + d.put("menu",getDerivedColor("nimbusBase",0.021348298f,-0.6150531f,0.39999998f,0)); + d.put("scrollbar",getDerivedColor("nimbusBlueGrey",-0.006944418f,-0.07296763f,0.09019607f,0)); + d.put("controlText",getDerivedColor("text",0.0f,0.0f,0.0f,0)); + d.put("controlHighlight",getDerivedColor("nimbusBlueGrey",0.0f,-0.07333623f,0.20392156f,0)); + d.put("controlLHighlight",getDerivedColor("nimbusBlueGrey",0.0f,-0.098526314f,0.2352941f,0)); + d.put("controlShadow",getDerivedColor("nimbusBlueGrey",-0.0027777553f,-0.0212406f,0.13333333f,0)); + d.put("controlDkShadow",getDerivedColor("nimbusBlueGrey",-0.0027777553f,-0.0018306673f,-0.02352941f,0)); + d.put("textHighlight",getDerivedColor("nimbusSelectionBackground",0.0f,0.0f,0.0f,0)); + d.put("textHighlightText",getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("textInactiveText",getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("desktop",getDerivedColor("nimbusBase",-0.009207249f,-0.13984653f,-0.07450983f,0)); + d.put("activeCaption",getDerivedColor("nimbusBlueGrey",0.0f,-0.049920253f,0.031372547f,0)); + d.put("inactiveCaption",getDerivedColor("nimbusBlueGrey",-0.00505054f,-0.055526316f,0.039215684f,0)); + + //Font palette + d.put("defaultFont", new FontUIResource(defaultFont)); + d.put("InternalFrame.titleFont", new DerivedFont("defaultFont", 1.0f, true, null)); + + //Border palette + + //The global style definition + d.put("textForeground", getDerivedColor("text",0.0f,0.0f,0.0f,0)); + d.put("textBackground", getDerivedColor("nimbusSelectionBackground",0.0f,0.0f,0.0f,0)); + d.put("background", getDerivedColor("control",0.0f,0.0f,0.0f,0)); + d.put("TitledBorder.position", "ABOVE_TOP"); + d.put("FileView.fullRowSelection", Boolean.TRUE); + + //Initialize ArrowButton + d.put("ArrowButton.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("ArrowButton.size", new Integer(16)); + d.put("ArrowButton[Disabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ArrowButtonPainter", ArrowButtonPainter.FOREGROUND_DISABLED, new Insets(0, 0, 0, 0), new Dimension(10, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("ArrowButton[Enabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ArrowButtonPainter", ArrowButtonPainter.FOREGROUND_ENABLED, new Insets(0, 0, 0, 0), new Dimension(10, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + + //Initialize Button + d.put("Button.contentMargins", new InsetsUIResource(6, 14, 6, 14)); + d.put("Button.defaultButtonFollowsFocus", Boolean.FALSE); + d.put("Button[Default].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_DEFAULT, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Default+Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_DEFAULT_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Default+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_MOUSEOVER_DEFAULT, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Default+Focused+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_MOUSEOVER_DEFAULT_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Default+Pressed].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("Button[Default+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_PRESSED_DEFAULT, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Default+Focused+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_PRESSED_DEFAULT_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("Button[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_DISABLED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_ENABLED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_MOUSEOVER, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Focused+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_MOUSEOVER_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_PRESSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Button[Focused+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ButtonPainter", ButtonPainter.BACKGROUND_PRESSED_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + + //Initialize ToggleButton + d.put("ToggleButton.contentMargins", new InsetsUIResource(6, 14, 6, 14)); + d.put("ToggleButton[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("ToggleButton[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_DISABLED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_ENABLED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_MOUSEOVER, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Focused+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_MOUSEOVER_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_PRESSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Focused+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_PRESSED_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_SELECTED, new Insets(7, 7, 7, 7), new Dimension(72, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Focused+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_SELECTED_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(72, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Pressed+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_PRESSED_SELECTED, new Insets(7, 7, 7, 7), new Dimension(72, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Focused+Pressed+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_PRESSED_SELECTED_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(72, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[MouseOver+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_MOUSEOVER_SELECTED, new Insets(7, 7, 7, 7), new Dimension(72, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Focused+MouseOver+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_MOUSEOVER_SELECTED_FOCUSED, new Insets(7, 7, 7, 7), new Dimension(72, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ToggleButton[Disabled+Selected].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("ToggleButton[Disabled+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToggleButtonPainter", ToggleButtonPainter.BACKGROUND_DISABLED_SELECTED, new Insets(7, 7, 7, 7), new Dimension(72, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + + //Initialize RadioButton + d.put("RadioButton.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("RadioButton[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("RadioButton[Disabled].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_DISABLED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Enabled].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Focused].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[MouseOver].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_MOUSEOVER, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Focused+MouseOver].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_MOUSEOVER_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Pressed].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_PRESSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Focused+Pressed].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_PRESSED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_SELECTED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Focused+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_SELECTED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Pressed+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_PRESSED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Focused+Pressed+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_PRESSED_SELECTED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[MouseOver+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_MOUSEOVER_SELECTED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Focused+MouseOver+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_MOUSEOVER_SELECTED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton[Disabled+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonPainter", RadioButtonPainter.ICON_DISABLED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButton.icon", new NimbusIcon("RadioButton", "iconPainter", 18, 18)); + + //Initialize CheckBox + d.put("CheckBox.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("CheckBox[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("CheckBox[Disabled].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_DISABLED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Enabled].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Focused].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[MouseOver].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_MOUSEOVER, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Focused+MouseOver].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_MOUSEOVER_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Pressed].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_PRESSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Focused+Pressed].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_PRESSED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_SELECTED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Focused+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_SELECTED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Pressed+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_PRESSED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Focused+Pressed+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_PRESSED_SELECTED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[MouseOver+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_MOUSEOVER_SELECTED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Focused+MouseOver+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_MOUSEOVER_SELECTED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox[Disabled+Selected].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxPainter", CheckBoxPainter.ICON_DISABLED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(18, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBox.icon", new NimbusIcon("CheckBox", "iconPainter", 18, 18)); + + //Initialize ColorChooser + d.put("ColorChooser.contentMargins", new InsetsUIResource(5, 0, 0, 0)); + d.put("ColorChooser.swatchesDefaultRecentColor", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("ColorChooser:\"ColorChooser.previewPanelHolder\".contentMargins", new InsetsUIResource(0, 5, 10, 5)); + d.put("ColorChooser:\"ColorChooser.previewPanelHolder\":\"OptionPane.label\".contentMargins", new InsetsUIResource(0, 10, 10, 10)); + + //Initialize ComboBox + d.put("ComboBox.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("ComboBox.States", "Enabled,MouseOver,Pressed,Selected,Disabled,Focused,Editable"); + d.put("ComboBox.Editable", new ComboBoxEditableState()); + d.put("ComboBox.forceOpaque", Boolean.TRUE); + d.put("ComboBox.buttonWhenNotEditable", Boolean.TRUE); + d.put("ComboBox.rendererUseListColors", Boolean.FALSE); + d.put("ComboBox.pressedWhenPopupVisible", Boolean.TRUE); + d.put("ComboBox.squareButton", Boolean.FALSE); + d.put("ComboBox.popupInsets", new InsetsUIResource(-2, 2, 0, 2)); + d.put("ComboBox.padding", new InsetsUIResource(3, 3, 3, 3)); + d.put("ComboBox[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_DISABLED, new Insets(8, 9, 8, 19), new Dimension(83, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Disabled+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_DISABLED_PRESSED, new Insets(8, 9, 8, 19), new Dimension(83, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_ENABLED, new Insets(8, 9, 8, 19), new Dimension(83, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_FOCUSED, new Insets(8, 9, 8, 19), new Dimension(83, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Focused+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_MOUSEOVER_FOCUSED, new Insets(8, 9, 8, 19), new Dimension(83, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_MOUSEOVER, new Insets(8, 9, 8, 19), new Dimension(83, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Focused+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_PRESSED_FOCUSED, new Insets(8, 9, 8, 19), new Dimension(83, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_PRESSED, new Insets(8, 9, 8, 19), new Dimension(83, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Enabled+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_ENABLED_SELECTED, new Insets(8, 9, 8, 19), new Dimension(83, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Disabled+Editable].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_DISABLED_EDITABLE, new Insets(6, 5, 6, 17), new Dimension(79, 21), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Editable+Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_ENABLED_EDITABLE, new Insets(6, 5, 6, 17), new Dimension(79, 21), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Editable+Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_FOCUSED_EDITABLE, new Insets(5, 5, 5, 5), new Dimension(142, 27), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Editable+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_MOUSEOVER_EDITABLE, new Insets(4, 5, 5, 17), new Dimension(79, 21), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox[Editable+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxPainter", ComboBoxPainter.BACKGROUND_PRESSED_EDITABLE, new Insets(4, 5, 5, 17), new Dimension(79, 21), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.textField\".contentMargins", new InsetsUIResource(0, 6, 0, 3)); + d.put("ComboBox:\"ComboBox.textField\"[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("ComboBox:\"ComboBox.textField\"[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxTextFieldPainter", ComboBoxComboBoxTextFieldPainter.BACKGROUND_DISABLED, new Insets(5, 3, 3, 1), new Dimension(64, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.textField\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxTextFieldPainter", ComboBoxComboBoxTextFieldPainter.BACKGROUND_ENABLED, new Insets(5, 3, 3, 1), new Dimension(64, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.textField\"[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("ComboBox:\"ComboBox.textField\"[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxTextFieldPainter", ComboBoxComboBoxTextFieldPainter.BACKGROUND_SELECTED, new Insets(5, 3, 3, 1), new Dimension(64, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.arrowButton\".contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("ComboBox:\"ComboBox.arrowButton\".States", "Enabled,MouseOver,Pressed,Disabled,Editable"); + d.put("ComboBox:\"ComboBox.arrowButton\".Editable", new ComboBoxComboBoxArrowButtonEditableState()); + d.put("ComboBox:\"ComboBox.arrowButton\".size", new Integer(19)); + d.put("ComboBox:\"ComboBox.arrowButton\"[Disabled+Editable].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxArrowButtonPainter", ComboBoxComboBoxArrowButtonPainter.BACKGROUND_DISABLED_EDITABLE, new Insets(8, 1, 8, 8), new Dimension(20, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.arrowButton\"[Editable+Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxArrowButtonPainter", ComboBoxComboBoxArrowButtonPainter.BACKGROUND_ENABLED_EDITABLE, new Insets(8, 1, 8, 8), new Dimension(20, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.arrowButton\"[Editable+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxArrowButtonPainter", ComboBoxComboBoxArrowButtonPainter.BACKGROUND_MOUSEOVER_EDITABLE, new Insets(8, 1, 8, 8), new Dimension(20, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.arrowButton\"[Editable+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxArrowButtonPainter", ComboBoxComboBoxArrowButtonPainter.BACKGROUND_PRESSED_EDITABLE, new Insets(8, 1, 8, 8), new Dimension(20, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.arrowButton\"[Editable+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxArrowButtonPainter", ComboBoxComboBoxArrowButtonPainter.BACKGROUND_SELECTED_EDITABLE, new Insets(8, 1, 8, 8), new Dimension(20, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.arrowButton\"[Enabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxArrowButtonPainter", ComboBoxComboBoxArrowButtonPainter.FOREGROUND_ENABLED, new Insets(6, 9, 6, 10), new Dimension(24, 19), true, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.arrowButton\"[MouseOver].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxArrowButtonPainter", ComboBoxComboBoxArrowButtonPainter.FOREGROUND_MOUSEOVER, new Insets(6, 9, 6, 10), new Dimension(24, 19), true, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.arrowButton\"[Disabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxArrowButtonPainter", ComboBoxComboBoxArrowButtonPainter.FOREGROUND_DISABLED, new Insets(6, 9, 6, 10), new Dimension(24, 19), true, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.arrowButton\"[Pressed].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxArrowButtonPainter", ComboBoxComboBoxArrowButtonPainter.FOREGROUND_PRESSED, new Insets(6, 9, 6, 10), new Dimension(24, 19), true, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.arrowButton\"[Selected].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ComboBoxComboBoxArrowButtonPainter", ComboBoxComboBoxArrowButtonPainter.FOREGROUND_SELECTED, new Insets(6, 9, 6, 10), new Dimension(24, 19), true, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ComboBox:\"ComboBox.listRenderer\".contentMargins", new InsetsUIResource(2, 4, 2, 4)); + d.put("ComboBox:\"ComboBox.listRenderer\".opaque", Boolean.TRUE); + d.put("ComboBox:\"ComboBox.listRenderer\".background", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0)); + d.put("ComboBox:\"ComboBox.listRenderer\"[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("ComboBox:\"ComboBox.listRenderer\"[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("ComboBox:\"ComboBox.listRenderer\"[Selected].background", getDerivedColor("nimbusSelectionBackground",0.0f,0.0f,0.0f,0)); + d.put("ComboBox:\"ComboBox.renderer\".contentMargins", new InsetsUIResource(2, 4, 2, 4)); + d.put("ComboBox:\"ComboBox.renderer\"[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("ComboBox:\"ComboBox.renderer\"[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("ComboBox:\"ComboBox.renderer\"[Selected].background", getDerivedColor("nimbusSelectionBackground",0.0f,0.0f,0.0f,0)); + + //Initialize \"ComboBox.scrollPane\" + d.put("\"ComboBox.scrollPane\".contentMargins", new InsetsUIResource(0, 0, 0, 0)); + + //Initialize FileChooser + d.put("FileChooser.contentMargins", new InsetsUIResource(10, 10, 10, 10)); + d.put("FileChooser.opaque", Boolean.TRUE); + d.put("FileChooser.usesSingleFilePane", Boolean.TRUE); + d.put("FileChooser[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.FileChooserPainter", FileChooserPainter.BACKGROUND_ENABLED, new Insets(0, 0, 0, 0), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("FileChooser[Enabled].fileIconPainter", new LazyPainter("javax.swing.plaf.nimbus.FileChooserPainter", FileChooserPainter.FILEICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("FileChooser.fileIcon", new NimbusIcon("FileChooser", "fileIconPainter", 16, 16)); + d.put("FileChooser[Enabled].directoryIconPainter", new LazyPainter("javax.swing.plaf.nimbus.FileChooserPainter", FileChooserPainter.DIRECTORYICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("FileChooser.directoryIcon", new NimbusIcon("FileChooser", "directoryIconPainter", 16, 16)); + d.put("FileChooser[Enabled].upFolderIconPainter", new LazyPainter("javax.swing.plaf.nimbus.FileChooserPainter", FileChooserPainter.UPFOLDERICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("FileChooser.upFolderIcon", new NimbusIcon("FileChooser", "upFolderIconPainter", 16, 16)); + d.put("FileChooser[Enabled].newFolderIconPainter", new LazyPainter("javax.swing.plaf.nimbus.FileChooserPainter", FileChooserPainter.NEWFOLDERICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("FileChooser.newFolderIcon", new NimbusIcon("FileChooser", "newFolderIconPainter", 16, 16)); + d.put("FileChooser[Enabled].hardDriveIconPainter", new LazyPainter("javax.swing.plaf.nimbus.FileChooserPainter", FileChooserPainter.HARDDRIVEICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("FileChooser.hardDriveIcon", new NimbusIcon("FileChooser", "hardDriveIconPainter", 16, 16)); + d.put("FileChooser[Enabled].floppyDriveIconPainter", new LazyPainter("javax.swing.plaf.nimbus.FileChooserPainter", FileChooserPainter.FLOPPYDRIVEICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("FileChooser.floppyDriveIcon", new NimbusIcon("FileChooser", "floppyDriveIconPainter", 16, 16)); + d.put("FileChooser[Enabled].homeFolderIconPainter", new LazyPainter("javax.swing.plaf.nimbus.FileChooserPainter", FileChooserPainter.HOMEFOLDERICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("FileChooser.homeFolderIcon", new NimbusIcon("FileChooser", "homeFolderIconPainter", 16, 16)); + d.put("FileChooser[Enabled].detailsViewIconPainter", new LazyPainter("javax.swing.plaf.nimbus.FileChooserPainter", FileChooserPainter.DETAILSVIEWICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("FileChooser.detailsViewIcon", new NimbusIcon("FileChooser", "detailsViewIconPainter", 16, 16)); + d.put("FileChooser[Enabled].listViewIconPainter", new LazyPainter("javax.swing.plaf.nimbus.FileChooserPainter", FileChooserPainter.LISTVIEWICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("FileChooser.listViewIcon", new NimbusIcon("FileChooser", "listViewIconPainter", 16, 16)); + + //Initialize InternalFrameTitlePane + d.put("InternalFrameTitlePane.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("InternalFrameTitlePane.maxFrameIconSize", new DimensionUIResource(18, 18)); + + //Initialize InternalFrame + d.put("InternalFrame.contentMargins", new InsetsUIResource(1, 6, 6, 6)); + d.put("InternalFrame.States", "Enabled,WindowFocused"); + d.put("InternalFrame.WindowFocused", new InternalFrameWindowFocusedState()); + d.put("InternalFrame[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFramePainter", InternalFramePainter.BACKGROUND_ENABLED, new Insets(25, 6, 6, 6), new Dimension(25, 36), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame[Enabled+WindowFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFramePainter", InternalFramePainter.BACKGROUND_ENABLED_WINDOWFOCUSED, new Insets(25, 6, 6, 6), new Dimension(25, 36), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane.contentMargins", new InsetsUIResource(3, 0, 3, 0)); + d.put("InternalFrame:InternalFrameTitlePane.States", "Enabled,WindowFocused"); + d.put("InternalFrame:InternalFrameTitlePane.WindowFocused", new InternalFrameInternalFrameTitlePaneWindowFocusedState()); + d.put("InternalFrame:InternalFrameTitlePane.titleAlignment", "CENTER"); + d.put("InternalFrame:InternalFrameTitlePane[Enabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\".contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\".States", "Enabled,MouseOver,Pressed,Disabled,Focused,Selected,WindowNotFocused"); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\".WindowNotFocused", new InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonWindowNotFocusedState()); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\".test", "am InternalFrameTitlePane.menuButton"); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\"[Enabled].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.ICON_ENABLED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\"[Disabled].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.ICON_DISABLED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\"[MouseOver].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.ICON_MOUSEOVER, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\"[Pressed].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.ICON_PRESSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\"[Enabled+WindowNotFocused].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.ICON_ENABLED_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\"[MouseOver+WindowNotFocused].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.ICON_MOUSEOVER_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\"[Pressed+WindowNotFocused].iconPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMenuButtonPainter.ICON_PRESSED_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\".icon", new NimbusIcon("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.menuButton\"", "iconPainter", 19, 18)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\".contentMargins", new InsetsUIResource(9, 9, 9, 9)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\".States", "Enabled,MouseOver,Pressed,Disabled,Focused,Selected,WindowNotFocused"); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\".WindowNotFocused", new InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonWindowNotFocusedState()); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.BACKGROUND_ENABLED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\"[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.BACKGROUND_DISABLED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\"[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.BACKGROUND_MOUSEOVER, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\"[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.BACKGROUND_PRESSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\"[Enabled+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.BACKGROUND_ENABLED_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\"[MouseOver+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.iconifyButton\"[Pressed+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneIconifyButtonPainter.BACKGROUND_PRESSED_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\".contentMargins", new InsetsUIResource(9, 9, 9, 9)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\".States", "Enabled,MouseOver,Pressed,Disabled,Focused,Selected,WindowNotFocused,WindowMaximized"); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\".WindowNotFocused", new InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState()); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\".WindowMaximized", new InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowMaximizedState()); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[Disabled+WindowMaximized].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_DISABLED_WINDOWMAXIMIZED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[Enabled+WindowMaximized].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_ENABLED_WINDOWMAXIMIZED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[MouseOver+WindowMaximized].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_MOUSEOVER_WINDOWMAXIMIZED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[Pressed+WindowMaximized].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_PRESSED_WINDOWMAXIMIZED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[Enabled+WindowMaximized+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_ENABLED_WINDOWNOTFOCUSED_WINDOWMAXIMIZED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[MouseOver+WindowMaximized+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED_WINDOWMAXIMIZED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[Pressed+WindowMaximized+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_PRESSED_WINDOWNOTFOCUSED_WINDOWMAXIMIZED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_DISABLED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_ENABLED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_MOUSEOVER, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_PRESSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[Enabled+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_ENABLED_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[MouseOver+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.maximizeButton\"[Pressed+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.BACKGROUND_PRESSED_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\".contentMargins", new InsetsUIResource(9, 9, 9, 9)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\".States", "Enabled,MouseOver,Pressed,Disabled,Focused,Selected,WindowNotFocused"); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\".WindowNotFocused", new InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonWindowNotFocusedState()); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\"[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.BACKGROUND_DISABLED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.BACKGROUND_ENABLED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\"[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.BACKGROUND_MOUSEOVER, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\"[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.BACKGROUND_PRESSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\"[Enabled+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.BACKGROUND_ENABLED_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\"[MouseOver+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.BACKGROUND_MOUSEOVER_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("InternalFrame:InternalFrameTitlePane:\"InternalFrameTitlePane.closeButton\"[Pressed+WindowNotFocused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter", InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneCloseButtonPainter.BACKGROUND_PRESSED_WINDOWNOTFOCUSED, new Insets(0, 0, 0, 0), new Dimension(19, 18), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + + //Initialize DesktopIcon + d.put("DesktopIcon.contentMargins", new InsetsUIResource(4, 6, 5, 4)); + d.put("DesktopIcon[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.DesktopIconPainter", DesktopIconPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(28, 26), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + + //Initialize DesktopPane + d.put("DesktopPane.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("DesktopPane.opaque", Boolean.TRUE); + d.put("DesktopPane[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.DesktopPanePainter", DesktopPanePainter.BACKGROUND_ENABLED, new Insets(0, 0, 0, 0), new Dimension(300, 232), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + + //Initialize Label + d.put("Label.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Label[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + + //Initialize List + d.put("List.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("List.opaque", Boolean.TRUE); + d.put("List.background", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0)); + d.put("List.rendererUseListColors", Boolean.TRUE); + d.put("List.rendererUseUIBorder", Boolean.TRUE); + d.put("List.cellNoFocusBorder", new BorderUIResource(BorderFactory.createEmptyBorder(2, 5, 2, 5))); + d.put("List.focusCellHighlightBorder", new BorderUIResource(new PainterBorder("Tree:TreeCell[Enabled+Focused].backgroundPainter", new Insets(2, 5, 2, 5)))); + d.put("List.dropLineColor", getDerivedColor("nimbusFocus",0.0f,0.0f,0.0f,0)); + d.put("List[Selected].textForeground", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0,false)); + d.put("List[Selected].textBackground", getDerivedColor("nimbusSelectionBackground",0.0f,0.0f,0.0f,0,false)); + d.put("List[Disabled+Selected].textBackground", getDerivedColor("nimbusSelectionBackground",0.0f,0.0f,0.0f,0,false)); + d.put("List[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0,false)); + d.put("List:\"List.cellRenderer\".contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("List:\"List.cellRenderer\".opaque", Boolean.TRUE); + d.put("List:\"List.cellRenderer\"[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("List:\"List.cellRenderer\"[Disabled].background", getDerivedColor("nimbusSelectionBackground",0.0f,0.0f,0.0f,0,false)); + + //Initialize MenuBar + d.put("MenuBar.contentMargins", new InsetsUIResource(2, 6, 2, 6)); + d.put("MenuBar[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.MenuBarPainter", MenuBarPainter.BACKGROUND_ENABLED, new Insets(1, 0, 0, 0), new Dimension(18, 22), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("MenuBar[Enabled].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.MenuBarPainter", MenuBarPainter.BORDER_ENABLED, new Insets(0, 0, 1, 0), new Dimension(30, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("MenuBar:Menu.contentMargins", new InsetsUIResource(1, 4, 2, 4)); + d.put("MenuBar:Menu[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("MenuBar:Menu[Enabled].textForeground", new ColorUIResource(new Color(35, 35, 36, 255))); + d.put("MenuBar:Menu[Selected].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("MenuBar:Menu[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.MenuBarMenuPainter", MenuBarMenuPainter.BACKGROUND_SELECTED, new Insets(0, 0, 0, 0), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("MenuBar:Menu:MenuItemAccelerator.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + + //Initialize MenuItem + d.put("MenuItem.contentMargins", new InsetsUIResource(1, 12, 2, 13)); + d.put("MenuItem.textIconGap", new Integer(5)); + d.put("MenuItem[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("MenuItem[Enabled].textForeground", new ColorUIResource(new Color(35, 35, 36, 255))); + d.put("MenuItem[MouseOver].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("MenuItem[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.MenuItemPainter", MenuItemPainter.BACKGROUND_MOUSEOVER, new Insets(0, 0, 0, 0), new Dimension(100, 3), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("MenuItem:MenuItemAccelerator.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("MenuItem:MenuItemAccelerator[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("MenuItem:MenuItemAccelerator[MouseOver].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + + //Initialize RadioButtonMenuItem + d.put("RadioButtonMenuItem.contentMargins", new InsetsUIResource(1, 12, 2, 13)); + d.put("RadioButtonMenuItem.textIconGap", new Integer(5)); + d.put("RadioButtonMenuItem[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("RadioButtonMenuItem[Enabled].textForeground", new ColorUIResource(new Color(35, 35, 36, 255))); + d.put("RadioButtonMenuItem[MouseOver].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("RadioButtonMenuItem[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonMenuItemPainter", RadioButtonMenuItemPainter.BACKGROUND_MOUSEOVER, new Insets(0, 0, 0, 0), new Dimension(100, 3), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("RadioButtonMenuItem[MouseOver+Selected].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("RadioButtonMenuItem[MouseOver+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonMenuItemPainter", RadioButtonMenuItemPainter.BACKGROUND_SELECTED_MOUSEOVER, new Insets(0, 0, 0, 0), new Dimension(100, 3), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("RadioButtonMenuItem[Disabled+Selected].checkIconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonMenuItemPainter", RadioButtonMenuItemPainter.CHECKICON_DISABLED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(9, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButtonMenuItem[Enabled+Selected].checkIconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonMenuItemPainter", RadioButtonMenuItemPainter.CHECKICON_ENABLED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(9, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButtonMenuItem[MouseOver+Selected].checkIconPainter", new LazyPainter("javax.swing.plaf.nimbus.RadioButtonMenuItemPainter", RadioButtonMenuItemPainter.CHECKICON_SELECTED_MOUSEOVER, new Insets(5, 5, 5, 5), new Dimension(9, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("RadioButtonMenuItem.checkIcon", new NimbusIcon("RadioButtonMenuItem", "checkIconPainter", 9, 10)); + d.put("RadioButtonMenuItem:MenuItemAccelerator.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("RadioButtonMenuItem:MenuItemAccelerator[MouseOver].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + + //Initialize CheckBoxMenuItem + d.put("CheckBoxMenuItem.contentMargins", new InsetsUIResource(1, 12, 2, 13)); + d.put("CheckBoxMenuItem.textIconGap", new Integer(5)); + d.put("CheckBoxMenuItem[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("CheckBoxMenuItem[Enabled].textForeground", new ColorUIResource(new Color(35, 35, 36, 255))); + d.put("CheckBoxMenuItem[MouseOver].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("CheckBoxMenuItem[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxMenuItemPainter", CheckBoxMenuItemPainter.BACKGROUND_MOUSEOVER, new Insets(0, 0, 0, 0), new Dimension(100, 3), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("CheckBoxMenuItem[MouseOver+Selected].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("CheckBoxMenuItem[MouseOver+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxMenuItemPainter", CheckBoxMenuItemPainter.BACKGROUND_SELECTED_MOUSEOVER, new Insets(0, 0, 0, 0), new Dimension(100, 3), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("CheckBoxMenuItem[Disabled+Selected].checkIconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxMenuItemPainter", CheckBoxMenuItemPainter.CHECKICON_DISABLED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(9, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBoxMenuItem[Enabled+Selected].checkIconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxMenuItemPainter", CheckBoxMenuItemPainter.CHECKICON_ENABLED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(9, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBoxMenuItem[MouseOver+Selected].checkIconPainter", new LazyPainter("javax.swing.plaf.nimbus.CheckBoxMenuItemPainter", CheckBoxMenuItemPainter.CHECKICON_SELECTED_MOUSEOVER, new Insets(5, 5, 5, 5), new Dimension(9, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("CheckBoxMenuItem.checkIcon", new NimbusIcon("CheckBoxMenuItem", "checkIconPainter", 9, 10)); + d.put("CheckBoxMenuItem:MenuItemAccelerator.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("CheckBoxMenuItem:MenuItemAccelerator[MouseOver].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + + //Initialize Menu + d.put("Menu.contentMargins", new InsetsUIResource(1, 12, 2, 5)); + d.put("Menu[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("Menu[Enabled].textForeground", new ColorUIResource(new Color(35, 35, 36, 255))); + d.put("Menu[Enabled+Selected].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("Menu[Enabled+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.MenuPainter", MenuPainter.BACKGROUND_ENABLED_SELECTED, new Insets(0, 0, 0, 0), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("Menu[Disabled].arrowIconPainter", new LazyPainter("javax.swing.plaf.nimbus.MenuPainter", MenuPainter.ARROWICON_DISABLED, new Insets(5, 5, 5, 5), new Dimension(9, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Menu[Enabled].arrowIconPainter", new LazyPainter("javax.swing.plaf.nimbus.MenuPainter", MenuPainter.ARROWICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(9, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Menu[Enabled+Selected].arrowIconPainter", new LazyPainter("javax.swing.plaf.nimbus.MenuPainter", MenuPainter.ARROWICON_ENABLED_SELECTED, new Insets(1, 1, 1, 1), new Dimension(9, 10), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Menu.arrowIcon", new NimbusIcon("Menu", "arrowIconPainter", 9, 10)); + d.put("Menu:MenuItemAccelerator.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Menu:MenuItemAccelerator[MouseOver].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + + //Initialize PopupMenu + d.put("PopupMenu.contentMargins", new InsetsUIResource(6, 1, 6, 1)); + d.put("PopupMenu.opaque", Boolean.TRUE); + d.put("PopupMenu.consumeEventOnClose", Boolean.TRUE); + d.put("PopupMenu[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.PopupMenuPainter", PopupMenuPainter.BACKGROUND_DISABLED, new Insets(9, 0, 11, 0), new Dimension(220, 313), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("PopupMenu[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.PopupMenuPainter", PopupMenuPainter.BACKGROUND_ENABLED, new Insets(11, 2, 11, 2), new Dimension(220, 313), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + + //Initialize PopupMenuSeparator + d.put("PopupMenuSeparator.contentMargins", new InsetsUIResource(1, 0, 2, 0)); + d.put("PopupMenuSeparator[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.PopupMenuSeparatorPainter", PopupMenuSeparatorPainter.BACKGROUND_ENABLED, new Insets(1, 1, 1, 1), new Dimension(3, 3), true, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + + //Initialize OptionPane + d.put("OptionPane.contentMargins", new InsetsUIResource(15, 15, 15, 15)); + d.put("OptionPane.opaque", Boolean.TRUE); + d.put("OptionPane.buttonOrientation", new Integer(4)); + d.put("OptionPane.messageAnchor", new Integer(17)); + d.put("OptionPane.separatorPadding", new Integer(0)); + d.put("OptionPane.sameSizeButtons", Boolean.FALSE); + d.put("OptionPane:\"OptionPane.separator\".contentMargins", new InsetsUIResource(1, 0, 0, 0)); + d.put("OptionPane:\"OptionPane.messageArea\".contentMargins", new InsetsUIResource(0, 0, 10, 0)); + d.put("OptionPane:\"OptionPane.messageArea\":\"OptionPane.label\".contentMargins", new InsetsUIResource(0, 10, 10, 10)); + d.put("OptionPane:\"OptionPane.messageArea\":\"OptionPane.label\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.OptionPaneOptionPaneMessageAreaOptionPaneLabelPainter", OptionPaneOptionPaneMessageAreaOptionPaneLabelPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("OptionPane[Enabled].errorIconPainter", new LazyPainter("javax.swing.plaf.nimbus.OptionPanePainter", OptionPanePainter.ERRORICON_ENABLED, new Insets(0, 0, 0, 0), new Dimension(48, 48), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("OptionPane.errorIcon", new NimbusIcon("OptionPane", "errorIconPainter", 48, 48)); + d.put("OptionPane[Enabled].informationIconPainter", new LazyPainter("javax.swing.plaf.nimbus.OptionPanePainter", OptionPanePainter.INFORMATIONICON_ENABLED, new Insets(0, 0, 0, 0), new Dimension(48, 48), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("OptionPane.informationIcon", new NimbusIcon("OptionPane", "informationIconPainter", 48, 48)); + d.put("OptionPane[Enabled].questionIconPainter", new LazyPainter("javax.swing.plaf.nimbus.OptionPanePainter", OptionPanePainter.QUESTIONICON_ENABLED, new Insets(0, 0, 0, 0), new Dimension(48, 48), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("OptionPane.questionIcon", new NimbusIcon("OptionPane", "questionIconPainter", 48, 48)); + d.put("OptionPane[Enabled].warningIconPainter", new LazyPainter("javax.swing.plaf.nimbus.OptionPanePainter", OptionPanePainter.WARNINGICON_ENABLED, new Insets(0, 0, 0, 0), new Dimension(48, 48), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("OptionPane.warningIcon", new NimbusIcon("OptionPane", "warningIconPainter", 48, 48)); + + //Initialize Panel + d.put("Panel.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Panel.opaque", Boolean.TRUE); + + //Initialize ProgressBar + d.put("ProgressBar.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("ProgressBar.States", "Enabled,Disabled,Indeterminate,Finished"); + d.put("ProgressBar.Indeterminate", new ProgressBarIndeterminateState()); + d.put("ProgressBar.Finished", new ProgressBarFinishedState()); + d.put("ProgressBar.tileWhenIndeterminate", Boolean.TRUE); + d.put("ProgressBar.tileWidth", new Integer(27)); + d.put("ProgressBar.paintOutsideClip", Boolean.TRUE); + d.put("ProgressBar.rotateText", Boolean.TRUE); + d.put("ProgressBar.vertictalSize", new DimensionUIResource(19, 150)); + d.put("ProgressBar.horizontalSize", new DimensionUIResource(150, 19)); + d.put("ProgressBar.cycleTime", new Integer(250)); + d.put("ProgressBar[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ProgressBarPainter", ProgressBarPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(29, 19), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("ProgressBar[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("ProgressBar[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ProgressBarPainter", ProgressBarPainter.BACKGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(29, 19), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("ProgressBar[Enabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ProgressBarPainter", ProgressBarPainter.FOREGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(27, 19), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ProgressBar[Enabled+Finished].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ProgressBarPainter", ProgressBarPainter.FOREGROUND_ENABLED_FINISHED, new Insets(5, 5, 5, 5), new Dimension(27, 19), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ProgressBar[Enabled+Indeterminate].progressPadding", new Integer(3)); + d.put("ProgressBar[Enabled+Indeterminate].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ProgressBarPainter", ProgressBarPainter.FOREGROUND_ENABLED_INDETERMINATE, new Insets(5, 5, 5, 5), new Dimension(30, 13), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ProgressBar[Disabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ProgressBarPainter", ProgressBarPainter.FOREGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(27, 19), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ProgressBar[Disabled+Finished].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ProgressBarPainter", ProgressBarPainter.FOREGROUND_DISABLED_FINISHED, new Insets(5, 5, 5, 5), new Dimension(27, 19), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ProgressBar[Disabled+Indeterminate].progressPadding", new Integer(3)); + d.put("ProgressBar[Disabled+Indeterminate].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ProgressBarPainter", ProgressBarPainter.FOREGROUND_DISABLED_INDETERMINATE, new Insets(5, 5, 5, 5), new Dimension(30, 13), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + + //Initialize Separator + d.put("Separator.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Separator[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SeparatorPainter", SeparatorPainter.BACKGROUND_ENABLED, new Insets(0, 40, 0, 40), new Dimension(100, 3), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + + //Initialize ScrollBar + d.put("ScrollBar.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("ScrollBar.opaque", Boolean.TRUE); + d.put("ScrollBar.incrementButtonGap", new Integer(-8)); + d.put("ScrollBar.decrementButtonGap", new Integer(-8)); + d.put("ScrollBar.thumbHeight", new Integer(15)); + d.put("ScrollBar.minimumThumbSize", new DimensionUIResource(29, 29)); + d.put("ScrollBar.maximumThumbSize", new DimensionUIResource(1000, 1000)); + d.put("ScrollBar:\"ScrollBar.button\".contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("ScrollBar:\"ScrollBar.button\".size", new Integer(25)); + d.put("ScrollBar:\"ScrollBar.button\"[Enabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollBarScrollBarButtonPainter", ScrollBarScrollBarButtonPainter.FOREGROUND_ENABLED, new Insets(1, 1, 1, 1), new Dimension(25, 15), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("ScrollBar:\"ScrollBar.button\"[Disabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollBarScrollBarButtonPainter", ScrollBarScrollBarButtonPainter.FOREGROUND_DISABLED, new Insets(1, 1, 1, 1), new Dimension(25, 15), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("ScrollBar:\"ScrollBar.button\"[MouseOver].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollBarScrollBarButtonPainter", ScrollBarScrollBarButtonPainter.FOREGROUND_MOUSEOVER, new Insets(1, 1, 1, 1), new Dimension(25, 15), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("ScrollBar:\"ScrollBar.button\"[Pressed].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollBarScrollBarButtonPainter", ScrollBarScrollBarButtonPainter.FOREGROUND_PRESSED, new Insets(1, 1, 1, 1), new Dimension(25, 15), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("ScrollBar:ScrollBarThumb.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("ScrollBar:ScrollBarThumb[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollBarScrollBarThumbPainter", ScrollBarScrollBarThumbPainter.BACKGROUND_ENABLED, new Insets(0, 15, 0, 15), new Dimension(38, 15), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ScrollBar:ScrollBarThumb[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollBarScrollBarThumbPainter", ScrollBarScrollBarThumbPainter.BACKGROUND_MOUSEOVER, new Insets(0, 15, 0, 15), new Dimension(38, 15), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ScrollBar:ScrollBarThumb[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollBarScrollBarThumbPainter", ScrollBarScrollBarThumbPainter.BACKGROUND_PRESSED, new Insets(0, 15, 0, 15), new Dimension(38, 15), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ScrollBar:ScrollBarTrack.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("ScrollBar:ScrollBarTrack[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollBarScrollBarTrackPainter", ScrollBarScrollBarTrackPainter.BACKGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(18, 15), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("ScrollBar:ScrollBarTrack[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollBarScrollBarTrackPainter", ScrollBarScrollBarTrackPainter.BACKGROUND_ENABLED, new Insets(5, 10, 5, 9), new Dimension(34, 15), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + + //Initialize ScrollPane + d.put("ScrollPane.contentMargins", new InsetsUIResource(3, 3, 3, 3)); + d.put("ScrollPane.useChildTextComponentFocus", Boolean.TRUE); + d.put("ScrollPane[Enabled+Focused].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollPanePainter", ScrollPanePainter.BORDER_ENABLED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("ScrollPane[Enabled].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.ScrollPanePainter", ScrollPanePainter.BORDER_ENABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + + //Initialize Viewport + d.put("Viewport.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Viewport.opaque", Boolean.TRUE); + + //Initialize Slider + d.put("Slider.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Slider.States", "Enabled,MouseOver,Pressed,Disabled,Focused,Selected,ArrowShape"); + d.put("Slider.ArrowShape", new SliderArrowShapeState()); + d.put("Slider.thumbWidth", new Integer(17)); + d.put("Slider.thumbHeight", new Integer(17)); + d.put("Slider.trackBorder", new Integer(0)); + d.put("Slider.paintValue", Boolean.FALSE); + d.put("Slider.tickColor", new ColorUIResource(new Color(35, 40, 48, 255))); + d.put("Slider:SliderThumb.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Slider:SliderThumb.States", "Enabled,MouseOver,Pressed,Disabled,Focused,Selected,ArrowShape"); + d.put("Slider:SliderThumb.ArrowShape", new SliderSliderThumbArrowShapeState()); + d.put("Slider:SliderThumb[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[Focused+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_FOCUSED_MOUSEOVER, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[Focused+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_FOCUSED_PRESSED, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_MOUSEOVER, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_PRESSED, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[ArrowShape+Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_ENABLED_ARROWSHAPE, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[ArrowShape+Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_DISABLED_ARROWSHAPE, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[ArrowShape+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_MOUSEOVER_ARROWSHAPE, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[ArrowShape+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_PRESSED_ARROWSHAPE, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[ArrowShape+Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_FOCUSED_ARROWSHAPE, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[ArrowShape+Focused+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_FOCUSED_MOUSEOVER_ARROWSHAPE, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderThumb[ArrowShape+Focused+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderThumbPainter", SliderSliderThumbPainter.BACKGROUND_FOCUSED_PRESSED_ARROWSHAPE, new Insets(5, 5, 5, 5), new Dimension(17, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Slider:SliderTrack.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Slider:SliderTrack.States", "Enabled,MouseOver,Pressed,Disabled,Focused,Selected,ArrowShape"); + d.put("Slider:SliderTrack.ArrowShape", new SliderSliderTrackArrowShapeState()); + d.put("Slider:SliderTrack[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderTrackPainter", SliderSliderTrackPainter.BACKGROUND_DISABLED, new Insets(6, 5, 6, 5), new Dimension(23, 17), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, 2.0)); + d.put("Slider:SliderTrack[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SliderSliderTrackPainter", SliderSliderTrackPainter.BACKGROUND_ENABLED, new Insets(6, 5, 6, 5), new Dimension(23, 17), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + + //Initialize Spinner + d.put("Spinner.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Spinner:\"Spinner.editor\".contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Spinner:Panel:\"Spinner.formattedTextField\".contentMargins", new InsetsUIResource(6, 6, 5, 6)); + d.put("Spinner:Panel:\"Spinner.formattedTextField\"[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("Spinner:Panel:\"Spinner.formattedTextField\"[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerPanelSpinnerFormattedTextFieldPainter", SpinnerPanelSpinnerFormattedTextFieldPainter.BACKGROUND_DISABLED, new Insets(5, 3, 3, 1), new Dimension(64, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("Spinner:Panel:\"Spinner.formattedTextField\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerPanelSpinnerFormattedTextFieldPainter", SpinnerPanelSpinnerFormattedTextFieldPainter.BACKGROUND_ENABLED, new Insets(5, 3, 3, 1), new Dimension(64, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("Spinner:Panel:\"Spinner.formattedTextField\"[Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerPanelSpinnerFormattedTextFieldPainter", SpinnerPanelSpinnerFormattedTextFieldPainter.BACKGROUND_FOCUSED, new Insets(5, 3, 3, 1), new Dimension(64, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("Spinner:Panel:\"Spinner.formattedTextField\"[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("Spinner:Panel:\"Spinner.formattedTextField\"[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerPanelSpinnerFormattedTextFieldPainter", SpinnerPanelSpinnerFormattedTextFieldPainter.BACKGROUND_SELECTED, new Insets(5, 3, 3, 1), new Dimension(64, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("Spinner:Panel:\"Spinner.formattedTextField\"[Focused+Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("Spinner:Panel:\"Spinner.formattedTextField\"[Focused+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerPanelSpinnerFormattedTextFieldPainter", SpinnerPanelSpinnerFormattedTextFieldPainter.BACKGROUND_SELECTED_FOCUSED, new Insets(5, 3, 3, 1), new Dimension(64, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("Spinner:\"Spinner.previousButton\".contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Spinner:\"Spinner.previousButton\".size", new Integer(20)); + d.put("Spinner:\"Spinner.previousButton\"[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.BACKGROUND_DISABLED, new Insets(0, 1, 6, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.BACKGROUND_ENABLED, new Insets(0, 1, 6, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.BACKGROUND_FOCUSED, new Insets(0, 1, 6, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Focused+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.BACKGROUND_MOUSEOVER_FOCUSED, new Insets(3, 1, 6, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Focused+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.BACKGROUND_PRESSED_FOCUSED, new Insets(0, 1, 6, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.BACKGROUND_MOUSEOVER, new Insets(0, 1, 6, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.BACKGROUND_PRESSED, new Insets(0, 1, 6, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Disabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.FOREGROUND_DISABLED, new Insets(3, 6, 5, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Enabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.FOREGROUND_ENABLED, new Insets(3, 6, 5, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Focused].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.FOREGROUND_FOCUSED, new Insets(3, 6, 5, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Focused+MouseOver].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.FOREGROUND_MOUSEOVER_FOCUSED, new Insets(3, 6, 5, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Focused+Pressed].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.FOREGROUND_PRESSED_FOCUSED, new Insets(3, 6, 5, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[MouseOver].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.FOREGROUND_MOUSEOVER, new Insets(3, 6, 5, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.previousButton\"[Pressed].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerPreviousButtonPainter", SpinnerSpinnerPreviousButtonPainter.FOREGROUND_PRESSED, new Insets(3, 6, 5, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\".contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Spinner:\"Spinner.nextButton\".size", new Integer(20)); + d.put("Spinner:\"Spinner.nextButton\"[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.BACKGROUND_DISABLED, new Insets(7, 1, 1, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.BACKGROUND_ENABLED, new Insets(7, 1, 1, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.BACKGROUND_FOCUSED, new Insets(7, 1, 1, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Focused+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.BACKGROUND_MOUSEOVER_FOCUSED, new Insets(7, 1, 1, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Focused+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.BACKGROUND_PRESSED_FOCUSED, new Insets(7, 1, 1, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.BACKGROUND_MOUSEOVER, new Insets(7, 1, 1, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.BACKGROUND_PRESSED, new Insets(7, 1, 1, 7), new Dimension(20, 12), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Disabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.FOREGROUND_DISABLED, new Insets(5, 6, 3, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Enabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.FOREGROUND_ENABLED, new Insets(5, 6, 3, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Focused].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.FOREGROUND_FOCUSED, new Insets(3, 6, 3, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Focused+MouseOver].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.FOREGROUND_MOUSEOVER_FOCUSED, new Insets(3, 6, 3, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Focused+Pressed].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.FOREGROUND_PRESSED_FOCUSED, new Insets(5, 6, 3, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[MouseOver].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.FOREGROUND_MOUSEOVER, new Insets(5, 6, 3, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Spinner:\"Spinner.nextButton\"[Pressed].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SpinnerSpinnerNextButtonPainter", SpinnerSpinnerNextButtonPainter.FOREGROUND_PRESSED, new Insets(5, 6, 3, 9), new Dimension(20, 12), true, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + + //Initialize SplitPane + d.put("SplitPane.contentMargins", new InsetsUIResource(1, 1, 1, 1)); + d.put("SplitPane.States", "Enabled,MouseOver,Pressed,Disabled,Focused,Selected,Vertical"); + d.put("SplitPane.Vertical", new SplitPaneVerticalState()); + d.put("SplitPane.size", new Integer(10)); + d.put("SplitPane.dividerSize", new Integer(10)); + d.put("SplitPane.centerOneTouchButtons", Boolean.TRUE); + d.put("SplitPane.oneTouchButtonOffset", new Integer(30)); + d.put("SplitPane.oneTouchExpandable", Boolean.FALSE); + d.put("SplitPane.continuousLayout", Boolean.TRUE); + d.put("SplitPane:SplitPaneDivider.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("SplitPane:SplitPaneDivider.States", "Enabled,MouseOver,Pressed,Disabled,Focused,Selected,Vertical"); + d.put("SplitPane:SplitPaneDivider.Vertical", new SplitPaneSplitPaneDividerVerticalState()); + d.put("SplitPane:SplitPaneDivider[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SplitPaneSplitPaneDividerPainter", SplitPaneSplitPaneDividerPainter.BACKGROUND_ENABLED, new Insets(3, 0, 3, 0), new Dimension(68, 10), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("SplitPane:SplitPaneDivider[Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SplitPaneSplitPaneDividerPainter", SplitPaneSplitPaneDividerPainter.BACKGROUND_FOCUSED, new Insets(3, 0, 3, 0), new Dimension(68, 10), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("SplitPane:SplitPaneDivider[Enabled].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SplitPaneSplitPaneDividerPainter", SplitPaneSplitPaneDividerPainter.FOREGROUND_ENABLED, new Insets(0, 24, 0, 24), new Dimension(68, 10), true, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("SplitPane:SplitPaneDivider[Enabled+Vertical].foregroundPainter", new LazyPainter("javax.swing.plaf.nimbus.SplitPaneSplitPaneDividerPainter", SplitPaneSplitPaneDividerPainter.FOREGROUND_ENABLED_VERTICAL, new Insets(5, 0, 5, 0), new Dimension(10, 38), true, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + + //Initialize TabbedPane + d.put("TabbedPane.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("TabbedPane.tabAreaStatesMatchSelectedTab", Boolean.TRUE); + d.put("TabbedPane.nudgeSelectedLabel", Boolean.FALSE); + d.put("TabbedPane.tabRunOverlay", new Integer(2)); + d.put("TabbedPane.tabOverlap", new Integer(-1)); + d.put("TabbedPane.extendTabsToBase", Boolean.TRUE); + d.put("TabbedPane.useBasicArrows", Boolean.TRUE); + d.put("TabbedPane.shadow", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("TabbedPane.darkShadow", getDerivedColor("text",0.0f,0.0f,0.0f,0)); + d.put("TabbedPane.highlight", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0)); + d.put("TabbedPane:TabbedPaneTab.contentMargins", new InsetsUIResource(2, 8, 3, 8)); + d.put("TabbedPane:TabbedPaneTab[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_ENABLED, new Insets(7, 7, 1, 7), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTab[Enabled+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_ENABLED_MOUSEOVER, new Insets(7, 7, 1, 7), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTab[Enabled+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_ENABLED_PRESSED, new Insets(7, 6, 1, 7), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTab[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("TabbedPane:TabbedPaneTab[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_DISABLED, new Insets(6, 7, 1, 7), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTab[Disabled+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_SELECTED_DISABLED, new Insets(7, 7, 0, 7), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTab[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_SELECTED, new Insets(7, 7, 0, 7), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTab[MouseOver+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_SELECTED_MOUSEOVER, new Insets(7, 9, 0, 9), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTab[Pressed+Selected].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("TabbedPane:TabbedPaneTab[Pressed+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_SELECTED_PRESSED, new Insets(7, 9, 0, 9), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTab[Focused+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_SELECTED_FOCUSED, new Insets(7, 7, 3, 7), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTab[Focused+MouseOver+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_SELECTED_MOUSEOVER_FOCUSED, new Insets(7, 9, 3, 9), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTab[Focused+Pressed+Selected].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("TabbedPane:TabbedPaneTab[Focused+Pressed+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabPainter", TabbedPaneTabbedPaneTabPainter.BACKGROUND_SELECTED_PRESSED_FOCUSED, new Insets(7, 9, 3, 9), new Dimension(44, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTabArea.contentMargins", new InsetsUIResource(3, 10, 4, 10)); + d.put("TabbedPane:TabbedPaneTabArea[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabAreaPainter", TabbedPaneTabbedPaneTabAreaPainter.BACKGROUND_ENABLED, new Insets(0, 5, 6, 5), new Dimension(5, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTabArea[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabAreaPainter", TabbedPaneTabbedPaneTabAreaPainter.BACKGROUND_DISABLED, new Insets(0, 5, 6, 5), new Dimension(5, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTabArea[Enabled+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabAreaPainter", TabbedPaneTabbedPaneTabAreaPainter.BACKGROUND_ENABLED_MOUSEOVER, new Insets(0, 5, 6, 5), new Dimension(5, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneTabArea[Enabled+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TabbedPaneTabbedPaneTabAreaPainter", TabbedPaneTabbedPaneTabAreaPainter.BACKGROUND_ENABLED_PRESSED, new Insets(0, 5, 6, 5), new Dimension(5, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TabbedPane:TabbedPaneContent.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + + //Initialize Table + d.put("Table.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Table.opaque", Boolean.TRUE); + d.put("Table.textForeground", new ColorUIResource(new Color(35, 35, 36, 255))); + d.put("Table.background", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0)); + d.put("Table.showGrid", Boolean.FALSE); + d.put("Table.intercellSpacing", new DimensionUIResource(0, 0)); + d.put("Table.alternateRowColor", getDerivedColor("nimbusLightBackground",0.0f,0.0f,-0.05098039f,0,false)); + d.put("Table.rendererUseTableColors", Boolean.TRUE); + d.put("Table.rendererUseUIBorder", Boolean.TRUE); + d.put("Table.cellNoFocusBorder", new BorderUIResource(BorderFactory.createEmptyBorder(2, 5, 2, 5))); + d.put("Table.focusCellHighlightBorder", new BorderUIResource(new PainterBorder("Tree:TreeCell[Enabled+Focused].backgroundPainter", new Insets(2, 5, 2, 5)))); + d.put("Table.dropLineColor", getDerivedColor("nimbusFocus",0.0f,0.0f,0.0f,0)); + d.put("Table.dropLineShortColor", getDerivedColor("nimbusOrange",0.0f,0.0f,0.0f,0)); + d.put("Table[Enabled+Selected].textForeground", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0,false)); + d.put("Table[Enabled+Selected].textBackground", getDerivedColor("nimbusSelectionBackground",0.0f,0.0f,0.0f,0,false)); + d.put("Table[Disabled+Selected].textBackground", getDerivedColor("nimbusSelectionBackground",0.0f,0.0f,0.0f,0,false)); + d.put("Table:\"Table.cellRenderer\".contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Table:\"Table.cellRenderer\".opaque", Boolean.TRUE); + d.put("Table:\"Table.cellRenderer\".background", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0,false)); + + //Initialize TableHeader + d.put("TableHeader.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("TableHeader.opaque", Boolean.TRUE); + d.put("TableHeader.rightAlignSortArrow", Boolean.TRUE); + d.put("TableHeader[Enabled].ascendingSortIconPainter", new LazyPainter("javax.swing.plaf.nimbus.TableHeaderPainter", TableHeaderPainter.ASCENDINGSORTICON_ENABLED, new Insets(0, 0, 0, 2), new Dimension(7, 7), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Table.ascendingSortIcon", new NimbusIcon("TableHeader", "ascendingSortIconPainter", 7, 7)); + d.put("TableHeader[Enabled].descendingSortIconPainter", new LazyPainter("javax.swing.plaf.nimbus.TableHeaderPainter", TableHeaderPainter.DESCENDINGSORTICON_ENABLED, new Insets(0, 0, 0, 0), new Dimension(7, 7), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Table.descendingSortIcon", new NimbusIcon("TableHeader", "descendingSortIconPainter", 7, 7)); + d.put("TableHeader:\"TableHeader.renderer\".contentMargins", new InsetsUIResource(2, 5, 4, 5)); + d.put("TableHeader:\"TableHeader.renderer\".opaque", Boolean.TRUE); + d.put("TableHeader:\"TableHeader.renderer\".States", "Enabled,MouseOver,Pressed,Disabled,Focused,Selected,Sorted"); + d.put("TableHeader:\"TableHeader.renderer\".Sorted", new TableHeaderTableHeaderRendererSortedState()); + d.put("TableHeader:\"TableHeader.renderer\"[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TableHeaderTableHeaderRendererPainter", TableHeaderTableHeaderRendererPainter.BACKGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(22, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TableHeader:\"TableHeader.renderer\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TableHeaderTableHeaderRendererPainter", TableHeaderTableHeaderRendererPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(22, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TableHeader:\"TableHeader.renderer\"[Enabled+Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TableHeaderTableHeaderRendererPainter", TableHeaderTableHeaderRendererPainter.BACKGROUND_ENABLED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(22, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TableHeader:\"TableHeader.renderer\"[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TableHeaderTableHeaderRendererPainter", TableHeaderTableHeaderRendererPainter.BACKGROUND_MOUSEOVER, new Insets(5, 5, 5, 5), new Dimension(22, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TableHeader:\"TableHeader.renderer\"[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TableHeaderTableHeaderRendererPainter", TableHeaderTableHeaderRendererPainter.BACKGROUND_PRESSED, new Insets(5, 5, 5, 5), new Dimension(22, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TableHeader:\"TableHeader.renderer\"[Enabled+Sorted].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TableHeaderTableHeaderRendererPainter", TableHeaderTableHeaderRendererPainter.BACKGROUND_ENABLED_SORTED, new Insets(5, 5, 5, 5), new Dimension(22, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TableHeader:\"TableHeader.renderer\"[Enabled+Focused+Sorted].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TableHeaderTableHeaderRendererPainter", TableHeaderTableHeaderRendererPainter.BACKGROUND_ENABLED_FOCUSED_SORTED, new Insets(5, 5, 5, 5), new Dimension(22, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TableHeader:\"TableHeader.renderer\"[Disabled+Sorted].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TableHeaderTableHeaderRendererPainter", TableHeaderTableHeaderRendererPainter.BACKGROUND_DISABLED_SORTED, new Insets(5, 5, 5, 5), new Dimension(22, 20), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + + //Initialize \"Table.editor\" + d.put("\"Table.editor\".contentMargins", new InsetsUIResource(3, 5, 3, 5)); + d.put("\"Table.editor\".opaque", Boolean.TRUE); + d.put("\"Table.editor\".background", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0)); + d.put("\"Table.editor\"[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("\"Table.editor\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TableEditorPainter", TableEditorPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("\"Table.editor\"[Enabled+Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TableEditorPainter", TableEditorPainter.BACKGROUND_ENABLED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("\"Table.editor\"[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + + //Initialize \"Tree.cellEditor\" + d.put("\"Tree.cellEditor\".contentMargins", new InsetsUIResource(2, 5, 2, 5)); + d.put("\"Tree.cellEditor\".opaque", Boolean.TRUE); + d.put("\"Tree.cellEditor\".background", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0)); + d.put("\"Tree.cellEditor\"[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("\"Tree.cellEditor\"[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TreeCellEditorPainter", TreeCellEditorPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("\"Tree.cellEditor\"[Enabled+Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TreeCellEditorPainter", TreeCellEditorPainter.BACKGROUND_ENABLED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("\"Tree.cellEditor\"[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + + //Initialize TextField + d.put("TextField.contentMargins", new InsetsUIResource(6, 6, 6, 6)); + d.put("TextField.background", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0)); + d.put("TextField[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("TextField[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextFieldPainter", TextFieldPainter.BACKGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TextField[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextFieldPainter", TextFieldPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TextField[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("TextField[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextFieldPainter", TextFieldPainter.BACKGROUND_SELECTED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TextField[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("TextField[Disabled].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.TextFieldPainter", TextFieldPainter.BORDER_DISABLED, new Insets(5, 3, 3, 3), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TextField[Focused].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.TextFieldPainter", TextFieldPainter.BORDER_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TextField[Enabled].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.TextFieldPainter", TextFieldPainter.BORDER_ENABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + + //Initialize FormattedTextField + d.put("FormattedTextField.contentMargins", new InsetsUIResource(6, 6, 6, 6)); + d.put("FormattedTextField[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("FormattedTextField[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.FormattedTextFieldPainter", FormattedTextFieldPainter.BACKGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("FormattedTextField[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.FormattedTextFieldPainter", FormattedTextFieldPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("FormattedTextField[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("FormattedTextField[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.FormattedTextFieldPainter", FormattedTextFieldPainter.BACKGROUND_SELECTED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("FormattedTextField[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("FormattedTextField[Disabled].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.FormattedTextFieldPainter", FormattedTextFieldPainter.BORDER_DISABLED, new Insets(5, 3, 3, 3), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("FormattedTextField[Focused].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.FormattedTextFieldPainter", FormattedTextFieldPainter.BORDER_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("FormattedTextField[Enabled].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.FormattedTextFieldPainter", FormattedTextFieldPainter.BORDER_ENABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + + //Initialize PasswordField + d.put("PasswordField.contentMargins", new InsetsUIResource(6, 6, 6, 6)); + d.put("PasswordField[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("PasswordField[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.PasswordFieldPainter", PasswordFieldPainter.BACKGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("PasswordField[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.PasswordFieldPainter", PasswordFieldPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("PasswordField[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("PasswordField[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.PasswordFieldPainter", PasswordFieldPainter.BACKGROUND_SELECTED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("PasswordField[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("PasswordField[Disabled].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.PasswordFieldPainter", PasswordFieldPainter.BORDER_DISABLED, new Insets(5, 3, 3, 3), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("PasswordField[Focused].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.PasswordFieldPainter", PasswordFieldPainter.BORDER_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("PasswordField[Enabled].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.PasswordFieldPainter", PasswordFieldPainter.BORDER_ENABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + + //Initialize TextArea + d.put("TextArea.contentMargins", new InsetsUIResource(6, 6, 6, 6)); + d.put("TextArea.States", "Enabled,MouseOver,Pressed,Selected,Disabled,Focused,NotInScrollPane"); + d.put("TextArea.NotInScrollPane", new TextAreaNotInScrollPaneState()); + d.put("TextArea[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("TextArea[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextAreaPainter", TextAreaPainter.BACKGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("TextArea[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextAreaPainter", TextAreaPainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("TextArea[Disabled+NotInScrollPane].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("TextArea[Disabled+NotInScrollPane].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextAreaPainter", TextAreaPainter.BACKGROUND_DISABLED_NOTINSCROLLPANE, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("TextArea[Enabled+NotInScrollPane].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextAreaPainter", TextAreaPainter.BACKGROUND_ENABLED_NOTINSCROLLPANE, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("TextArea[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("TextArea[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextAreaPainter", TextAreaPainter.BACKGROUND_SELECTED, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("TextArea[Disabled+NotInScrollPane].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("TextArea[Disabled+NotInScrollPane].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.TextAreaPainter", TextAreaPainter.BORDER_DISABLED_NOTINSCROLLPANE, new Insets(5, 3, 3, 3), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TextArea[Focused+NotInScrollPane].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.TextAreaPainter", TextAreaPainter.BORDER_FOCUSED_NOTINSCROLLPANE, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + d.put("TextArea[Enabled+NotInScrollPane].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.TextAreaPainter", TextAreaPainter.BORDER_ENABLED_NOTINSCROLLPANE, new Insets(5, 5, 5, 5), new Dimension(122, 24), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)); + + //Initialize TextPane + d.put("TextPane.contentMargins", new InsetsUIResource(4, 6, 4, 6)); + d.put("TextPane.opaque", Boolean.TRUE); + d.put("TextPane[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("TextPane[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextPanePainter", TextPanePainter.BACKGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("TextPane[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextPanePainter", TextPanePainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("TextPane[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("TextPane[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TextPanePainter", TextPanePainter.BACKGROUND_SELECTED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + + //Initialize EditorPane + d.put("EditorPane.contentMargins", new InsetsUIResource(4, 6, 4, 6)); + d.put("EditorPane.opaque", Boolean.TRUE); + d.put("EditorPane[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("EditorPane[Disabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.EditorPanePainter", EditorPanePainter.BACKGROUND_DISABLED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("EditorPane[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.EditorPanePainter", EditorPanePainter.BACKGROUND_ENABLED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("EditorPane[Selected].textForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0)); + d.put("EditorPane[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.EditorPanePainter", EditorPanePainter.BACKGROUND_SELECTED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + + //Initialize ToolBar + d.put("ToolBar.contentMargins", new InsetsUIResource(2, 2, 2, 2)); + d.put("ToolBar.opaque", Boolean.TRUE); + d.put("ToolBar.States", "North,East,West,South"); + d.put("ToolBar.North", new ToolBarNorthState()); + d.put("ToolBar.East", new ToolBarEastState()); + d.put("ToolBar.West", new ToolBarWestState()); + d.put("ToolBar.South", new ToolBarSouthState()); + d.put("ToolBar[North].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarPainter", ToolBarPainter.BORDER_NORTH, new Insets(0, 0, 1, 0), new Dimension(30, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("ToolBar[South].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarPainter", ToolBarPainter.BORDER_SOUTH, new Insets(1, 0, 0, 0), new Dimension(30, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("ToolBar[East].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarPainter", ToolBarPainter.BORDER_EAST, new Insets(1, 0, 0, 0), new Dimension(30, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("ToolBar[West].borderPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarPainter", ToolBarPainter.BORDER_WEST, new Insets(0, 0, 1, 0), new Dimension(30, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("ToolBar[Enabled].handleIconPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarPainter", ToolBarPainter.HANDLEICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(11, 38), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar.handleIcon", new NimbusIcon("ToolBar", "handleIconPainter", 11, 38)); + d.put("ToolBar:Button.contentMargins", new InsetsUIResource(4, 4, 4, 4)); + d.put("ToolBar:Button[Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarButtonPainter", ToolBarButtonPainter.BACKGROUND_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:Button[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarButtonPainter", ToolBarButtonPainter.BACKGROUND_MOUSEOVER, new Insets(5, 5, 5, 5), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:Button[Focused+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarButtonPainter", ToolBarButtonPainter.BACKGROUND_MOUSEOVER_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:Button[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarButtonPainter", ToolBarButtonPainter.BACKGROUND_PRESSED, new Insets(5, 5, 5, 5), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:Button[Focused+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarButtonPainter", ToolBarButtonPainter.BACKGROUND_PRESSED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(104, 33), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton.contentMargins", new InsetsUIResource(4, 4, 4, 4)); + d.put("ToolBar:ToggleButton[Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(104, 34), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_MOUSEOVER, new Insets(5, 5, 5, 5), new Dimension(104, 34), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[Focused+MouseOver].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_MOUSEOVER_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(104, 34), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_PRESSED, new Insets(5, 5, 5, 5), new Dimension(72, 25), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[Focused+Pressed].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_PRESSED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(72, 25), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_SELECTED, new Insets(5, 5, 5, 5), new Dimension(72, 25), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[Focused+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_SELECTED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(72, 25), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[Pressed+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_PRESSED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(72, 25), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[Focused+Pressed+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_PRESSED_SELECTED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(72, 25), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[MouseOver+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_MOUSEOVER_SELECTED, new Insets(5, 5, 5, 5), new Dimension(72, 25), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[Focused+MouseOver+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_MOUSEOVER_SELECTED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(72, 25), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + d.put("ToolBar:ToggleButton[Disabled+Selected].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("ToolBar:ToggleButton[Disabled+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolBarToggleButtonPainter", ToolBarToggleButtonPainter.BACKGROUND_DISABLED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(72, 25), false, AbstractRegionPainter.PaintContext.CacheMode.NINE_SQUARE_SCALE, 2.0, Double.POSITIVE_INFINITY)); + + //Initialize ToolBarSeparator + d.put("ToolBarSeparator.contentMargins", new InsetsUIResource(2, 0, 3, 0)); + d.put("ToolBarSeparator.textForeground", getDerivedColor("nimbusBorder",0.0f,0.0f,0.0f,0)); + + //Initialize ToolTip + d.put("ToolTip.contentMargins", new InsetsUIResource(4, 4, 4, 4)); + d.put("ToolTip[Enabled].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.ToolTipPainter", ToolTipPainter.BACKGROUND_ENABLED, new Insets(1, 1, 1, 1), new Dimension(10, 10), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + + //Initialize Tree + d.put("Tree.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Tree.opaque", Boolean.TRUE); + d.put("Tree.textForeground", getDerivedColor("text",0.0f,0.0f,0.0f,0,false)); + d.put("Tree.textBackground", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0,false)); + d.put("Tree.background", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0)); + d.put("Tree.rendererFillBackground", Boolean.FALSE); + d.put("Tree.leftChildIndent", new Integer(12)); + d.put("Tree.rightChildIndent", new Integer(4)); + d.put("Tree.drawHorizontalLines", Boolean.FALSE); + d.put("Tree.drawVerticalLines", Boolean.FALSE); + d.put("Tree.showRootHandles", Boolean.FALSE); + d.put("Tree.rendererUseTreeColors", Boolean.TRUE); + d.put("Tree.repaintWholeRow", Boolean.TRUE); + d.put("Tree.rowHeight", new Integer(0)); + d.put("Tree.rendererMargins", new InsetsUIResource(2, 0, 1, 5)); + d.put("Tree.selectionForeground", getDerivedColor("nimbusSelectedText",0.0f,0.0f,0.0f,0,false)); + d.put("Tree.selectionBackground", getDerivedColor("nimbusSelectionBackground",0.0f,0.0f,0.0f,0,false)); + d.put("Tree.dropLineColor", getDerivedColor("nimbusFocus",0.0f,0.0f,0.0f,0)); + d.put("Tree:TreeCell.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Tree:TreeCell[Enabled].background", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0)); + d.put("Tree:TreeCell[Enabled+Focused].background", getDerivedColor("nimbusLightBackground",0.0f,0.0f,0.0f,0)); + d.put("Tree:TreeCell[Enabled+Focused].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TreeTreeCellPainter", TreeTreeCellPainter.BACKGROUND_ENABLED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("Tree:TreeCell[Enabled+Selected].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("Tree:TreeCell[Enabled+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TreeTreeCellPainter", TreeTreeCellPainter.BACKGROUND_ENABLED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("Tree:TreeCell[Focused+Selected].textForeground", new ColorUIResource(new Color(255, 255, 255, 255))); + d.put("Tree:TreeCell[Focused+Selected].backgroundPainter", new LazyPainter("javax.swing.plaf.nimbus.TreeTreeCellPainter", TreeTreeCellPainter.BACKGROUND_SELECTED_FOCUSED, new Insets(5, 5, 5, 5), new Dimension(100, 30), false, AbstractRegionPainter.PaintContext.CacheMode.NO_CACHING, 1.0, 1.0)); + d.put("Tree:\"Tree.cellRenderer\".contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("Tree:\"Tree.cellRenderer\"[Disabled].textForeground", getDerivedColor("nimbusDisabledText",0.0f,0.0f,0.0f,0)); + d.put("Tree[Enabled].leafIconPainter", new LazyPainter("javax.swing.plaf.nimbus.TreePainter", TreePainter.LEAFICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Tree.leafIcon", new NimbusIcon("Tree", "leafIconPainter", 16, 16)); + d.put("Tree[Enabled].closedIconPainter", new LazyPainter("javax.swing.plaf.nimbus.TreePainter", TreePainter.CLOSEDICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Tree.closedIcon", new NimbusIcon("Tree", "closedIconPainter", 16, 16)); + d.put("Tree[Enabled].openIconPainter", new LazyPainter("javax.swing.plaf.nimbus.TreePainter", TreePainter.OPENICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(16, 16), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Tree.openIcon", new NimbusIcon("Tree", "openIconPainter", 16, 16)); + d.put("Tree[Enabled].collapsedIconPainter", new LazyPainter("javax.swing.plaf.nimbus.TreePainter", TreePainter.COLLAPSEDICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(18, 7), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Tree[Enabled+Selected].collapsedIconPainter", new LazyPainter("javax.swing.plaf.nimbus.TreePainter", TreePainter.COLLAPSEDICON_ENABLED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(18, 7), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Tree.collapsedIcon", new NimbusIcon("Tree", "collapsedIconPainter", 18, 7)); + d.put("Tree[Enabled].expandedIconPainter", new LazyPainter("javax.swing.plaf.nimbus.TreePainter", TreePainter.EXPANDEDICON_ENABLED, new Insets(5, 5, 5, 5), new Dimension(18, 7), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Tree[Enabled+Selected].expandedIconPainter", new LazyPainter("javax.swing.plaf.nimbus.TreePainter", TreePainter.EXPANDEDICON_ENABLED_SELECTED, new Insets(5, 5, 5, 5), new Dimension(18, 7), false, AbstractRegionPainter.PaintContext.CacheMode.FIXED_SIZES, 1.0, 1.0)); + d.put("Tree.expandedIcon", new NimbusIcon("Tree", "expandedIconPainter", 18, 7)); + + //Initialize RootPane + d.put("RootPane.contentMargins", new InsetsUIResource(0, 0, 0, 0)); + d.put("RootPane.opaque", Boolean.TRUE); + d.put("RootPane.background", getDerivedColor("control",0.0f,0.0f,0.0f,0)); + + + } + + /** + *

Registers the given region and prefix. The prefix, if it contains + * quoted sections, refers to certain named components. If there are not + * quoted sections, then the prefix refers to a generic component type.

+ * + *

If the given region/prefix combo has already been registered, then + * it will not be registered twice. The second registration attempt will + * fail silently.

+ * + * @param region The Synth Region that is being registered. Such as Button, + * or ScrollBarThumb. + * @param prefix The UIDefault prefix. For example, could be ComboBox, or if + * a named components, "MyComboBox", or even something like + * ToolBar:"MyComboBox":"ComboBox.arrowButton" + */ + void register(Region region, String prefix) { + //validate the method arguments + if (region == null || prefix == null) { + throw new IllegalArgumentException( + "Neither Region nor Prefix may be null"); + } + + //Add a LazyStyle for this region/prefix to m. + List styles = m.get(region); + if (styles == null) { + styles = new LinkedList(); + styles.add(new LazyStyle(prefix)); + m.put(region, styles); + } else { + //iterate over all the current styles and see if this prefix has + //already been registered. If not, then register it. + for (LazyStyle s : styles) { + if (prefix.equals(s.prefix)) { + return; + } + } + styles.add(new LazyStyle(prefix)); + } + + //add this region to the map of registered regions + registeredRegions.put(region.getName(), region); + } + + /** + *

Locate the style associated with the given region, and component. + * This is called from NimbusLookAndFeel in the SynthStyleFactory + * implementation.

+ * + *

Lookup occurs as follows:
+ * Check the map of styles m. If the map contains no styles at + * all, then simply return the defaultStyle. If the map contains styles, + * then iterate over all of the styles for the Region r looking + * for the best match, based on prefix. If a match was made, then return + * that SynthStyle. Otherwise, return the defaultStyle.

+ * + * @param comp The component associated with this region. For example, if + * the Region is Region.Button then the component will be a JButton. + * If the Region is a subregion, such as ScrollBarThumb, then the + * associated component will be the component that subregion belongs + * to, such as JScrollBar. The JComponent may be named. It may not be + * null. + * @param r The region we are looking for a style for. May not be null. + */ + SynthStyle getStyle(JComponent comp, Region r) { + //validate method arguments + if (comp == null || r == null) { + throw new IllegalArgumentException( + "Neither comp nor r may be null"); + } + + //if there are no lazy styles registered for the region r, then return + //the default style + List styles = m.get(r); + if (styles == null || styles.size() == 0) { + return defaultStyle; + } + + //Look for the best SynthStyle for this component/region pair. + LazyStyle foundStyle = null; + for (LazyStyle s : styles) { + if (s.matches(comp)) { + //replace the foundStyle if foundStyle is null, or + //if the new style "s" is more specific (ie, its path was + //longer), or if the foundStyle was "simple" and the new style + //was not (ie: the foundStyle was for something like Button and + //the new style was for something like "MyButton", hence, being + //more specific.) In all cases, favor the most specific style + //found. + if (foundStyle == null || + (foundStyle.parts.length < s.parts.length) || + (foundStyle.parts.length == s.parts.length + && foundStyle.simple && !s.simple)) { + foundStyle = s; + } + } + } + + //return the style, if found, or the default style if not found + return foundStyle == null ? defaultStyle : foundStyle.getStyle(comp); + } + + /* + Various public helper classes. + These may be used to register 3rd party values into UIDefaults + */ + + /** + *

Derives its font value based on a parent font and a set of offsets and + * attributes. This class is an ActiveValue, meaning that it will recompute + * its value each time it is requested from UIDefaults. It is therefore + * recommended to read this value once and cache it in the UI delegate class + * until asked to reinitialize.

+ * + *

To use this class, create an instance with the key of the font in the + * UI defaults table from which to derive this font, along with a size + * offset (if any), and whether it is to be bold, italic, or left in its + * default form.

+ */ + public static final class DerivedFont implements UIDefaults.ActiveValue { + private float sizeOffset; + private Boolean bold; + private Boolean italic; + private String parentKey; + + /** + * Create a new DerivedFont. + * + * @param key The UIDefault key associated with this derived font's + * parent or source. If this key leads to a null value, or a + * value that is not a font, then null will be returned as + * the derived font. The key must not be null. + * @param sizeOffset The size offset, as a percentage, to use. For + * example, if the source font was a 12pt font and the + * sizeOffset were specified as .9, then the new font + * will be 90% of what the source font was, or, 10.8 + * pts which is rounded to 11pts. This fractional + * based offset allows for proper font scaling in high + * DPI or large system font scenarios. + * @param bold Whether the new font should be bold. If null, then this + * new font will inherit the bold setting of the source + * font. + * @param italic Whether the new font should be italicized. If null, + * then this new font will inherit the italic setting of + * the source font. + */ + public DerivedFont(String key, float sizeOffset, Boolean bold, + Boolean italic) { + //validate the constructor arguments + if (key == null) { + throw new IllegalArgumentException("You must specify a key"); + } + + //set the values + this.parentKey = key; + this.sizeOffset = sizeOffset; + this.bold = bold; + this.italic = italic; + } + + /** + * @inheritDoc + */ + @Override + public Object createValue(UIDefaults defaults) { + Font f = defaults.getFont(parentKey); + if (f != null) { + // always round size for now so we have exact int font size + // (or we may have lame looking fonts) + float size = Math.round(f.getSize2D() * sizeOffset); + int style = f.getStyle(); + if (bold != null) { + if (bold.booleanValue()) { + style = style | Font.BOLD; + } else { + style = style & ~Font.BOLD; + } + } + if (italic != null) { + if (italic.booleanValue()) { + style = style | Font.ITALIC; + } else { + style = style & ~Font.ITALIC; + } + } + return f.deriveFont(style, size); + } else { + return null; + } + } + } + + + /** + * This class is private because it relies on the constructor of the + * auto-generated AbstractRegionPainter subclasses. Hence, it is not + * generally useful, and is private. + *

+ * LazyPainter is a LazyValue class. It will create the + * AbstractRegionPainter lazily, when asked. It uses reflection to load the + * proper class and invoke its constructor. + */ + private static final class LazyPainter implements UIDefaults.LazyValue { + private int which; + private AbstractRegionPainter.PaintContext ctx; + private String className; + + LazyPainter(String className, int which, Insets insets, + Dimension canvasSize, boolean inverted) { + if (className == null) { + throw new IllegalArgumentException( + "The className must be specified"); + } + + this.className = className; + this.which = which; + this.ctx = new AbstractRegionPainter.PaintContext( + insets, canvasSize, inverted); + } + + LazyPainter(String className, int which, Insets insets, + Dimension canvasSize, boolean inverted, + AbstractRegionPainter.PaintContext.CacheMode cacheMode, + double maxH, double maxV) { + if (className == null) { + throw new IllegalArgumentException( + "The className must be specified"); + } + + this.className = className; + this.which = which; + this.ctx = new AbstractRegionPainter.PaintContext( + insets, canvasSize, inverted, cacheMode, maxH, maxV); + } + + @Override + public Object createValue(UIDefaults table) { + try { + Class c; + Object cl; + // See if we should use a separate ClassLoader + if (table == null || !((cl = table.get("ClassLoader")) + instanceof ClassLoader)) { + cl = Thread.currentThread(). + getContextClassLoader(); + if (cl == null) { + // Fallback to the system class loader. + cl = ClassLoader.getSystemClassLoader(); + } + } + + c = Class.forName(className, true, (ClassLoader)cl); + Constructor constructor = c.getConstructor( + AbstractRegionPainter.PaintContext.class, int.class); + if (constructor == null) { + throw new NullPointerException( + "Failed to find the constructor for the class: " + + className); + } + return constructor.newInstance(ctx, which); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + } + + /** + * A class which creates the NimbusStyle associated with it lazily, but also + * manages a lot more information about the style. It is less of a LazyValue + * type of class, and more of an Entry or Item type of class, as it + * represents an entry in the list of LazyStyles in the map m. + * + * The primary responsibilities of this class include: + *

    + *
  • Determining whether a given component/region pair matches this + * style
  • + *
  • Splitting the prefix specified in the constructor into its + * constituent parts to facilitate quicker matching
  • + *
  • Creating and vending a NimbusStyle lazily.
  • + *
+ */ + private final class LazyStyle { + /** + * The prefix this LazyStyle was registered with. Something like + * Button or ComboBox:"ComboBox.arrowButton" + */ + private String prefix; + /** + * Whether or not this LazyStyle represents an unnamed component + */ + private boolean simple = true; + /** + * The various parts, or sections, of the prefix. For example, + * the prefix: + * ComboBox:"ComboBox.arrowButton" + * + * will be broken into two parts, + * ComboBox and "ComboBox.arrowButton" + */ + private Part[] parts; + /** + * Cached shared style. + */ + private NimbusStyle style; + /** + * A weakly referenced hash map such that if the reference JComponent + * key is garbage collected then the entry is removed from the map. + * This cache exists so that when a JComponent has nimbus overrides + * in its client map, a unique style will be created and returned + * for that JComponent instance, always. In such a situation each + * JComponent instance must have its own instance of NimbusStyle. + */ + private WeakHashMap> overridesCache; + + /** + * Create a new LazyStyle. + * + * @param prefix The prefix associated with this style. Cannot be null. + */ + private LazyStyle(String prefix) { + if (prefix == null) { + throw new IllegalArgumentException( + "The prefix must not be null"); + } + + this.prefix = prefix; + + //there is one odd case that needs to be supported here: cell + //renderers. A cell renderer is defined as a named internal + //component, so for example: + // List."List.cellRenderer" + //The problem is that the component named List.cellRenderer is not a + //child of a JList. Rather, it is treated more as a direct component + //Thus, if the prefix ends with "cellRenderer", then remove all the + //previous dotted parts of the prefix name so that it becomes, for + //example: "List.cellRenderer" + //Likewise, we have a hacked work around for cellRenderer, renderer, + //and listRenderer. + String temp = prefix; + if (temp.endsWith("cellRenderer\"") + || temp.endsWith("renderer\"") + || temp.endsWith("listRenderer\"")) { + temp = temp.substring(temp.lastIndexOf(":\"") + 1); + } + + //otherwise, normal code path + List sparts = split(temp); + parts = new Part[sparts.size()]; + for (int i = 0; i < parts.length; i++) { + parts[i] = new Part(sparts.get(i)); + if (parts[i].named) { + simple = false; + } + } + } + + /** + * Gets the style. Creates it if necessary. + * @return the style + */ + SynthStyle getStyle(JComponent c) { + // if the component has overrides, it gets its own unique style + // instead of the shared style. + if (c.getClientProperty("Nimbus.Overrides") != null) { + if (overridesCache == null) + overridesCache = new WeakHashMap>(); + WeakReference ref = overridesCache.get(c); + NimbusStyle s = ref == null ? null : ref.get(); + if (s == null) { + s = new NimbusStyle(prefix, c); + overridesCache.put(c, new WeakReference(s)); + } + return s; + } + + // lazily create the style if necessary + if (style == null) + style = new NimbusStyle(prefix, null); + + // return the style + return style; + } + + /** + * This LazyStyle is a match for the given component if, and only if, + * for each part of the prefix the component hierarchy matches exactly. + * That is, if given "a":something:"b", then: + * c.getName() must equals "b" + * c.getParent() can be anything + * c.getParent().getParent().getName() must equal "a". + */ + boolean matches(JComponent c) { + return matches(c, parts.length - 1); + } + + private boolean matches(Component c, int partIndex) { + if (partIndex < 0) return true; + if (c == null) return false; + //only get here if partIndex > 0 and c == null + + String name = c.getName(); + if (parts[partIndex].named && parts[partIndex].s.equals(name)) { + //so far so good, recurse + return matches(c.getParent(), partIndex - 1); + } else if (!parts[partIndex].named) { + //if c is not named, and parts[partIndex] has an expected class + //type registered, then check to make sure c is of the + //right type; + Class clazz = parts[partIndex].c; + if (clazz != null && clazz.isAssignableFrom(c.getClass())) { + //so far so good, recurse + return matches(c.getParent(), partIndex - 1); + } else if (clazz == null && + registeredRegions.containsKey(parts[partIndex].s)) { + Region r = registeredRegions.get(parts[partIndex].s); + Component parent = r.isSubregion() ? c : c.getParent(); + //special case the JInternalFrameTitlePane, because it + //doesn't fit the mold. very, very funky. + if (r == Region.INTERNAL_FRAME_TITLE_PANE && parent != null + && parent instanceof JInternalFrame.JDesktopIcon) { + JInternalFrame.JDesktopIcon icon = + (JInternalFrame.JDesktopIcon) parent; + parent = icon.getInternalFrame(); + } + //it was the name of a region. So far, so good. Recurse. + return matches(parent, partIndex - 1); + } + } + + return false; + } + + /** + * Given some dot separated prefix, split on the colons that are + * not within quotes, and not within brackets. + * + * @param prefix + * @return + */ + private List split(String prefix) { + List parts = new ArrayList(); + int bracketCount = 0; + boolean inquotes = false; + int lastIndex = 0; + for (int i = 0; i < prefix.length(); i++) { + char c = prefix.charAt(i); + + if (c == '[') { + bracketCount++; + continue; + } else if (c == '"') { + inquotes = !inquotes; + continue; + } else if (c == ']') { + bracketCount--; + if (bracketCount < 0) { + throw new RuntimeException( + "Malformed prefix: " + prefix); + } + continue; + } + + if (c == ':' && !inquotes && bracketCount == 0) { + //found a character to split on. + parts.add(prefix.substring(lastIndex, i)); + lastIndex = i + 1; + } + } + if (lastIndex < prefix.length() - 1 && !inquotes + && bracketCount == 0) { + parts.add(prefix.substring(lastIndex)); + } + return parts; + + } + + private final class Part { + private String s; + //true if this part represents a component name + private boolean named; + private Class c; + + Part(String s) { + named = s.charAt(0) == '"' && s.charAt(s.length() - 1) == '"'; + if (named) { + this.s = s.substring(1, s.length() - 1); + } else { + this.s = s; + //TODO use a map of known regions for Synth and Swing, and + //then use [classname] instead of org_class_name style + try { + c = Class.forName("javax.swing.J" + s); + } catch (Exception e) { + } + try { + c = Class.forName(s.replace("_", ".")); + } catch (Exception e) { + } + } + } + } + } + + /** + * Get a derived color, derived colors are shared instances and will be + * updated when its parent UIDefault color changes. + * + * @param uiDefaultParentName The parent UIDefault key + * @param hOffset The hue offset + * @param sOffset The saturation offset + * @param bOffset The brightness offset + * @param aOffset The alpha offset + * @return The stored derived color + */ + public DerivedColor getDerivedColor(String uiDefaultParentName, + float hOffset, float sOffset, + float bOffset, int aOffset){ + return getDerivedColor(uiDefaultParentName, hOffset, sOffset, + bOffset, aOffset, true); + } + + /** + * Get a derived color, derived colors are shared instances and will be + * updated when its parent UIDefault color changes. + * + * @param uiDefaultParentName The parent UIDefault key + * @param hOffset The hue offset + * @param sOffset The saturation offset + * @param bOffset The brightness offset + * @param aOffset The alpha offset + * @param uiResource True if the derived color should be a UIResource, + * false if it should not be a UIResource + * @return The stored derived color + */ + public DerivedColor getDerivedColor(String uiDefaultParentName, + float hOffset, float sOffset, + float bOffset, int aOffset, + boolean uiResource){ + tmpDCKey.set(uiDefaultParentName, hOffset, sOffset, bOffset, aOffset, + uiResource); + DerivedColor color = derivedColorsMap.get(tmpDCKey); + if (color == null){ + if (uiResource) { + color = new DerivedColor.UIResource(uiDefaultParentName, + hOffset, sOffset, bOffset, aOffset); + } else { + color = new DerivedColor(uiDefaultParentName, hOffset, sOffset, + bOffset, aOffset); + } + // calculate the initial value + color.rederiveColor(); + // add the listener so that if the color changes we'll propogate it + color.addPropertyChangeListener(defaultsListener); + // add to the derived colors table + derivedColorsMap.put(new DerivedColorKey(uiDefaultParentName, + hOffset, sOffset, bOffset, aOffset, uiResource),color); + } + return color; + } + + /** + * Key class for derived colors + */ + private class DerivedColorKey { + private String uiDefaultParentName; + private float hOffset, sOffset, bOffset; + private int aOffset; + private boolean uiResource; + + DerivedColorKey(){} + + DerivedColorKey(String uiDefaultParentName, float hOffset, + float sOffset, float bOffset, int aOffset, + boolean uiResource) { + set(uiDefaultParentName, hOffset, sOffset, bOffset, aOffset, uiResource); + } + + void set (String uiDefaultParentName, float hOffset, + float sOffset, float bOffset, int aOffset, + boolean uiResource) { + this.uiDefaultParentName = uiDefaultParentName; + this.hOffset = hOffset; + this.sOffset = sOffset; + this.bOffset = bOffset; + this.aOffset = aOffset; + this.uiResource = uiResource; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof DerivedColorKey)) return false; + DerivedColorKey that = (DerivedColorKey) o; + if (aOffset != that.aOffset) return false; + if (Float.compare(that.bOffset, bOffset) != 0) return false; + if (Float.compare(that.hOffset, hOffset) != 0) return false; + if (Float.compare(that.sOffset, sOffset) != 0) return false; + if (uiDefaultParentName != null ? + !uiDefaultParentName.equals(that.uiDefaultParentName) : + that.uiDefaultParentName != null) return false; + if (this.uiResource != that.uiResource) return false; + return true; + } + + @Override + public int hashCode() { + int result = super.hashCode(); + result = 31 * result + uiDefaultParentName.hashCode(); + result = 31 * result + hOffset != +0.0f ? + Float.floatToIntBits(hOffset) : 0; + result = 31 * result + sOffset != +0.0f ? + Float.floatToIntBits(sOffset) : 0; + result = 31 * result + bOffset != +0.0f ? + Float.floatToIntBits(bOffset) : 0; + result = 31 * result + aOffset; + result = 31 * result + (uiResource ? 1 : 0); + return result; + } + } + + /** + * Listener to update derived colors on UIManager Defaults changes + */ + private class DefaultsListener implements PropertyChangeListener { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Object src = evt.getSource(); + String key = evt.getPropertyName(); + if (key.equals("lookAndFeel")){ + // LAF has been installed, this is the first point at which we + // can access our defaults table via UIManager so before now + // all derived colors will be incorrect. + // First we need to update + for (DerivedColor color : derivedColorsMap.values()) { + color.rederiveColor(); + } + } else if (src instanceof DerivedColor && key.equals("rgb")) { + // derived color that is in UIManager defaults has changed + // update all its dependent colors. Don't worry about doing + // this recursively since calling rederiveColor will cause + // another PCE to be fired, ending up here and essentially + // recursing + DerivedColor parentColor = (DerivedColor)src; + String parentKey = null; + Set> entries = + UIManager.getDefaults().entrySet(); + + for (Map.Entry entry : entries) { + Object value = entry.getValue(); + if (value == parentColor) { + parentKey = entry.getKey().toString(); + } + } + + if (parentKey == null) { + //couldn't find the DerivedColor in the UIDefaults map, + //so we just bail. + return; + } + + for (Map.Entry entry : entries) { + Object value = entry.getValue(); + if (value instanceof DerivedColor) { + DerivedColor color = (DerivedColor)entry.getValue(); + if (parentKey.equals(color.getUiDefaultParentName())) { + color.rederiveColor(); + } + } + } + } + } + } + + private static final class PainterBorder implements Border, UIResource { + private Insets insets; + private Painter painter; + private String painterKey; + + PainterBorder(String painterKey, Insets insets) { + this.insets = insets; + this.painterKey = painterKey; + } + + @Override + public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { + if (painter == null) { + painter = (Painter)UIManager.get(painterKey); + if (painter == null) return; + } + + g.translate(x, y); + if (g instanceof Graphics2D) + painter.paint((Graphics2D)g, c, w, h); + else { + BufferedImage img = new BufferedImage(w, h, TYPE_INT_ARGB); + Graphics2D gfx = img.createGraphics(); + painter.paint(gfx, c, w, h); + gfx.dispose(); + g.drawImage(img, x, y, null); + img = null; + } + g.translate(-x, -y); + } + + @Override + public Insets getBorderInsets(Component c) { + return (Insets)insets.clone(); + } + + @Override + public boolean isBorderOpaque() { + return false; + } + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/OptionPaneOptionPaneMessageAreaOptionPaneLabelPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/OptionPaneOptionPaneMessageAreaOptionPaneLabelPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,105 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class OptionPaneOptionPaneMessageAreaOptionPaneLabelPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of OptionPaneOptionPaneMessageAreaOptionPaneLabelPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of OptionPaneOptionPaneMessageAreaOptionPaneLabelPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = new Color(0, 0, 255, 255); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public OptionPaneOptionPaneMessageAreaOptionPaneLabelPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/OptionPaneOptionPaneMessageAreaPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/OptionPaneOptionPaneMessageAreaPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,88 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class OptionPaneOptionPaneMessageAreaPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of OptionPaneOptionPaneMessageAreaPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of OptionPaneOptionPaneMessageAreaPainter would be created. For the moment at least, + //however, all are created for each instance. + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public OptionPaneOptionPaneMessageAreaPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/OptionPanePainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/OptionPanePainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,583 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class OptionPanePainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of OptionPanePainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int ERRORICON_ENABLED = 2; + static final int INFORMATIONICON_ENABLED = 3; + static final int QUESTIONICON_ENABLED = 4; + static final int WARNINGICON_ENABLED = 5; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of OptionPanePainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusRed", -0.014814814f, 0.18384242f, 0.015686274f, 0); + private Color color2 = decodeColor("nimbusRed", -0.014814814f, -0.403261f, 0.21960783f, 0); + private Color color3 = decodeColor("nimbusRed", -0.014814814f, -0.07154381f, 0.11372548f, 0); + private Color color4 = decodeColor("nimbusRed", -0.014814814f, 0.110274374f, 0.07058823f, 0); + private Color color5 = decodeColor("nimbusRed", -0.014814814f, -0.05413574f, 0.2588235f, 0); + private Color color6 = new Color(250, 250, 250, 255); + private Color color7 = decodeColor("nimbusRed", 0.0f, -0.79881656f, 0.33725488f, -187); + private Color color8 = new Color(255, 200, 0, 255); + private Color color9 = decodeColor("nimbusInfoBlue", 0.0f, 0.06231594f, -0.054901958f, 0); + private Color color10 = decodeColor("nimbusInfoBlue", 3.1620264E-4f, 0.07790506f, -0.19215685f, 0); + private Color color11 = decodeColor("nimbusInfoBlue", -8.2296133E-4f, -0.44631243f, 0.19215685f, 0); + private Color color12 = decodeColor("nimbusInfoBlue", 0.0012729168f, -0.0739674f, 0.043137252f, 0); + private Color color13 = decodeColor("nimbusInfoBlue", 8.354187E-4f, -0.14148629f, 0.19999999f, 0); + private Color color14 = decodeColor("nimbusInfoBlue", -0.0014793873f, -0.41456455f, 0.16470587f, 0); + private Color color15 = decodeColor("nimbusInfoBlue", 3.437996E-4f, -0.14726585f, 0.043137252f, 0); + private Color color16 = decodeColor("nimbusInfoBlue", -4.271865E-4f, -0.0055555105f, 0.0f, 0); + private Color color17 = decodeColor("nimbusInfoBlue", 0.0f, 0.0f, 0.0f, 0); + private Color color18 = decodeColor("nimbusInfoBlue", -7.866621E-4f, -0.12728173f, 0.17254901f, 0); + private Color color19 = new Color(115, 120, 126, 255); + private Color color20 = new Color(26, 34, 43, 255); + private Color color21 = new Color(168, 173, 178, 255); + private Color color22 = new Color(101, 109, 118, 255); + private Color color23 = new Color(159, 163, 168, 255); + private Color color24 = new Color(116, 122, 130, 255); + private Color color25 = new Color(96, 104, 112, 255); + private Color color26 = new Color(118, 128, 138, 255); + private Color color27 = new Color(255, 255, 255, 255); + private Color color28 = decodeColor("nimbusAlertYellow", -4.9102306E-4f, 0.1372549f, -0.15294117f, 0); + private Color color29 = decodeColor("nimbusAlertYellow", -0.0015973002f, 0.1372549f, -0.3490196f, 0); + private Color color30 = decodeColor("nimbusAlertYellow", 6.530881E-4f, -0.40784314f, 0.0f, 0); + private Color color31 = decodeColor("nimbusAlertYellow", -3.9456785E-4f, -0.109803915f, 0.0f, 0); + private Color color32 = decodeColor("nimbusAlertYellow", 0.0f, 0.0f, 0.0f, 0); + private Color color33 = decodeColor("nimbusAlertYellow", 0.008085668f, -0.04705882f, 0.0f, 0); + private Color color34 = decodeColor("nimbusAlertYellow", 0.026515156f, -0.18431371f, 0.0f, 0); + private Color color35 = new Color(69, 69, 69, 255); + private Color color36 = new Color(0, 0, 0, 255); + private Color color37 = new Color(16, 16, 16, 255); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public OptionPanePainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case ERRORICON_ENABLED: painterrorIconEnabled(g); break; + case INFORMATIONICON_ENABLED: paintinformationIconEnabled(g); break; + case QUESTIONICON_ENABLED: paintquestionIconEnabled(g); break; + case WARNINGICON_ENABLED: paintwarningIconEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void painterrorIconEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(color6); + g.fill(path); + ellipse = decodeEllipse1(); + g.setPaint(color6); + g.fill(ellipse); + path = decodePath4(); + g.setPaint(color7); + g.fill(path); + + } + + private void paintinformationIconEnabled(Graphics2D g) { + ellipse = decodeEllipse2(); + g.setPaint(color8); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(color8); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(color8); + g.fill(ellipse); + ellipse = decodeEllipse3(); + g.setPaint(decodeGradient2(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse4(); + g.setPaint(decodeGradient3(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse5(); + g.setPaint(decodeGradient4(ellipse)); + g.fill(ellipse); + path = decodePath5(); + g.setPaint(color6); + g.fill(path); + ellipse = decodeEllipse6(); + g.setPaint(color6); + g.fill(ellipse); + + } + + private void paintquestionIconEnabled(Graphics2D g) { + ellipse = decodeEllipse3(); + g.setPaint(decodeGradient5(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse4(); + g.setPaint(decodeGradient6(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse5(); + g.setPaint(decodeGradient7(ellipse)); + g.fill(ellipse); + path = decodePath6(); + g.setPaint(color27); + g.fill(path); + ellipse = decodeEllipse1(); + g.setPaint(color27); + g.fill(ellipse); + + } + + private void paintwarningIconEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color8); + g.fill(rect); + path = decodePath7(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + path = decodePath8(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + path = decodePath9(); + g.setPaint(decodeGradient10(path)); + g.fill(path); + ellipse = decodeEllipse7(); + g.setPaint(color37); + g.fill(ellipse); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(1.2708334f)); + path.lineTo(decodeX(1.2708334f), decodeY(1.0f)); + path.lineTo(decodeX(1.6875f), decodeY(1.0f)); + path.lineTo(decodeX(1.9583333f), decodeY(1.2708334f)); + path.lineTo(decodeX(1.9583333f), decodeY(1.6875f)); + path.lineTo(decodeX(1.6875f), decodeY(1.9583333f)); + path.lineTo(decodeX(1.2708334f), decodeY(1.9583333f)); + path.lineTo(decodeX(1.0f), decodeY(1.6875f)); + path.lineTo(decodeX(1.0f), decodeY(1.2708334f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(1.0208334f), decodeY(1.2916666f)); + path.lineTo(decodeX(1.2916666f), decodeY(1.0208334f)); + path.lineTo(decodeX(1.6666667f), decodeY(1.0208334f)); + path.lineTo(decodeX(1.9375f), decodeY(1.2916666f)); + path.lineTo(decodeX(1.9375f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.6666667f), decodeY(1.9375f)); + path.lineTo(decodeX(1.2916666f), decodeY(1.9375f)); + path.lineTo(decodeX(1.0208334f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.0208334f), decodeY(1.2916666f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(1.4166666f), decodeY(1.2291666f)); + path.curveTo(decodeAnchorX(1.4166666269302368f, 0.0f), decodeAnchorY(1.2291666269302368f, -2.0f), decodeAnchorX(1.4791666269302368f, -2.0f), decodeAnchorY(1.1666666269302368f, 0.0f), decodeX(1.4791666f), decodeY(1.1666666f)); + path.curveTo(decodeAnchorX(1.4791666269302368f, 2.0f), decodeAnchorY(1.1666666269302368f, 0.0f), decodeAnchorX(1.5416667461395264f, 0.0f), decodeAnchorY(1.2291666269302368f, -2.0f), decodeX(1.5416667f), decodeY(1.2291666f)); + path.curveTo(decodeAnchorX(1.5416667461395264f, 0.0f), decodeAnchorY(1.2291666269302368f, 2.0f), decodeAnchorX(1.5f, 0.0f), decodeAnchorY(1.6041667461395264f, 0.0f), decodeX(1.5f), decodeY(1.6041667f)); + path.lineTo(decodeX(1.4583334f), decodeY(1.6041667f)); + path.curveTo(decodeAnchorX(1.4583333730697632f, 0.0f), decodeAnchorY(1.6041667461395264f, 0.0f), decodeAnchorX(1.4166666269302368f, 0.0f), decodeAnchorY(1.2291666269302368f, 2.0f), decodeX(1.4166666f), decodeY(1.2291666f)); + path.closePath(); + return path; + } + + private Ellipse2D decodeEllipse1() { + ellipse.setFrame(decodeX(1.4166666f), //x + decodeY(1.6666667f), //y + decodeX(1.5416667f) - decodeX(1.4166666f), //width + decodeY(1.7916667f) - decodeY(1.6666667f)); //height + return ellipse; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(1.0208334f), decodeY(1.2851562f)); + path.lineTo(decodeX(1.2799479f), decodeY(1.0208334f)); + path.lineTo(decodeX(1.6783855f), decodeY(1.0208334f)); + path.lineTo(decodeX(1.9375f), decodeY(1.28125f)); + path.lineTo(decodeX(1.9375f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.6666667f), decodeY(1.9375f)); + path.lineTo(decodeX(1.2851562f), decodeY(1.936198f)); + path.lineTo(decodeX(1.0221354f), decodeY(1.673177f)); + path.lineTo(decodeX(1.0208334f), decodeY(1.5f)); + path.lineTo(decodeX(1.0416666f), decodeY(1.5f)); + path.lineTo(decodeX(1.0416666f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.2916666f), decodeY(1.9166667f)); + path.lineTo(decodeX(1.6666667f), decodeY(1.9166667f)); + path.lineTo(decodeX(1.9166667f), decodeY(1.6666667f)); + path.lineTo(decodeX(1.9166667f), decodeY(1.2916666f)); + path.lineTo(decodeX(1.6666667f), decodeY(1.0416666f)); + path.lineTo(decodeX(1.2916666f), decodeY(1.0416666f)); + path.lineTo(decodeX(1.0416666f), decodeY(1.2916666f)); + path.lineTo(decodeX(1.0416666f), decodeY(1.5f)); + path.lineTo(decodeX(1.0208334f), decodeY(1.5f)); + path.lineTo(decodeX(1.0208334f), decodeY(1.2851562f)); + path.closePath(); + return path; + } + + private Ellipse2D decodeEllipse2() { + ellipse.setFrame(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(1.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(1.0f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse3() { + ellipse.setFrame(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(1.9583333f) - decodeX(1.0f), //width + decodeY(1.9583333f) - decodeY(1.0f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse4() { + ellipse.setFrame(decodeX(1.0208334f), //x + decodeY(1.0208334f), //y + decodeX(1.9375f) - decodeX(1.0208334f), //width + decodeY(1.9375f) - decodeY(1.0208334f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse5() { + ellipse.setFrame(decodeX(1.0416666f), //x + decodeY(1.0416666f), //y + decodeX(1.9166667f) - decodeX(1.0416666f), //width + decodeY(1.9166667f) - decodeY(1.0416666f)); //height + return ellipse; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(1.375f), decodeY(1.375f)); + path.curveTo(decodeAnchorX(1.375f, 2.5f), decodeAnchorY(1.375f, 0.0f), decodeAnchorX(1.5f, -1.1875f), decodeAnchorY(1.375f, 0.0f), decodeX(1.5f), decodeY(1.375f)); + path.curveTo(decodeAnchorX(1.5f, 1.1875f), decodeAnchorY(1.375f, 0.0f), decodeAnchorX(1.5416667461395264f, 0.0f), decodeAnchorY(1.4375f, -2.0f), decodeX(1.5416667f), decodeY(1.4375f)); + path.curveTo(decodeAnchorX(1.5416667461395264f, 0.0f), decodeAnchorY(1.4375f, 2.0f), decodeAnchorX(1.5416667461395264f, 0.0f), decodeAnchorY(1.6875f, 0.0f), decodeX(1.5416667f), decodeY(1.6875f)); + path.curveTo(decodeAnchorX(1.5416667461395264f, 0.0f), decodeAnchorY(1.6875f, 0.0f), decodeAnchorX(1.6028645038604736f, -2.5625f), decodeAnchorY(1.6875f, 0.0625f), decodeX(1.6028645f), decodeY(1.6875f)); + path.curveTo(decodeAnchorX(1.6028645038604736f, 2.5625f), decodeAnchorY(1.6875f, -0.0625f), decodeAnchorX(1.6041667461395264f, 2.5625f), decodeAnchorY(1.7708332538604736f, 0.0f), decodeX(1.6041667f), decodeY(1.7708333f)); + path.curveTo(decodeAnchorX(1.6041667461395264f, -2.5625f), decodeAnchorY(1.7708332538604736f, 0.0f), decodeAnchorX(1.3567708730697632f, 2.5f), decodeAnchorY(1.7708332538604736f, 0.0625f), decodeX(1.3567709f), decodeY(1.7708333f)); + path.curveTo(decodeAnchorX(1.3567708730697632f, -2.5f), decodeAnchorY(1.7708332538604736f, -0.0625f), decodeAnchorX(1.3541666269302368f, -2.4375f), decodeAnchorY(1.6875f, 0.0f), decodeX(1.3541666f), decodeY(1.6875f)); + path.curveTo(decodeAnchorX(1.3541666269302368f, 2.4375f), decodeAnchorY(1.6875f, 0.0f), decodeAnchorX(1.4166666269302368f, 0.0f), decodeAnchorY(1.6875f, 0.0f), decodeX(1.4166666f), decodeY(1.6875f)); + path.lineTo(decodeX(1.4166666f), decodeY(1.4583334f)); + path.curveTo(decodeAnchorX(1.4166666269302368f, 0.0f), decodeAnchorY(1.4583333730697632f, 0.0f), decodeAnchorX(1.375f, 2.75f), decodeAnchorY(1.4583333730697632f, 0.0f), decodeX(1.375f), decodeY(1.4583334f)); + path.curveTo(decodeAnchorX(1.375f, -2.75f), decodeAnchorY(1.4583333730697632f, 0.0f), decodeAnchorX(1.375f, -2.5f), decodeAnchorY(1.375f, 0.0f), decodeX(1.375f), decodeY(1.375f)); + path.closePath(); + return path; + } + + private Ellipse2D decodeEllipse6() { + ellipse.setFrame(decodeX(1.4166666f), //x + decodeY(1.1666666f), //y + decodeX(1.5416667f) - decodeX(1.4166666f), //width + decodeY(1.2916666f) - decodeY(1.1666666f)); //height + return ellipse; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(1.3125f), decodeY(1.3723959f)); + path.curveTo(decodeAnchorX(1.3125f, 1.5f), decodeAnchorY(1.3723958730697632f, 1.375f), decodeAnchorX(1.3997396230697632f, -0.75f), decodeAnchorY(1.3580728769302368f, 1.1875f), decodeX(1.3997396f), decodeY(1.3580729f)); + path.curveTo(decodeAnchorX(1.3997396230697632f, 0.75f), decodeAnchorY(1.3580728769302368f, -1.1875f), decodeAnchorX(1.46875f, -1.8125f), decodeAnchorY(1.2903646230697632f, 0.0f), decodeX(1.46875f), decodeY(1.2903646f)); + path.curveTo(decodeAnchorX(1.46875f, 1.8125f), decodeAnchorY(1.2903646230697632f, 0.0f), decodeAnchorX(1.53515625f, 0.0f), decodeAnchorY(1.3502603769302368f, -1.5625f), decodeX(1.5351562f), decodeY(1.3502604f)); + path.curveTo(decodeAnchorX(1.53515625f, 0.0f), decodeAnchorY(1.3502603769302368f, 1.5625f), decodeAnchorX(1.4700521230697632f, 1.25f), decodeAnchorY(1.4283853769302368f, -1.1875f), decodeX(1.4700521f), decodeY(1.4283854f)); + path.curveTo(decodeAnchorX(1.4700521230697632f, -1.25f), decodeAnchorY(1.4283853769302368f, 1.1875f), decodeAnchorX(1.41796875f, -0.0625f), decodeAnchorY(1.5442707538604736f, -1.5f), decodeX(1.4179688f), decodeY(1.5442708f)); + path.curveTo(decodeAnchorX(1.41796875f, 0.0625f), decodeAnchorY(1.5442707538604736f, 1.5f), decodeAnchorX(1.4765625f, -1.3125f), decodeAnchorY(1.6028645038604736f, 0.0f), decodeX(1.4765625f), decodeY(1.6028645f)); + path.curveTo(decodeAnchorX(1.4765625f, 1.3125f), decodeAnchorY(1.6028645038604736f, 0.0f), decodeAnchorX(1.5403645038604736f, 0.0f), decodeAnchorY(1.546875f, 1.625f), decodeX(1.5403645f), decodeY(1.546875f)); + path.curveTo(decodeAnchorX(1.5403645038604736f, 0.0f), decodeAnchorY(1.546875f, -1.625f), decodeAnchorX(1.61328125f, -1.1875f), decodeAnchorY(1.46484375f, 1.25f), decodeX(1.6132812f), decodeY(1.4648438f)); + path.curveTo(decodeAnchorX(1.61328125f, 1.1875f), decodeAnchorY(1.46484375f, -1.25f), decodeAnchorX(1.6666667461395264f, 0.0625f), decodeAnchorY(1.3463541269302368f, 3.3125f), decodeX(1.6666667f), decodeY(1.3463541f)); + path.curveTo(decodeAnchorX(1.6666667461395264f, -0.0625f), decodeAnchorY(1.3463541269302368f, -3.3125f), decodeAnchorX(1.4830728769302368f, 6.125f), decodeAnchorY(1.16796875f, -0.0625f), decodeX(1.4830729f), decodeY(1.1679688f)); + path.curveTo(decodeAnchorX(1.4830728769302368f, -6.125f), decodeAnchorY(1.16796875f, 0.0625f), decodeAnchorX(1.3046875f, 0.4375f), decodeAnchorY(1.2890625f, -1.25f), decodeX(1.3046875f), decodeY(1.2890625f)); + path.curveTo(decodeAnchorX(1.3046875f, -0.4375f), decodeAnchorY(1.2890625f, 1.25f), decodeAnchorX(1.3125f, -1.5f), decodeAnchorY(1.3723958730697632f, -1.375f), decodeX(1.3125f), decodeY(1.3723959f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(1.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(1.0f)); //height + return rect; + } + + private Path2D decodePath7() { + path.reset(); + path.moveTo(decodeX(1.5f), decodeY(1.0208334f)); + path.curveTo(decodeAnchorX(1.5f, 2.0f), decodeAnchorY(1.0208333730697632f, 0.0f), decodeAnchorX(1.56640625f, 0.0f), decodeAnchorY(1.08203125f, 0.0f), decodeX(1.5664062f), decodeY(1.0820312f)); + path.lineTo(decodeX(1.9427083f), decodeY(1.779948f)); + path.curveTo(decodeAnchorX(1.9427082538604736f, 0.0f), decodeAnchorY(1.7799479961395264f, 0.0f), decodeAnchorX(1.9752604961395264f, 0.0f), decodeAnchorY(1.8802082538604736f, -2.375f), decodeX(1.9752605f), decodeY(1.8802083f)); + path.curveTo(decodeAnchorX(1.9752604961395264f, 0.0f), decodeAnchorY(1.8802082538604736f, 2.375f), decodeAnchorX(1.9166667461395264f, 0.0f), decodeAnchorY(1.9375f, 0.0f), decodeX(1.9166667f), decodeY(1.9375f)); + path.lineTo(decodeX(1.0833334f), decodeY(1.9375f)); + path.curveTo(decodeAnchorX(1.0833333730697632f, 0.0f), decodeAnchorY(1.9375f, 0.0f), decodeAnchorX(1.0247396230697632f, 0.125f), decodeAnchorY(1.8815104961395264f, 2.25f), decodeX(1.0247396f), decodeY(1.8815105f)); + path.curveTo(decodeAnchorX(1.0247396230697632f, -0.125f), decodeAnchorY(1.8815104961395264f, -2.25f), decodeAnchorX(1.0598958730697632f, 0.0f), decodeAnchorY(1.78125f, 0.0f), decodeX(1.0598959f), decodeY(1.78125f)); + path.lineTo(decodeX(1.4375f), decodeY(1.0833334f)); + path.curveTo(decodeAnchorX(1.4375f, 0.0f), decodeAnchorY(1.0833333730697632f, 0.0f), decodeAnchorX(1.5f, -2.0f), decodeAnchorY(1.0208333730697632f, 0.0f), decodeX(1.5f), decodeY(1.0208334f)); + path.closePath(); + return path; + } + + private Path2D decodePath8() { + path.reset(); + path.moveTo(decodeX(1.4986979f), decodeY(1.0429688f)); + path.curveTo(decodeAnchorX(1.4986978769302368f, 1.75f), decodeAnchorY(1.04296875f, 0.0f), decodeAnchorX(1.5546875f, 0.0f), decodeAnchorY(1.0950521230697632f, 0.0f), decodeX(1.5546875f), decodeY(1.0950521f)); + path.lineTo(decodeX(1.9322917f), decodeY(1.8007812f)); + path.curveTo(decodeAnchorX(1.9322917461395264f, 0.0f), decodeAnchorY(1.80078125f, 0.0f), decodeAnchorX(1.95703125f, 0.0f), decodeAnchorY(1.875f, -1.4375f), decodeX(1.9570312f), decodeY(1.875f)); + path.curveTo(decodeAnchorX(1.95703125f, 0.0f), decodeAnchorY(1.875f, 1.4375f), decodeAnchorX(1.8841145038604736f, 0.0f), decodeAnchorY(1.9166667461395264f, 0.0f), decodeX(1.8841145f), decodeY(1.9166667f)); + path.lineTo(decodeX(1.1002604f), decodeY(1.9166667f)); + path.curveTo(decodeAnchorX(1.1002603769302368f, 0.0f), decodeAnchorY(1.9166667461395264f, 0.0f), decodeAnchorX(1.0455728769302368f, 0.0625f), decodeAnchorY(1.8723957538604736f, 1.625f), decodeX(1.0455729f), decodeY(1.8723958f)); + path.curveTo(decodeAnchorX(1.0455728769302368f, -0.0625f), decodeAnchorY(1.8723957538604736f, -1.625f), decodeAnchorX(1.0755208730697632f, 0.0f), decodeAnchorY(1.7903645038604736f, 0.0f), decodeX(1.0755209f), decodeY(1.7903645f)); + path.lineTo(decodeX(1.4414062f), decodeY(1.1028646f)); + path.curveTo(decodeAnchorX(1.44140625f, 0.0f), decodeAnchorY(1.1028646230697632f, 0.0f), decodeAnchorX(1.4986978769302368f, -1.75f), decodeAnchorY(1.04296875f, 0.0f), decodeX(1.4986979f), decodeY(1.0429688f)); + path.closePath(); + return path; + } + + private Path2D decodePath9() { + path.reset(); + path.moveTo(decodeX(1.5f), decodeY(1.2291666f)); + path.curveTo(decodeAnchorX(1.5f, 2.0f), decodeAnchorY(1.2291666269302368f, 0.0f), decodeAnchorX(1.5625f, 0.0f), decodeAnchorY(1.3125f, -2.0f), decodeX(1.5625f), decodeY(1.3125f)); + path.curveTo(decodeAnchorX(1.5625f, 0.0f), decodeAnchorY(1.3125f, 2.0f), decodeAnchorX(1.5f, 1.3125f), decodeAnchorY(1.6666667461395264f, 0.0f), decodeX(1.5f), decodeY(1.6666667f)); + path.curveTo(decodeAnchorX(1.5f, -1.3125f), decodeAnchorY(1.6666667461395264f, 0.0f), decodeAnchorX(1.4375f, 0.0f), decodeAnchorY(1.3125f, 2.0f), decodeX(1.4375f), decodeY(1.3125f)); + path.curveTo(decodeAnchorX(1.4375f, 0.0f), decodeAnchorY(1.3125f, -2.0f), decodeAnchorX(1.5f, -2.0f), decodeAnchorY(1.2291666269302368f, 0.0f), decodeX(1.5f), decodeY(1.2291666f)); + path.closePath(); + return path; + } + + private Ellipse2D decodeEllipse7() { + ellipse.setFrame(decodeX(1.4375f), //x + decodeY(1.7291667f), //y + decodeX(1.5625f) - decodeX(1.4375f), //width + decodeY(1.8541667f) - decodeY(1.7291667f)); //height + return ellipse; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.17258064f,0.3451613f,0.5145161f,0.683871f,0.9f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color9, + decodeColor(color9,color10,0.5f), + color10}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.24143836f,0.48287672f,0.7414384f,1.0f }, + new Color[] { color11, + decodeColor(color11,color12,0.5f), + color12, + decodeColor(color12,color13,0.5f), + color13}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.14212328f,0.28424656f,0.39212328f,0.5f,0.60958904f,0.7191781f,0.85958904f,1.0f }, + new Color[] { color14, + decodeColor(color14,color15,0.5f), + color15, + decodeColor(color15,color16,0.5f), + color16, + decodeColor(color16,color17,0.5f), + color17, + decodeColor(color17,color18,0.5f), + color18}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color19, + decodeColor(color19,color20,0.5f), + color20}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color21, + decodeColor(color21,color22,0.5f), + color22}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.15239726f,0.30479452f,0.47945207f,0.6541096f,0.8270548f,1.0f }, + new Color[] { color23, + decodeColor(color23,color24,0.5f), + color24, + decodeColor(color24,color25,0.5f), + color25, + decodeColor(color25,color26,0.5f), + color26}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color28, + decodeColor(color28,color29,0.5f), + color29}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.1729452f,0.3458904f,0.49315068f,0.64041096f,0.7328767f,0.8253425f,0.9126712f,1.0f }, + new Color[] { color30, + decodeColor(color30,color31,0.5f), + color31, + decodeColor(color31,color32,0.5f), + color32, + decodeColor(color32,color33,0.5f), + color33, + decodeColor(color33,color34,0.5f), + color34}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color35, + decodeColor(color35,color36,0.5f), + color36}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/PasswordFieldPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/PasswordFieldPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,381 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class PasswordFieldPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of PasswordFieldPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_SELECTED = 3; + static final int BORDER_DISABLED = 4; + static final int BORDER_FOCUSED = 5; + static final int BORDER_ENABLED = 6; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of PasswordFieldPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.07995863f, 0.15294117f, 0); + private Color color2 = decodeColor("nimbusLightBackground", 0.0f, 0.0f, 0.0f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.07187897f, 0.06666666f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07826825f, 0.10588235f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07856284f, 0.11372548f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07796818f, 0.09803921f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.0965403f, -0.18431371f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.1048766f, -0.05098039f, 0); + private Color color9 = decodeColor("nimbusLightBackground", 0.6666667f, 0.004901961f, -0.19999999f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10512091f, -0.019607842f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.105344966f, 0.011764705f, 0); + private Color color12 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public PasswordFieldPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + case BORDER_DISABLED: paintBorderDisabled(g); break; + case BORDER_FOCUSED: paintBorderFocused(g); break; + case BORDER_ENABLED: paintBorderEnabled(g); break; + + } + } + + protected Object[] getExtendedCacheKeys(JComponent c) { + Object[] extendedCacheKeys = null; + switch(state) { + case BACKGROUND_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + case BORDER_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color9, 0.004901961f, -0.19999999f, 0), + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + case BORDER_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color9, 0.004901961f, -0.19999999f, 0), + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + } + return extendedCacheKeys; + } + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint((Color)componentColors[0]); + g.fill(rect); + + } + + private void paintBackgroundSelected(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color2); + g.fill(rect); + + } + + private void paintBorderDisabled(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color6); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect6(); + g.setPaint(color4); + g.fill(rect); + + } + + private void paintBorderFocused(Graphics2D g) { + rect = decodeRect7(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect11(); + g.setPaint(color11); + g.fill(rect); + path = decodePath1(); + g.setPaint(color12); + g.fill(path); + + } + + private void paintBorderEnabled(Graphics2D g) { + rect = decodeRect7(); + g.setPaint(decodeGradient5(rect)); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect11(); + g.setPaint(color11); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(0.4f), //y + decodeX(2.3333333f) - decodeX(0.6666667f), //width + decodeY(1.0f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.6f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(1.0f), //y + decodeX(1.0f) - decodeX(0.6666667f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect5() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(2.3333333f), //y + decodeX(2.3333333f) - decodeX(0.6666667f), //width + decodeY(2.0f) - decodeY(2.3333333f)); //height + return rect; + } + + private Rectangle2D decodeRect6() { + rect.setRect(decodeX(2.0f), //x + decodeY(1.0f), //y + decodeX(2.3333333f) - decodeX(2.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect7() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(1.0f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect8() { + rect.setRect(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(1.0f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect9() { + rect.setRect(decodeX(0.4f), //x + decodeY(1.0f), //y + decodeX(0.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect10() { + rect.setRect(decodeX(2.4f), //x + decodeY(1.0f), //y + decodeX(2.6f) - decodeX(2.4f), //width + decodeY(2.6f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect11() { + rect.setRect(decodeX(0.6f), //x + decodeY(2.4f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.6f) - decodeY(2.4f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.4f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.5999999046325684f, 0.0f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeAnchorX(2.880000352859497f, 0.09999999999999432f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeX(2.8800004f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.880000352859497f, 0.09999999999999432f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeAnchorX(2.880000352859497f, 0.0f), decodeAnchorY(2.879999876022339f, 0.0f), decodeX(2.8800004f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(0.120000005f)); + path.lineTo(decodeX(2.8800004f), decodeY(0.120000005f)); + path.lineTo(decodeX(2.8800004f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.4f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color5, + decodeColor(color5,color1,0.5f), + color1}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.1625f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1]}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/PopupMenuPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/PopupMenuPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,163 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class PopupMenuPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of PopupMenuPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of PopupMenuPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, -0.39607844f, 0); + private Color color2 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, 0); + private Color color3 = decodeColor("nimbusBase", 0.021348298f, -0.6150531f, 0.39999998f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public PopupMenuPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect3(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(1.0045455f), //x + decodeY(0.11111111f), //y + decodeX(1.9954545f) - decodeX(1.0045455f), //width + decodeY(2.909091f) - decodeY(0.11111111f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.5f), //x + decodeY(0.09090909f), //y + decodeX(2.5f) - decodeX(0.5f), //width + decodeY(2.909091f) - decodeY(0.09090909f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.003f,0.02f,0.5f,0.98f,0.996f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3, + decodeColor(color3,color3,0.5f), + color3, + decodeColor(color3,color2,0.5f), + color2}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/PopupMenuSeparatorPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/PopupMenuSeparatorPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,105 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class PopupMenuSeparatorPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of PopupMenuSeparatorPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of PopupMenuSeparatorPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.008547008f, -0.03830409f, -0.039215684f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public PopupMenuSeparatorPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(1.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ProgressBarFinishedState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ProgressBarFinishedState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,42 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class ProgressBarFinishedState extends State { + ProgressBarFinishedState() { + super("Finished"); + } + + @Override protected boolean isInState(JComponent c) { + + return ((JProgressBar)c).getPercentComplete() == 1.0; + + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ProgressBarIndeterminateState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ProgressBarIndeterminateState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,42 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class ProgressBarIndeterminateState extends State { + ProgressBarIndeterminateState() { + super("Indeterminate"); + } + + @Override protected boolean isInState(JComponent c) { + + return ((JProgressBar)c).isIndeterminate(); + + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ProgressBarPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ProgressBarPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,612 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ProgressBarPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ProgressBarPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BACKGROUND_DISABLED = 2; + static final int FOREGROUND_ENABLED = 3; + static final int FOREGROUND_ENABLED_FINISHED = 4; + static final int FOREGROUND_ENABLED_INDETERMINATE = 5; + static final int FOREGROUND_DISABLED = 6; + static final int FOREGROUND_DISABLED_FINISHED = 7; + static final int FOREGROUND_DISABLED_INDETERMINATE = 8; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ProgressBarPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.0f, -0.04845735f, -0.17647058f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0f, -0.061345987f, -0.027450979f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0f, -0.097921275f, 0.18823528f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.0138888955f, -0.0925083f, 0.12549019f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, -0.08222443f, 0.086274505f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", 0.0f, -0.08477524f, 0.16862744f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0f, -0.086996906f, 0.25490195f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", 0.0f, -0.061613273f, -0.02352941f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.061265234f, 0.05098039f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.0138888955f, -0.09378991f, 0.19215685f, 0); + private Color color12 = decodeColor("nimbusBlueGrey", 0.0f, -0.08455229f, 0.1607843f, 0); + private Color color13 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.08362049f, 0.12941176f, 0); + private Color color14 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07826825f, 0.10588235f, 0); + private Color color15 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07982456f, 0.1490196f, 0); + private Color color16 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.08099045f, 0.18431371f, 0); + private Color color17 = decodeColor("nimbusOrange", 0.0f, 0.0f, 0.0f, -156); + private Color color18 = decodeColor("nimbusOrange", -0.015796512f, 0.02094239f, -0.15294117f, 0); + private Color color19 = decodeColor("nimbusOrange", -0.004321605f, 0.02094239f, -0.0745098f, 0); + private Color color20 = decodeColor("nimbusOrange", -0.008021399f, 0.02094239f, -0.10196078f, 0); + private Color color21 = decodeColor("nimbusOrange", -0.011706904f, -0.1790576f, -0.02352941f, 0); + private Color color22 = decodeColor("nimbusOrange", -0.048691254f, 0.02094239f, -0.3019608f, 0); + private Color color23 = decodeColor("nimbusOrange", 0.003940329f, -0.7375322f, 0.17647058f, 0); + private Color color24 = decodeColor("nimbusOrange", 0.005506739f, -0.46764207f, 0.109803915f, 0); + private Color color25 = decodeColor("nimbusOrange", 0.0042127445f, -0.18595415f, 0.04705882f, 0); + private Color color26 = decodeColor("nimbusOrange", 0.0047626942f, 0.02094239f, 0.0039215684f, 0); + private Color color27 = decodeColor("nimbusOrange", 0.0047626942f, -0.15147138f, 0.1607843f, 0); + private Color color28 = decodeColor("nimbusOrange", 0.010665476f, -0.27317524f, 0.25098038f, 0); + private Color color29 = decodeColor("nimbusBlueGrey", -0.54444444f, -0.08748484f, 0.10588235f, 0); + private Color color30 = decodeColor("nimbusOrange", 0.0047626942f, -0.21715283f, 0.23921567f, 0); + private Color color31 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -173); + private Color color32 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -170); + private Color color33 = decodeColor("nimbusOrange", 0.024554357f, -0.8873145f, 0.10588235f, -156); + private Color color34 = decodeColor("nimbusOrange", -0.023593787f, -0.7963165f, 0.02352941f, 0); + private Color color35 = decodeColor("nimbusOrange", -0.010608241f, -0.7760873f, 0.043137252f, 0); + private Color color36 = decodeColor("nimbusOrange", -0.015402906f, -0.7840576f, 0.035294116f, 0); + private Color color37 = decodeColor("nimbusOrange", -0.017112307f, -0.8091547f, 0.058823526f, 0); + private Color color38 = decodeColor("nimbusOrange", -0.07044564f, -0.844649f, -0.019607842f, 0); + private Color color39 = decodeColor("nimbusOrange", -0.009704903f, -0.9381485f, 0.11372548f, 0); + private Color color40 = decodeColor("nimbusOrange", -4.4563413E-4f, -0.86742973f, 0.09411764f, 0); + private Color color41 = decodeColor("nimbusOrange", -4.4563413E-4f, -0.79896283f, 0.07843137f, 0); + private Color color42 = decodeColor("nimbusOrange", 0.0013274103f, -0.7530961f, 0.06666666f, 0); + private Color color43 = decodeColor("nimbusOrange", 0.0013274103f, -0.7644457f, 0.109803915f, 0); + private Color color44 = decodeColor("nimbusOrange", 0.009244293f, -0.78794646f, 0.13333333f, 0); + private Color color45 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.0803539f, 0.16470587f, 0); + private Color color46 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07968931f, 0.14509803f, 0); + private Color color47 = decodeColor("nimbusBlueGrey", 0.02222228f, -0.08779904f, 0.11764705f, 0); + private Color color48 = decodeColor("nimbusBlueGrey", 0.0138888955f, -0.075128086f, 0.14117646f, 0); + private Color color49 = decodeColor("nimbusBlueGrey", 0.0138888955f, -0.07604356f, 0.16470587f, 0); + private Color color50 = decodeColor("nimbusOrange", 0.0014062226f, -0.77816474f, 0.12941176f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ProgressBarPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case FOREGROUND_ENABLED: paintForegroundEnabled(g); break; + case FOREGROUND_ENABLED_FINISHED: paintForegroundEnabledAndFinished(g); break; + case FOREGROUND_ENABLED_INDETERMINATE: paintForegroundEnabledAndIndeterminate(g); break; + case FOREGROUND_DISABLED: paintForegroundDisabled(g); break; + case FOREGROUND_DISABLED_FINISHED: paintForegroundDisabledAndFinished(g); break; + case FOREGROUND_DISABLED_INDETERMINATE: paintForegroundDisabledAndIndeterminate(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + + } + + private void paintForegroundEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color17); + g.fill(path); + rect = decodeRect3(); + g.setPaint(decodeGradient5(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(decodeGradient6(rect)); + g.fill(rect); + + } + + private void paintForegroundEnabledAndFinished(Graphics2D g) { + path = decodePath2(); + g.setPaint(color17); + g.fill(path); + rect = decodeRect1(); + g.setPaint(decodeGradient5(rect)); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient6(rect)); + g.fill(rect); + + } + + private void paintForegroundEnabledAndIndeterminate(Graphics2D g) { + rect = decodeRect5(); + g.setPaint(decodeGradient7(rect)); + g.fill(rect); + path = decodePath3(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + rect = decodeRect6(); + g.setPaint(color31); + g.fill(rect); + rect = decodeRect7(); + g.setPaint(color32); + g.fill(rect); + + } + + private void paintForegroundDisabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color33); + g.fill(path); + rect = decodeRect3(); + g.setPaint(decodeGradient9(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(decodeGradient10(rect)); + g.fill(rect); + + } + + private void paintForegroundDisabledAndFinished(Graphics2D g) { + path = decodePath4(); + g.setPaint(color33); + g.fill(path); + rect = decodeRect1(); + g.setPaint(decodeGradient9(rect)); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient10(rect)); + g.fill(rect); + + } + + private void paintForegroundDisabledAndIndeterminate(Graphics2D g) { + rect = decodeRect5(); + g.setPaint(decodeGradient11(rect)); + g.fill(rect); + path = decodePath5(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.4f) - decodeY(0.6f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.6f), decodeY(0.12666667f)); + path.curveTo(decodeAnchorX(0.6000000238418579f, -2.0f), decodeAnchorY(0.12666666507720947f, 0.0f), decodeAnchorX(0.12666666507720947f, 0.0f), decodeAnchorY(0.6000000238418579f, -2.0f), decodeX(0.12666667f), decodeY(0.6f)); + path.curveTo(decodeAnchorX(0.12666666507720947f, 0.0f), decodeAnchorY(0.6000000238418579f, 2.0f), decodeAnchorX(0.12666666507720947f, 0.0f), decodeAnchorY(2.4000000953674316f, -2.0f), decodeX(0.12666667f), decodeY(2.4f)); + path.curveTo(decodeAnchorX(0.12666666507720947f, 0.0f), decodeAnchorY(2.4000000953674316f, 2.0f), decodeAnchorX(0.6000000238418579f, -2.0f), decodeAnchorY(2.8933334350585938f, 0.0f), decodeX(0.6f), decodeY(2.8933334f)); + path.curveTo(decodeAnchorX(0.6000000238418579f, 2.0f), decodeAnchorY(2.8933334350585938f, 0.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(2.8933334350585938f, 0.0f), decodeX(3.0f), decodeY(2.8933334f)); + path.lineTo(decodeX(3.0f), decodeY(2.6f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(0.4f), decodeY(0.4f)); + path.lineTo(decodeX(3.0f), decodeY(0.4f)); + path.lineTo(decodeX(3.0f), decodeY(0.120000005f)); + path.curveTo(decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.12000000476837158f, 0.0f), decodeAnchorX(0.6000000238418579f, 2.0f), decodeAnchorY(0.12666666507720947f, 0.0f), decodeX(0.6f), decodeY(0.12666667f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(3.0f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.8f) - decodeX(0.6f), //width + decodeY(2.4f) - decodeY(0.6f)); //height + return rect; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.5466667f), decodeY(0.12666667f)); + path.curveTo(decodeAnchorX(0.54666668176651f, -2.000000000000001f), decodeAnchorY(0.12666666507720947f, 0.0f), decodeAnchorX(0.12000000476837158f, 0.0f), decodeAnchorY(0.6066666841506958f, -1.9999999999999998f), decodeX(0.120000005f), decodeY(0.6066667f)); + path.lineTo(decodeX(0.120000005f), decodeY(2.4266667f)); + path.curveTo(decodeAnchorX(0.12000000476837158f, 0.0f), decodeAnchorY(2.426666736602783f, 2.0f), decodeAnchorX(0.5800000429153442f, -2.0f), decodeAnchorY(2.879999876022339f, 0.0f), decodeX(0.58000004f), decodeY(2.8799999f)); + path.lineTo(decodeX(2.4f), decodeY(2.8733335f)); + path.curveTo(decodeAnchorX(2.4000000953674316f, 1.9709292441265305f), decodeAnchorY(2.87333345413208f, 0.019857039365145823f), decodeAnchorX(2.866666793823242f, -0.03333333333333499f), decodeAnchorY(2.433333158493042f, 1.9333333333333869f), decodeX(2.8666668f), decodeY(2.4333332f)); + path.lineTo(decodeX(2.8733335f), decodeY(1.9407407f)); + path.lineTo(decodeX(2.8666668f), decodeY(1.1814815f)); + path.lineTo(decodeX(2.8666668f), decodeY(0.6066667f)); + path.curveTo(decodeAnchorX(2.866666793823242f, 0.0042173304174148996f), decodeAnchorY(0.6066666841506958f, -1.9503377583381705f), decodeAnchorX(2.4599997997283936f, 1.9659460194139413f), decodeAnchorY(0.13333334028720856f, 0.017122267221350018f), decodeX(2.4599998f), decodeY(0.13333334f)); + path.lineTo(decodeX(0.5466667f), decodeY(0.12666667f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect5() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(1.3333334f)); + path.curveTo(decodeAnchorX(0.0f, 2.678571428571433f), decodeAnchorY(1.3333333730697632f, 8.881784197001252E-16f), decodeAnchorX(1.3678570985794067f, -6.214285714285715f), decodeAnchorY(0.20714285969734192f, -0.03571428571428292f), decodeX(1.3678571f), decodeY(0.20714286f)); + path.lineTo(decodeX(1.5642858f), decodeY(0.20714286f)); + path.curveTo(decodeAnchorX(1.5642857551574707f, 8.329670329670357f), decodeAnchorY(0.20714285969734192f, 0.002747252747249629f), decodeAnchorX(2.5999999046325684f, -5.2857142857142705f), decodeAnchorY(1.3333333730697632f, 0.03571428571428559f), decodeX(2.6f), decodeY(1.3333334f)); + path.lineTo(decodeX(3.0f), decodeY(1.3333334f)); + path.lineTo(decodeX(3.0f), decodeY(1.6666667f)); + path.lineTo(decodeX(2.6f), decodeY(1.6666667f)); + path.curveTo(decodeAnchorX(2.5999999046325684f, -5.321428571428569f), decodeAnchorY(1.6666667461395264f, 0.0357142857142847f), decodeAnchorX(1.5642857551574707f, 8.983516483516496f), decodeAnchorY(2.799999952316284f, 0.03846153846153122f), decodeX(1.5642858f), decodeY(2.8f)); + path.lineTo(decodeX(1.3892857f), decodeY(2.8f)); + path.curveTo(decodeAnchorX(1.389285683631897f, -6.714285714285704f), decodeAnchorY(2.799999952316284f, 0.0f), decodeAnchorX(0.0f, 2.6071428571428568f), decodeAnchorY(1.6666667461395264f, 0.03571428571428559f), decodeX(0.0f), decodeY(1.6666667f)); + path.lineTo(decodeX(0.0f), decodeY(1.3333334f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect6() { + rect.setRect(decodeX(1.25f), //x + decodeY(0.0f), //y + decodeX(1.3f) - decodeX(1.25f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect7() { + rect.setRect(decodeX(1.75f), //x + decodeY(0.0f), //y + decodeX(1.8f) - decodeX(1.75f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(0.59333336f), decodeY(0.120000005f)); + path.curveTo(decodeAnchorX(0.59333336353302f, -1.9999999999999993f), decodeAnchorY(0.12000000476837158f, 0.0f), decodeAnchorX(0.12000000476837158f, 0.0f), decodeAnchorY(0.59333336353302f, -2.000000000000001f), decodeX(0.120000005f), decodeY(0.59333336f)); + path.curveTo(decodeAnchorX(0.12000000476837158f, 0.0f), decodeAnchorY(0.59333336353302f, 1.9999999999999991f), decodeAnchorX(0.12000000476837158f, 0.0f), decodeAnchorY(2.3933331966400146f, -2.0000000000000053f), decodeX(0.120000005f), decodeY(2.3933332f)); + path.curveTo(decodeAnchorX(0.12000000476837158f, 0.0f), decodeAnchorY(2.3933331966400146f, 2.000000000000007f), decodeAnchorX(0.59333336353302f, -1.9999999999999993f), decodeAnchorY(2.8866665363311768f, 0.0f), decodeX(0.59333336f), decodeY(2.8866665f)); + path.curveTo(decodeAnchorX(0.59333336353302f, 2.000000000000003f), decodeAnchorY(2.8866665363311768f, 0.0f), decodeAnchorX(2.700000047683716f, 0.0f), decodeAnchorY(2.879999876022339f, 0.0f), decodeX(2.7f), decodeY(2.8799999f)); + path.lineTo(decodeX(2.8466668f), decodeY(2.6933334f)); + path.lineTo(decodeX(2.8533332f), decodeY(1.6148149f)); + path.lineTo(decodeX(2.86f), decodeY(1.4074074f)); + path.lineTo(decodeX(2.86f), decodeY(0.37333333f)); + path.lineTo(decodeX(2.7599998f), decodeY(0.13333334f)); + path.curveTo(decodeAnchorX(2.7599997520446777f, 0.0f), decodeAnchorY(0.13333334028720856f, 0.0f), decodeAnchorX(0.59333336353302f, 2.000000000000003f), decodeAnchorY(0.12000000476837158f, 0.0f), decodeX(0.59333336f), decodeY(0.120000005f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(1.3333334f)); + path.curveTo(decodeAnchorX(0.0f, 2.678571428571433f), decodeAnchorY(1.3333333730697632f, 8.881784197001252E-16f), decodeAnchorX(1.3678570985794067f, -6.357142857142872f), decodeAnchorY(0.20714285969734192f, -0.03571428571428337f), decodeX(1.3678571f), decodeY(0.20714286f)); + path.lineTo(decodeX(1.5642858f), decodeY(0.20714286f)); + path.curveTo(decodeAnchorX(1.5642857551574707f, 3.9999999999999964f), decodeAnchorY(0.20714285969734192f, 0.0f), decodeAnchorX(2.5999999046325684f, -5.2857142857142705f), decodeAnchorY(1.3333333730697632f, 0.03571428571428559f), decodeX(2.6f), decodeY(1.3333334f)); + path.lineTo(decodeX(3.0f), decodeY(1.3333334f)); + path.lineTo(decodeX(3.0f), decodeY(1.6666667f)); + path.lineTo(decodeX(2.6f), decodeY(1.6666667f)); + path.curveTo(decodeAnchorX(2.5999999046325684f, -5.321428571428569f), decodeAnchorY(1.6666667461395264f, 0.0357142857142847f), decodeAnchorX(1.5642857551574707f, 3.999999999999986f), decodeAnchorY(2.799999952316284f, 0.0f), decodeX(1.5642858f), decodeY(2.8f)); + path.lineTo(decodeX(1.3892857f), decodeY(2.8f)); + path.curveTo(decodeAnchorX(1.389285683631897f, -6.571428571428584f), decodeAnchorY(2.799999952316284f, -0.035714285714286476f), decodeAnchorX(0.0f, 2.6071428571428568f), decodeAnchorY(1.6666667461395264f, 0.03571428571428559f), decodeX(0.0f), decodeY(1.6666667f)); + path.lineTo(decodeX(0.0f), decodeY(1.3333334f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.038709678f,0.05967742f,0.08064516f,0.23709677f,0.3935484f,0.41612905f,0.43870968f,0.67419356f,0.90967745f,0.91451615f,0.91935486f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5, + decodeColor(color5,color6,0.5f), + color6, + decodeColor(color6,color7,0.5f), + color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.05483871f,0.5032258f,0.9516129f }, + new Color[] { color9, + decodeColor(color9,color10,0.5f), + color10}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.038709678f,0.05967742f,0.08064516f,0.23709677f,0.3935484f,0.41612905f,0.43870968f,0.67419356f,0.90967745f,0.91612905f,0.92258066f }, + new Color[] { color11, + decodeColor(color11,color12,0.5f), + color12, + decodeColor(color12,color13,0.5f), + color13, + decodeColor(color13,color14,0.5f), + color14, + decodeColor(color14,color15,0.5f), + color15, + decodeColor(color15,color16,0.5f), + color16}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.038709678f,0.05483871f,0.07096774f,0.28064516f,0.4903226f,0.6967742f,0.9032258f,0.9241935f,0.9451613f }, + new Color[] { color18, + decodeColor(color18,color19,0.5f), + color19, + decodeColor(color19,color20,0.5f), + color20, + decodeColor(color20,color21,0.5f), + color21, + decodeColor(color21,color22,0.5f), + color22}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.038709678f,0.061290324f,0.08387097f,0.27258065f,0.46129033f,0.4903226f,0.5193548f,0.71774197f,0.91612905f,0.92419356f,0.93225807f }, + new Color[] { color23, + decodeColor(color23,color24,0.5f), + color24, + decodeColor(color24,color25,0.5f), + color25, + decodeColor(color25,color26,0.5f), + color26, + decodeColor(color26,color27,0.5f), + color27, + decodeColor(color27,color28,0.5f), + color28}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.051612902f,0.06612903f,0.08064516f,0.2935484f,0.5064516f,0.6903226f,0.87419355f,0.88870966f,0.9032258f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color29,0.5f), + color29, + decodeColor(color29,color7,0.5f), + color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.20645161f,0.41290322f,0.44193548f,0.47096774f,0.7354839f,1.0f }, + new Color[] { color24, + decodeColor(color24,color25,0.5f), + color25, + decodeColor(color25,color26,0.5f), + color26, + decodeColor(color26,color30,0.5f), + color30}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.038709678f,0.05483871f,0.07096774f,0.28064516f,0.4903226f,0.6967742f,0.9032258f,0.9241935f,0.9451613f }, + new Color[] { color34, + decodeColor(color34,color35,0.5f), + color35, + decodeColor(color35,color36,0.5f), + color36, + decodeColor(color36,color37,0.5f), + color37, + decodeColor(color37,color38,0.5f), + color38}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.038709678f,0.061290324f,0.08387097f,0.27258065f,0.46129033f,0.4903226f,0.5193548f,0.71774197f,0.91612905f,0.92419356f,0.93225807f }, + new Color[] { color39, + decodeColor(color39,color40,0.5f), + color40, + decodeColor(color40,color41,0.5f), + color41, + decodeColor(color41,color42,0.5f), + color42, + decodeColor(color42,color43,0.5f), + color43, + decodeColor(color43,color44,0.5f), + color44}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.051612902f,0.06612903f,0.08064516f,0.2935484f,0.5064516f,0.6903226f,0.87419355f,0.88870966f,0.9032258f }, + new Color[] { color45, + decodeColor(color45,color46,0.5f), + color46, + decodeColor(color46,color47,0.5f), + color47, + decodeColor(color47,color48,0.5f), + color48, + decodeColor(color48,color49,0.5f), + color49}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.20645161f,0.41290322f,0.44193548f,0.47096774f,0.7354839f,1.0f }, + new Color[] { color40, + decodeColor(color40,color41,0.5f), + color41, + decodeColor(color41,color42,0.5f), + color42, + decodeColor(color42,color50,0.5f), + color50}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/RadioButtonMenuItemPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/RadioButtonMenuItemPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,171 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class RadioButtonMenuItemPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of RadioButtonMenuItemPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_MOUSEOVER = 3; + static final int BACKGROUND_SELECTED_MOUSEOVER = 4; + static final int CHECKICON_DISABLED_SELECTED = 5; + static final int CHECKICON_ENABLED_SELECTED = 6; + static final int CHECKICON_SELECTED_MOUSEOVER = 7; + static final int ICON_DISABLED = 8; + static final int ICON_ENABLED = 9; + static final int ICON_MOUSEOVER = 10; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of RadioButtonMenuItemPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusSelection", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0f, -0.08983666f, -0.17647058f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.09663743f, -0.4627451f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public RadioButtonMenuItemPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_SELECTED_MOUSEOVER: paintBackgroundSelectedAndMouseOver(g); break; + case CHECKICON_DISABLED_SELECTED: paintcheckIconDisabledAndSelected(g); break; + case CHECKICON_ENABLED_SELECTED: paintcheckIconEnabledAndSelected(g); break; + case CHECKICON_SELECTED_MOUSEOVER: paintcheckIconSelectedAndMouseOver(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundMouseOver(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundSelectedAndMouseOver(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintcheckIconDisabledAndSelected(Graphics2D g) { + path = decodePath1(); + g.setPaint(color2); + g.fill(path); + + } + + private void paintcheckIconEnabledAndSelected(Graphics2D g) { + path = decodePath2(); + g.setPaint(color3); + g.fill(path); + + } + + private void paintcheckIconSelectedAndMouseOver(Graphics2D g) { + path = decodePath2(); + g.setPaint(color4); + g.fill(path); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(2.097561f)); + path.lineTo(decodeX(0.90975606f), decodeY(0.20243903f)); + path.lineTo(decodeX(3.0f), decodeY(2.102439f)); + path.lineTo(decodeX(0.90731704f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.097561f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.0024390244f), decodeY(2.097561f)); + path.lineTo(decodeX(0.90975606f), decodeY(0.20243903f)); + path.lineTo(decodeX(3.0f), decodeY(2.102439f)); + path.lineTo(decodeX(0.90731704f), decodeY(3.0f)); + path.lineTo(decodeX(0.0024390244f), decodeY(2.097561f)); + path.closePath(); + return path; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/RadioButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/RadioButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,704 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class RadioButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of RadioButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int ICON_DISABLED = 3; + static final int ICON_ENABLED = 4; + static final int ICON_FOCUSED = 5; + static final int ICON_MOUSEOVER = 6; + static final int ICON_MOUSEOVER_FOCUSED = 7; + static final int ICON_PRESSED = 8; + static final int ICON_PRESSED_FOCUSED = 9; + static final int ICON_SELECTED = 10; + static final int ICON_SELECTED_FOCUSED = 11; + static final int ICON_PRESSED_SELECTED = 12; + static final int ICON_PRESSED_SELECTED_FOCUSED = 13; + static final int ICON_MOUSEOVER_SELECTED = 14; + static final int ICON_MOUSEOVER_SELECTED_FOCUSED = 15; + static final int ICON_DISABLED_SELECTED = 16; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of RadioButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.0f, -0.06766917f, 0.07843137f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0f, -0.06413457f, 0.015686274f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.0f, -0.08466425f, 0.16470587f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0f, -0.07016757f, 0.12941176f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.0f, -0.070703305f, 0.14117646f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, -0.07052632f, 0.1372549f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", 0.0f, 0.0f, 0.0f, -112); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0f, -0.053201474f, -0.12941176f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", 0.0f, 0.006356798f, -0.44313726f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10654225f, 0.23921567f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.0f, -0.07206477f, 0.17254901f, 0); + private Color color12 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color13 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.027819552f, -0.2235294f, 0); + private Color color14 = decodeColor("nimbusBlueGrey", 0.0f, 0.24241486f, -0.6117647f, 0); + private Color color15 = decodeColor("nimbusBlueGrey", -0.111111104f, -0.10655806f, 0.24313724f, 0); + private Color color16 = decodeColor("nimbusBlueGrey", 0.0f, -0.07333623f, 0.20392156f, 0); + private Color color17 = decodeColor("nimbusBlueGrey", 0.08585858f, -0.067389056f, 0.25490195f, 0); + private Color color18 = decodeColor("nimbusBlueGrey", -0.111111104f, -0.10628903f, 0.18039215f, 0); + private Color color19 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color20 = decodeColor("nimbusBlueGrey", 0.055555582f, 0.23947367f, -0.6666667f, 0); + private Color color21 = decodeColor("nimbusBlueGrey", -0.0777778f, -0.06815343f, -0.28235295f, 0); + private Color color22 = decodeColor("nimbusBlueGrey", 0.0f, -0.06866585f, 0.09803921f, 0); + private Color color23 = decodeColor("nimbusBlueGrey", -0.0027777553f, -0.0018306673f, -0.02352941f, 0); + private Color color24 = decodeColor("nimbusBlueGrey", 0.002924025f, -0.02047892f, 0.082352936f, 0); + private Color color25 = decodeColor("nimbusBase", 2.9569864E-4f, -0.36035198f, -0.007843137f, 0); + private Color color26 = decodeColor("nimbusBase", 2.9569864E-4f, 0.019458115f, -0.32156867f, 0); + private Color color27 = decodeColor("nimbusBase", 0.004681647f, -0.6195853f, 0.4235294f, 0); + private Color color28 = decodeColor("nimbusBase", 0.004681647f, -0.56704473f, 0.36470586f, 0); + private Color color29 = decodeColor("nimbusBase", 5.1498413E-4f, -0.43866998f, 0.24705881f, 0); + private Color color30 = decodeColor("nimbusBase", 5.1498413E-4f, -0.44879842f, 0.29019606f, 0); + private Color color31 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.07243107f, -0.33333334f, 0); + private Color color32 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, -0.74509805f, 0); + private Color color33 = decodeColor("nimbusBlueGrey", -0.027777791f, 0.07129187f, -0.6156863f, 0); + private Color color34 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.49803925f, 0); + private Color color35 = decodeColor("nimbusBase", 0.0030477047f, -0.1257143f, -0.15686277f, 0); + private Color color36 = decodeColor("nimbusBase", -0.0017285943f, -0.4367347f, 0.21960783f, 0); + private Color color37 = decodeColor("nimbusBase", -0.0010654926f, -0.31349206f, 0.15686274f, 0); + private Color color38 = decodeColor("nimbusBase", 0.0f, 0.0f, 0.0f, 0); + private Color color39 = decodeColor("nimbusBase", 8.05676E-4f, -0.12380952f, 0.109803915f, 0); + private Color color40 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.080223285f, -0.4862745f, 0); + private Color color41 = decodeColor("nimbusBase", -6.374717E-4f, -0.20452163f, -0.12156865f, 0); + private Color color42 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.5058824f, 0); + private Color color43 = decodeColor("nimbusBase", -0.011985004f, -0.6157143f, 0.43137252f, 0); + private Color color44 = decodeColor("nimbusBase", 0.004681647f, -0.56932425f, 0.3960784f, 0); + private Color color45 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4555341f, 0.3215686f, 0); + private Color color46 = decodeColor("nimbusBase", 5.1498413E-4f, -0.46550155f, 0.372549f, 0); + private Color color47 = decodeColor("nimbusBase", 0.0024294257f, -0.47271872f, 0.34117645f, 0); + private Color color48 = decodeColor("nimbusBase", 0.010237217f, -0.56289876f, 0.2588235f, 0); + private Color color49 = decodeColor("nimbusBase", 0.016586483f, -0.5620301f, 0.19607842f, 0); + private Color color50 = decodeColor("nimbusBase", 0.027408898f, -0.5878882f, 0.35294116f, 0); + private Color color51 = decodeColor("nimbusBase", 0.021348298f, -0.56722116f, 0.3098039f, 0); + private Color color52 = decodeColor("nimbusBase", 0.021348298f, -0.567841f, 0.31764704f, 0); + private Color color53 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.058170296f, 0.0039215684f, 0); + private Color color54 = decodeColor("nimbusBlueGrey", -0.013888836f, -0.04195489f, -0.058823526f, 0); + private Color color55 = decodeColor("nimbusBlueGrey", 0.009259284f, -0.0147816315f, -0.007843137f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public RadioButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case ICON_DISABLED: painticonDisabled(g); break; + case ICON_ENABLED: painticonEnabled(g); break; + case ICON_FOCUSED: painticonFocused(g); break; + case ICON_MOUSEOVER: painticonMouseOver(g); break; + case ICON_MOUSEOVER_FOCUSED: painticonMouseOverAndFocused(g); break; + case ICON_PRESSED: painticonPressed(g); break; + case ICON_PRESSED_FOCUSED: painticonPressedAndFocused(g); break; + case ICON_SELECTED: painticonSelected(g); break; + case ICON_SELECTED_FOCUSED: painticonSelectedAndFocused(g); break; + case ICON_PRESSED_SELECTED: painticonPressedAndSelected(g); break; + case ICON_PRESSED_SELECTED_FOCUSED: painticonPressedAndSelectedAndFocused(g); break; + case ICON_MOUSEOVER_SELECTED: painticonMouseOverAndSelected(g); break; + case ICON_MOUSEOVER_SELECTED_FOCUSED: painticonMouseOverAndSelectedAndFocused(g); break; + case ICON_DISABLED_SELECTED: painticonDisabledAndSelected(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void painticonDisabled(Graphics2D g) { + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient1(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient2(ellipse)); + g.fill(ellipse); + + } + + private void painticonEnabled(Graphics2D g) { + ellipse = decodeEllipse3(); + g.setPaint(color7); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient3(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient4(ellipse)); + g.fill(ellipse); + + } + + private void painticonFocused(Graphics2D g) { + ellipse = decodeEllipse4(); + g.setPaint(color12); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient3(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient4(ellipse)); + g.fill(ellipse); + + } + + private void painticonMouseOver(Graphics2D g) { + ellipse = decodeEllipse3(); + g.setPaint(color7); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient5(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient6(ellipse)); + g.fill(ellipse); + + } + + private void painticonMouseOverAndFocused(Graphics2D g) { + ellipse = decodeEllipse4(); + g.setPaint(color12); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient5(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient6(ellipse)); + g.fill(ellipse); + + } + + private void painticonPressed(Graphics2D g) { + ellipse = decodeEllipse3(); + g.setPaint(color19); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient7(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient8(ellipse)); + g.fill(ellipse); + + } + + private void painticonPressedAndFocused(Graphics2D g) { + ellipse = decodeEllipse4(); + g.setPaint(color12); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient7(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient8(ellipse)); + g.fill(ellipse); + + } + + private void painticonSelected(Graphics2D g) { + ellipse = decodeEllipse3(); + g.setPaint(color7); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient9(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient10(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse5(); + g.setPaint(decodeGradient11(ellipse)); + g.fill(ellipse); + + } + + private void painticonSelectedAndFocused(Graphics2D g) { + ellipse = decodeEllipse4(); + g.setPaint(color12); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient9(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient10(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse5(); + g.setPaint(decodeGradient11(ellipse)); + g.fill(ellipse); + + } + + private void painticonPressedAndSelected(Graphics2D g) { + ellipse = decodeEllipse3(); + g.setPaint(color19); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient12(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient13(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse5(); + g.setPaint(decodeGradient14(ellipse)); + g.fill(ellipse); + + } + + private void painticonPressedAndSelectedAndFocused(Graphics2D g) { + ellipse = decodeEllipse4(); + g.setPaint(color12); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient12(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient13(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse5(); + g.setPaint(decodeGradient14(ellipse)); + g.fill(ellipse); + + } + + private void painticonMouseOverAndSelected(Graphics2D g) { + ellipse = decodeEllipse3(); + g.setPaint(color7); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient15(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient16(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse5(); + g.setPaint(decodeGradient11(ellipse)); + g.fill(ellipse); + + } + + private void painticonMouseOverAndSelectedAndFocused(Graphics2D g) { + ellipse = decodeEllipse4(); + g.setPaint(color12); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient15(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient16(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse5(); + g.setPaint(decodeGradient11(ellipse)); + g.fill(ellipse); + + } + + private void painticonDisabledAndSelected(Graphics2D g) { + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient17(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient18(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse5(); + g.setPaint(decodeGradient19(ellipse)); + g.fill(ellipse); + + } + + + + private Ellipse2D decodeEllipse1() { + ellipse.setFrame(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse2() { + ellipse.setFrame(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.4f) - decodeY(0.6f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse3() { + ellipse.setFrame(decodeX(0.4f), //x + decodeY(0.6f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.8f) - decodeY(0.6f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse4() { + ellipse.setFrame(decodeX(0.120000005f), //x + decodeY(0.120000005f), //y + decodeX(2.8799999f) - decodeX(0.120000005f), //width + decodeY(2.8799999f) - decodeY(0.120000005f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse5() { + ellipse.setFrame(decodeX(1.125f), //x + decodeY(1.125f), //y + decodeX(1.875f) - decodeX(1.125f), //width + decodeY(1.875f) - decodeY(1.125f)); //height + return ellipse; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49789914f * w) + x, (-0.004201681f * h) + y, (0.5f * w) + x, (0.9978992f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49754903f * w) + x, (0.004901961f * h) + y, (0.50735295f * w) + x, (1.0f * h) + y, + new float[] { 0.06344411f,0.21601209f,0.36858007f,0.54833835f,0.72809666f,0.77492446f,0.82175225f,0.91087615f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5, + decodeColor(color5,color6,0.5f), + color6}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49789914f * w) + x, (-0.004201681f * h) + y, (0.5f * w) + x, (0.9978992f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color8, + decodeColor(color8,color9,0.5f), + color9}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49754903f * w) + x, (0.004901961f * h) + y, (0.50735295f * w) + x, (1.0f * h) + y, + new float[] { 0.06344411f,0.25009555f,0.43674698f,0.48042166f,0.52409637f,0.70481926f,0.88554215f }, + new Color[] { color10, + decodeColor(color10,color4,0.5f), + color4, + decodeColor(color4,color4,0.5f), + color4, + decodeColor(color4,color11,0.5f), + color11}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49789914f * w) + x, (-0.004201681f * h) + y, (0.5f * w) + x, (0.9978992f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49754903f * w) + x, (0.004901961f * h) + y, (0.50735295f * w) + x, (1.0f * h) + y, + new float[] { 0.06344411f,0.21601209f,0.36858007f,0.54833835f,0.72809666f,0.77492446f,0.82175225f,0.91087615f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16, + decodeColor(color16,color16,0.5f), + color16, + decodeColor(color16,color17,0.5f), + color17, + decodeColor(color17,color18,0.5f), + color18}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49789914f * w) + x, (-0.004201681f * h) + y, (0.5f * w) + x, (0.9978992f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color20, + decodeColor(color20,color21,0.5f), + color21}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49754903f * w) + x, (0.004901961f * h) + y, (0.50735295f * w) + x, (1.0f * h) + y, + new float[] { 0.06344411f,0.20792687f,0.35240963f,0.45030123f,0.5481928f,0.748494f,0.9487952f }, + new Color[] { color22, + decodeColor(color22,color23,0.5f), + color23, + decodeColor(color23,color23,0.5f), + color23, + decodeColor(color23,color24,0.5f), + color24}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49789914f * w) + x, (-0.004201681f * h) + y, (0.5f * w) + x, (0.9978992f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color25, + decodeColor(color25,color26,0.5f), + color26}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49754903f * w) + x, (0.004901961f * h) + y, (0.50735295f * w) + x, (1.0f * h) + y, + new float[] { 0.0813253f,0.100903615f,0.12048193f,0.28915662f,0.45783132f,0.6159638f,0.77409637f,0.82981926f,0.88554215f }, + new Color[] { color27, + decodeColor(color27,color28,0.5f), + color28, + decodeColor(color28,color29,0.5f), + color29, + decodeColor(color29,color29,0.5f), + color29, + decodeColor(color29,color30,0.5f), + color30}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.50490195f * w) + x, (0.0f * h) + y, (0.49509802f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.23192771f,0.46385542f,0.73192775f,1.0f }, + new Color[] { color31, + decodeColor(color31,color32,0.5f), + color32, + decodeColor(color32,color33,0.5f), + color33}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49789914f * w) + x, (-0.004201681f * h) + y, (0.5f * w) + x, (0.9978992f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color34, + decodeColor(color34,color26,0.5f), + color26}); + } + + private Paint decodeGradient13(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49754903f * w) + x, (0.004901961f * h) + y, (0.50735295f * w) + x, (1.0f * h) + y, + new float[] { 0.039156627f,0.07831325f,0.11746988f,0.2876506f,0.45783132f,0.56174695f,0.66566265f,0.7756024f,0.88554215f }, + new Color[] { color36, + decodeColor(color36,color37,0.5f), + color37, + decodeColor(color37,color38,0.5f), + color38, + decodeColor(color38,color38,0.5f), + color38, + decodeColor(color38,color39,0.5f), + color39}); + } + + private Paint decodeGradient14(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.50490195f * w) + x, (0.0f * h) + y, (0.49509802f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.23192771f,0.46385542f,0.73192775f,1.0f }, + new Color[] { color40, + decodeColor(color40,color32,0.5f), + color32, + decodeColor(color32,color33,0.5f), + color33}); + } + + private Paint decodeGradient15(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49789914f * w) + x, (-0.004201681f * h) + y, (0.5f * w) + x, (0.9978992f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color41, + decodeColor(color41,color42,0.5f), + color42}); + } + + private Paint decodeGradient16(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49754903f * w) + x, (0.004901961f * h) + y, (0.50735295f * w) + x, (1.0f * h) + y, + new float[] { 0.0813253f,0.100903615f,0.12048193f,0.20180723f,0.28313252f,0.49246985f,0.7018072f,0.7560241f,0.810241f,0.84789157f,0.88554215f }, + new Color[] { color43, + decodeColor(color43,color44,0.5f), + color44, + decodeColor(color44,color45,0.5f), + color45, + decodeColor(color45,color45,0.5f), + color45, + decodeColor(color45,color46,0.5f), + color46, + decodeColor(color46,color47,0.5f), + color47}); + } + + private Paint decodeGradient17(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49789914f * w) + x, (-0.004201681f * h) + y, (0.5f * w) + x, (0.9978992f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color48, + decodeColor(color48,color49,0.5f), + color49}); + } + + private Paint decodeGradient18(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.49754903f * w) + x, (0.004901961f * h) + y, (0.50735295f * w) + x, (1.0f * h) + y, + new float[] { 0.0813253f,0.2695783f,0.45783132f,0.67168677f,0.88554215f }, + new Color[] { color50, + decodeColor(color50,color51,0.5f), + color51, + decodeColor(color51,color52,0.5f), + color52}); + } + + private Paint decodeGradient19(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.50490195f * w) + x, (0.0f * h) + y, (0.49509802f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.23192771f,0.46385542f,0.73192775f,1.0f }, + new Color[] { color53, + decodeColor(color53,color54,0.5f), + color54, + decodeColor(color54,color55,0.5f), + color55}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ScrollBarPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ScrollBarPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,87 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ScrollBarPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ScrollBarPainter to determine which region/state is being painted + //by that instance. + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ScrollBarPainter would be created. For the moment at least, + //however, all are created for each instance. + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ScrollBarPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ScrollBarScrollBarButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ScrollBarScrollBarButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,380 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ScrollBarScrollBarButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ScrollBarScrollBarButtonPainter to determine which region/state is being painted + //by that instance. + static final int FOREGROUND_ENABLED = 1; + static final int FOREGROUND_DISABLED = 2; + static final int FOREGROUND_MOUSEOVER = 3; + static final int FOREGROUND_PRESSED = 4; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ScrollBarScrollBarButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = new Color(255, 200, 0, 255); + private Color color2 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.07763158f, -0.1490196f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", -0.111111104f, -0.10580933f, 0.086274505f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.102261856f, 0.20392156f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", -0.039682567f, -0.079276316f, 0.13333333f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.07382907f, 0.109803915f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", -0.039682567f, -0.08241387f, 0.23137254f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", -0.055555522f, -0.08443936f, -0.29411766f, -136); + private Color color9 = decodeColor("nimbusBlueGrey", -0.055555522f, -0.09876161f, 0.25490195f, -178); + private Color color10 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.08878718f, -0.5647059f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.080223285f, -0.4862745f, 0); + private Color color12 = decodeColor("nimbusBlueGrey", -0.111111104f, -0.09525914f, -0.23137254f, 0); + private Color color13 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -165); + private Color color14 = decodeColor("nimbusBlueGrey", -0.04444444f, -0.080223285f, -0.09803921f, 0); + private Color color15 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, 0.10588235f, 0); + private Color color16 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color17 = decodeColor("nimbusBlueGrey", -0.039682567f, -0.081719734f, 0.20784312f, 0); + private Color color18 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.07677104f, 0.18431371f, 0); + private Color color19 = decodeColor("nimbusBlueGrey", -0.04444444f, -0.080223285f, -0.09803921f, -69); + private Color color20 = decodeColor("nimbusBlueGrey", -0.055555522f, -0.09876161f, 0.25490195f, -39); + private Color color21 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.0951417f, -0.49019608f, 0); + private Color color22 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.086996906f, -0.4117647f, 0); + private Color color23 = decodeColor("nimbusBlueGrey", -0.111111104f, -0.09719298f, -0.15686274f, 0); + private Color color24 = decodeColor("nimbusBlueGrey", -0.037037015f, -0.043859646f, -0.21568626f, 0); + private Color color25 = decodeColor("nimbusBlueGrey", -0.06349206f, -0.07309316f, -0.011764705f, 0); + private Color color26 = decodeColor("nimbusBlueGrey", -0.048611104f, -0.07296763f, 0.09019607f, 0); + private Color color27 = decodeColor("nimbusBlueGrey", -0.03535354f, -0.05497076f, 0.031372547f, 0); + private Color color28 = decodeColor("nimbusBlueGrey", -0.034188032f, -0.043168806f, 0.011764705f, 0); + private Color color29 = decodeColor("nimbusBlueGrey", -0.03535354f, -0.0600676f, 0.109803915f, 0); + private Color color30 = decodeColor("nimbusBlueGrey", -0.037037015f, -0.043859646f, -0.21568626f, -44); + private Color color31 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, -0.74509805f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ScrollBarScrollBarButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case FOREGROUND_ENABLED: paintForegroundEnabled(g); break; + case FOREGROUND_DISABLED: paintForegroundDisabled(g); break; + case FOREGROUND_MOUSEOVER: paintForegroundMouseOver(g); break; + case FOREGROUND_PRESSED: paintForegroundPressed(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintForegroundEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(color13); + g.fill(path); + + } + + private void paintForegroundDisabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + + } + + private void paintForegroundMouseOver(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath5(); + g.setPaint(color13); + g.fill(path); + + } + + private void paintForegroundPressed(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(color31); + g.fill(path); + path = decodePath5(); + g.setPaint(color13); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(3.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(1.6956522f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(1.6956522464752197f, 0.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(1.6956522464752197f, -0.7058823529411633f), decodeAnchorY(1.307692289352417f, -3.0294117647058822f), decodeX(1.6956522f), decodeY(1.3076923f)); + path.curveTo(decodeAnchorX(1.6956522464752197f, 0.7058823529411633f), decodeAnchorY(1.307692289352417f, 3.0294117647058822f), decodeAnchorX(1.8260869979858398f, -2.0f), decodeAnchorY(1.769230842590332f, -1.9411764705882355f), decodeX(1.826087f), decodeY(1.7692308f)); + path.curveTo(decodeAnchorX(1.8260869979858398f, 2.0f), decodeAnchorY(1.769230842590332f, 1.9411764705882355f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(3.0f), decodeY(2.0f)); + path.lineTo(decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(1.0022625f)); + path.lineTo(decodeX(0.9705882f), decodeY(1.0384616f)); + path.lineTo(decodeX(1.0409207f), decodeY(1.0791855f)); + path.lineTo(decodeX(1.0409207f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(1.0022625f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(1.4782609f), decodeY(1.2307693f)); + path.lineTo(decodeX(1.4782609f), decodeY(1.7692308f)); + path.lineTo(decodeX(1.1713555f), decodeY(1.5f)); + path.lineTo(decodeX(1.4782609f), decodeY(1.2307693f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(1.6713555f), decodeY(1.0769231f)); + path.curveTo(decodeAnchorX(1.6713554859161377f, 0.7352941176470615f), decodeAnchorY(1.076923131942749f, 0.0f), decodeAnchorX(1.718670129776001f, -0.911764705882355f), decodeAnchorY(1.4095022678375244f, -2.2058823529411784f), decodeX(1.7186701f), decodeY(1.4095023f)); + path.curveTo(decodeAnchorX(1.718670129776001f, 0.911764705882355f), decodeAnchorY(1.4095022678375244f, 2.2058823529411784f), decodeAnchorX(1.8439897298812866f, -2.3529411764705905f), decodeAnchorY(1.7941176891326904f, -1.852941176470587f), decodeX(1.8439897f), decodeY(1.7941177f)); + path.curveTo(decodeAnchorX(1.8439897298812866f, 2.3529411764705905f), decodeAnchorY(1.7941176891326904f, 1.852941176470587f), decodeAnchorX(2.5f, 0.0f), decodeAnchorY(2.2352943420410156f, 0.0f), decodeX(2.5f), decodeY(2.2352943f)); + path.lineTo(decodeX(2.3529415f), decodeY(2.8235292f)); + path.curveTo(decodeAnchorX(2.3529415130615234f, 0.0f), decodeAnchorY(2.8235292434692383f, 0.0f), decodeAnchorX(1.818414330482483f, 1.5588235294117645f), decodeAnchorY(1.8438913822174072f, 1.3823529411764675f), decodeX(1.8184143f), decodeY(1.8438914f)); + path.curveTo(decodeAnchorX(1.818414330482483f, -1.5588235294117645f), decodeAnchorY(1.8438913822174072f, -1.3823529411764675f), decodeAnchorX(1.694373369216919f, 0.7941176470588225f), decodeAnchorY(1.4841628074645996f, 1.9999999999999991f), decodeX(1.6943734f), decodeY(1.4841628f)); + path.curveTo(decodeAnchorX(1.694373369216919f, -0.7941176470588225f), decodeAnchorY(1.4841628074645996f, -1.9999999999999991f), decodeAnchorX(1.6713554859161377f, -0.7352941176470598f), decodeAnchorY(1.076923131942749f, 0.0f), decodeX(1.6713555f), decodeY(1.0769231f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.032934133f,0.065868266f,0.089820355f,0.11377245f,0.23053892f,0.3473054f,0.494012f,0.6407186f,0.78443116f,0.92814374f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5, + decodeColor(color5,color6,0.5f), + color6, + decodeColor(color6,color7,0.5f), + color7}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.0f * w) + x, (0.5f * h) + y, (0.5735294f * w) + x, (0.5f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color8, + decodeColor(color8,color9,0.5f), + color9}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.925f * w) + x, (0.9285714f * h) + y, (0.925f * w) + x, (0.004201681f * h) + y, + new float[] { 0.0f,0.2964072f,0.5928144f,0.79341316f,0.994012f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11, + decodeColor(color11,color12,0.5f), + color12}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.032934133f,0.065868266f,0.089820355f,0.11377245f,0.23053892f,0.3473054f,0.494012f,0.6407186f,0.78443116f,0.92814374f }, + new Color[] { color14, + decodeColor(color14,color15,0.5f), + color15, + decodeColor(color15,color16,0.5f), + color16, + decodeColor(color16,color17,0.5f), + color17, + decodeColor(color17,color18,0.5f), + color18, + decodeColor(color18,color16,0.5f), + color16}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.0f * w) + x, (0.5f * h) + y, (0.5735294f * w) + x, (0.5f * h) + y, + new float[] { 0.19518717f,0.5975936f,1.0f }, + new Color[] { color19, + decodeColor(color19,color20,0.5f), + color20}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.925f * w) + x, (0.9285714f * h) + y, (0.925f * w) + x, (0.004201681f * h) + y, + new float[] { 0.0f,0.2964072f,0.5928144f,0.79341316f,0.994012f }, + new Color[] { color21, + decodeColor(color21,color22,0.5f), + color22, + decodeColor(color22,color23,0.5f), + color23}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.032934133f,0.065868266f,0.089820355f,0.11377245f,0.23053892f,0.3473054f,0.494012f,0.6407186f,0.78443116f,0.92814374f }, + new Color[] { color24, + decodeColor(color24,color25,0.5f), + color25, + decodeColor(color25,color26,0.5f), + color26, + decodeColor(color26,color27,0.5f), + color27, + decodeColor(color27,color28,0.5f), + color28, + decodeColor(color28,color29,0.5f), + color29}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.0f * w) + x, (0.5f * h) + y, (0.5735294f * w) + x, (0.5f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color30, + decodeColor(color30,color9,0.5f), + color9}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ScrollBarScrollBarThumbPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ScrollBarScrollBarThumbPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,379 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ScrollBarScrollBarThumbPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ScrollBarScrollBarThumbPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_FOCUSED = 3; + static final int BACKGROUND_MOUSEOVER = 4; + static final int BACKGROUND_PRESSED = 5; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ScrollBarScrollBarThumbPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", 5.1498413E-4f, 0.18061227f, -0.35686278f, 0); + private Color color2 = decodeColor("nimbusBase", 5.1498413E-4f, -0.21018237f, -0.18039218f, 0); + private Color color3 = decodeColor("nimbusBase", 7.13408E-4f, -0.53277314f, 0.25098038f, 0); + private Color color4 = decodeColor("nimbusBase", -0.07865167f, -0.6317617f, 0.44313723f, 0); + private Color color5 = decodeColor("nimbusBase", 5.1498413E-4f, -0.44340658f, 0.26666665f, 0); + private Color color6 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4669379f, 0.38039213f, 0); + private Color color7 = decodeColor("nimbusBase", -0.07865167f, -0.56512606f, 0.45098037f, 0); + private Color color8 = decodeColor("nimbusBase", -0.0017285943f, -0.362987f, 0.011764705f, 0); + private Color color9 = decodeColor("nimbusBase", 5.2034855E-5f, -0.41753247f, 0.09803921f, -222); + private Color color10 = new Color(255, 200, 0, 255); + private Color color11 = decodeColor("nimbusBase", -0.0017285943f, -0.362987f, 0.011764705f, -255); + private Color color12 = decodeColor("nimbusBase", 0.010237217f, -0.5621849f, 0.25098038f, 0); + private Color color13 = decodeColor("nimbusBase", 0.08801502f, -0.6317773f, 0.4470588f, 0); + private Color color14 = decodeColor("nimbusBase", 5.1498413E-4f, -0.45950285f, 0.34117645f, 0); + private Color color15 = decodeColor("nimbusBase", -0.0017285943f, -0.48277313f, 0.45098037f, 0); + private Color color16 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, 0); + private Color color17 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color18 = decodeColor("nimbusBase", 0.0013483167f, 0.29021162f, -0.33725494f, 0); + private Color color19 = decodeColor("nimbusBase", 0.002908647f, -0.29012606f, -0.015686274f, 0); + private Color color20 = decodeColor("nimbusBase", -8.738637E-4f, -0.40612245f, 0.21960783f, 0); + private Color color21 = decodeColor("nimbusBase", 0.0f, -0.01765871f, 0.015686274f, 0); + private Color color22 = decodeColor("nimbusBase", 0.0f, -0.12714285f, 0.1372549f, 0); + private Color color23 = decodeColor("nimbusBase", 0.0018727183f, -0.23116884f, 0.31372547f, 0); + private Color color24 = decodeColor("nimbusBase", -8.738637E-4f, -0.3579365f, -0.33725494f, 0); + private Color color25 = decodeColor("nimbusBase", 0.004681647f, -0.3857143f, -0.36078435f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ScrollBarScrollBarThumbPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(color10); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + path = decodePath1(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(color10); + g.fill(path); + path = decodePath5(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + + } + + private void paintBackgroundPressed(Graphics2D g) { + path = decodePath1(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(color10); + g.fill(path); + path = decodePath6(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(1.0f)); + path.lineTo(decodeX(0.0f), decodeY(1.0666667f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(1.0666667222976685f, 6.0f), decodeAnchorX(1.0f, -10.0f), decodeAnchorY(2.0f, 0.0f), decodeX(1.0f), decodeY(2.0f)); + path.lineTo(decodeX(2.0f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(2.0f, 10.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(1.0666667222976685f, 6.0f), decodeX(3.0f), decodeY(1.0666667f)); + path.lineTo(decodeX(3.0f), decodeY(1.0f)); + path.lineTo(decodeX(0.0f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.06666667f), decodeY(1.0f)); + path.lineTo(decodeX(0.06666667f), decodeY(1.0666667f)); + path.curveTo(decodeAnchorX(0.06666667014360428f, -0.045454545454545414f), decodeAnchorY(1.0666667222976685f, 8.45454545454545f), decodeAnchorX(1.0f, -5.863636363636354f), decodeAnchorY(1.933333396911621f, 0.0f), decodeX(1.0f), decodeY(1.9333334f)); + path.lineTo(decodeX(2.0f), decodeY(1.9333334f)); + path.curveTo(decodeAnchorX(2.0f, 5.909090909090935f), decodeAnchorY(1.933333396911621f, -3.552713678800501E-15f), decodeAnchorX(2.933333396911621f, -0.045454545454546746f), decodeAnchorY(1.0666667222976685f, 8.36363636363636f), decodeX(2.9333334f), decodeY(1.0666667f)); + path.lineTo(decodeX(2.9333334f), decodeY(1.0f)); + path.lineTo(decodeX(0.06666667f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.4f), decodeY(1.0f)); + path.lineTo(decodeX(0.06666667f), decodeY(1.0f)); + path.lineTo(decodeX(0.16060607f), decodeY(1.5090909f)); + path.curveTo(decodeAnchorX(0.16060607135295868f, 0.0f), decodeAnchorY(1.5090909004211426f, 0.0f), decodeAnchorX(0.20000000298023224f, -0.9545454545454564f), decodeAnchorY(1.1363636255264282f, 1.5454545454545472f), decodeX(0.2f), decodeY(1.1363636f)); + path.curveTo(decodeAnchorX(0.20000000298023224f, 0.9545454545454564f), decodeAnchorY(1.1363636255264282f, -1.5454545454545472f), decodeAnchorX(0.4000000059604645f, 0.0f), decodeAnchorY(1.0f, 0.0f), decodeX(0.4f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(2.4242425f), decodeY(1.5121212f)); + path.lineTo(decodeX(2.4242425f), decodeY(1.5121212f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(2.9363637f), decodeY(1.0f)); + path.lineTo(decodeX(2.6030304f), decodeY(1.0f)); + path.curveTo(decodeAnchorX(2.6030304431915283f, 0.0f), decodeAnchorY(1.0f, 0.0f), decodeAnchorX(2.7787880897521973f, -0.6818181818181728f), decodeAnchorY(1.1333333253860474f, -1.227272727272727f), decodeX(2.778788f), decodeY(1.1333333f)); + path.curveTo(decodeAnchorX(2.7787880897521973f, 0.6818181818181728f), decodeAnchorY(1.1333333253860474f, 1.227272727272727f), decodeAnchorX(2.8393938541412354f, 0.0f), decodeAnchorY(1.5060606002807617f, 0.0f), decodeX(2.8393939f), decodeY(1.5060606f)); + path.lineTo(decodeX(2.9363637f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(2.9363637f), decodeY(1.0f)); + path.lineTo(decodeX(2.5563636f), decodeY(1.0f)); + path.curveTo(decodeAnchorX(2.556363582611084f, 0.0f), decodeAnchorY(1.0f, 0.0f), decodeAnchorX(2.7587878704071045f, -0.6818181818181728f), decodeAnchorY(1.1399999856948853f, -1.2272727272727266f), decodeX(2.7587879f), decodeY(1.14f)); + path.curveTo(decodeAnchorX(2.7587878704071045f, 0.6818181818181728f), decodeAnchorY(1.1399999856948853f, 1.227272727272727f), decodeAnchorX(2.8393938541412354f, 0.0f), decodeAnchorY(1.5060606002807617f, 0.0f), decodeX(2.8393939f), decodeY(1.5060606f)); + path.lineTo(decodeX(2.9363637f), decodeY(1.0f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.038922157f,0.0508982f,0.06287425f,0.19610777f,0.32934132f,0.48952097f,0.6497006f,0.8248503f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5, + decodeColor(color5,color6,0.5f), + color6, + decodeColor(color6,color7,0.5f), + color7}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.06818182f * w) + x, (-0.005952381f * h) + y, (0.3689091f * w) + x, (0.23929171f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color8, + decodeColor(color8,color9,0.5f), + color9}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.9409091f * w) + x, (0.035928145f * h) + y, (0.5954546f * w) + x, (0.26347303f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color8, + decodeColor(color8,color11,0.5f), + color11}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.038922157f,0.0508982f,0.06287425f,0.19610777f,0.32934132f,0.48952097f,0.6497006f,0.8248503f,1.0f }, + new Color[] { color12, + decodeColor(color12,color13,0.5f), + color13, + decodeColor(color13,color14,0.5f), + color14, + decodeColor(color14,color15,0.5f), + color15, + decodeColor(color15,color16,0.5f), + color16}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color17, + decodeColor(color17,color18,0.5f), + color18}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.038922157f,0.0508982f,0.06287425f,0.19610777f,0.32934132f,0.48952097f,0.6497006f,0.8248503f,1.0f }, + new Color[] { color19, + decodeColor(color19,color20,0.5f), + color20, + decodeColor(color20,color21,0.5f), + color21, + decodeColor(color21,color22,0.5f), + color22, + decodeColor(color22,color23,0.5f), + color23}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.06818182f * w) + x, (-0.005952381f * h) + y, (0.3689091f * w) + x, (0.23929171f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color24, + decodeColor(color24,color9,0.5f), + color9}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.9409091f * w) + x, (0.035928145f * h) + y, (0.37615633f * w) + x, (0.34910178f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color25, + decodeColor(color25,color11,0.5f), + color11}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ScrollBarScrollBarTrackPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ScrollBarScrollBarTrackPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,275 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ScrollBarScrollBarTrackPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ScrollBarScrollBarTrackPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ScrollBarScrollBarTrackPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.10016362f, 0.011764705f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.100476064f, 0.035294116f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10606203f, 0.13333333f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, 0.24705881f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.02222228f, -0.06465475f, -0.31764707f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, -0.06766917f, -0.19607842f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.0655825f, -0.04705882f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0138888955f, -0.071117446f, 0.05098039f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", 0.0f, -0.07016757f, 0.12941176f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", 0.0f, -0.05967886f, -0.5137255f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.0f, -0.05967886f, -0.5137255f, -255); + private Color color12 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.07826825f, -0.5019608f, -255); + private Color color13 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.06731644f, -0.109803915f, 0); + private Color color14 = decodeColor("nimbusBlueGrey", 0.0f, -0.06924191f, 0.109803915f, 0); + private Color color15 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.06861015f, -0.09019607f, 0); + private Color color16 = decodeColor("nimbusBlueGrey", 0.0f, -0.06766917f, 0.07843137f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ScrollBarScrollBarTrackPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + path = decodePath1(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.7f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(1.2f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(1.2000000476837158f, 0.0f), decodeAnchorX(0.30000001192092896f, -1.0f), decodeAnchorY(2.200000047683716f, -1.0f), decodeX(0.3f), decodeY(2.2f)); + path.curveTo(decodeAnchorX(0.30000001192092896f, 1.0f), decodeAnchorY(2.200000047683716f, 1.0f), decodeAnchorX(0.6785714030265808f, 0.0f), decodeAnchorY(2.799999952316284f, 0.0f), decodeX(0.6785714f), decodeY(2.8f)); + path.lineTo(decodeX(0.7f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(3.0f), decodeY(0.0f)); + path.lineTo(decodeX(2.2222223f), decodeY(0.0f)); + path.lineTo(decodeX(2.2222223f), decodeY(2.8f)); + path.curveTo(decodeAnchorX(2.222222328186035f, 0.0f), decodeAnchorY(2.799999952316284f, 0.0f), decodeAnchorX(2.674603223800659f, -1.0f), decodeAnchorY(2.1857142448425293f, 1.0f), decodeX(2.6746032f), decodeY(2.1857142f)); + path.curveTo(decodeAnchorX(2.674603223800659f, 1.0000000000000036f), decodeAnchorY(2.1857142448425293f, -1.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(1.2000000476837158f, 0.0f), decodeX(3.0f), decodeY(1.2f)); + path.lineTo(decodeX(3.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.11428572f), decodeY(1.3714286f)); + path.curveTo(decodeAnchorX(0.11428572237491608f, 0.7857142857142856f), decodeAnchorY(1.3714286088943481f, -0.571428571428573f), decodeAnchorX(0.4642857015132904f, -1.3571428571428572f), decodeAnchorY(2.0714285373687744f, -1.5714285714285694f), decodeX(0.4642857f), decodeY(2.0714285f)); + path.curveTo(decodeAnchorX(0.4642857015132904f, 1.3571428571428577f), decodeAnchorY(2.0714285373687744f, 1.5714285714285694f), decodeAnchorX(0.8714286088943481f, 0.21428571428571352f), decodeAnchorY(2.7285714149475098f, -1.0f), decodeX(0.8714286f), decodeY(2.7285714f)); + path.curveTo(decodeAnchorX(0.8714286088943481f, -0.21428571428571352f), decodeAnchorY(2.7285714149475098f, 1.0f), decodeAnchorX(0.3571428656578064f, 1.5000000000000004f), decodeAnchorY(2.3142857551574707f, 1.642857142857146f), decodeX(0.35714287f), decodeY(2.3142858f)); + path.curveTo(decodeAnchorX(0.3571428656578064f, -1.5000000000000004f), decodeAnchorY(2.3142857551574707f, -1.642857142857146f), decodeAnchorX(0.11428572237491608f, -0.7857142857142856f), decodeAnchorY(1.3714286088943481f, 0.571428571428573f), decodeX(0.11428572f), decodeY(1.3714286f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(2.1111112f), decodeY(2.7f)); + path.curveTo(decodeAnchorX(2.1111111640930176f, 0.4285714285714306f), decodeAnchorY(2.700000047683716f, 0.6428571428571388f), decodeAnchorX(2.626984119415283f, -1.571428571428573f), decodeAnchorY(2.200000047683716f, 1.6428571428571388f), decodeX(2.6269841f), decodeY(2.2f)); + path.curveTo(decodeAnchorX(2.626984119415283f, 1.571428571428573f), decodeAnchorY(2.200000047683716f, -1.6428571428571388f), decodeAnchorX(2.8412699699401855f, 0.7142857142857224f), decodeAnchorY(1.3857142925262451f, 0.6428571428571459f), decodeX(2.84127f), decodeY(1.3857143f)); + path.curveTo(decodeAnchorX(2.8412699699401855f, -0.7142857142857224f), decodeAnchorY(1.3857142925262451f, -0.6428571428571459f), decodeAnchorX(2.5238094329833984f, 0.7142857142857117f), decodeAnchorY(2.057142734527588f, -0.8571428571428541f), decodeX(2.5238094f), decodeY(2.0571427f)); + path.curveTo(decodeAnchorX(2.5238094329833984f, -0.7142857142857117f), decodeAnchorY(2.057142734527588f, 0.8571428571428541f), decodeAnchorX(2.1111111640930176f, -0.4285714285714306f), decodeAnchorY(2.700000047683716f, -0.6428571428571388f), decodeX(2.1111112f), decodeY(2.7f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.016129032f,0.038709678f,0.061290324f,0.16091082f,0.26451612f,0.4378071f,0.88387096f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2, + decodeColor(color2,color3,0.5f), + color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.030645162f,0.061290324f,0.09677419f,0.13225806f,0.22096774f,0.30967742f,0.47434634f,0.82258064f }, + new Color[] { color5, + decodeColor(color5,color6,0.5f), + color6, + decodeColor(color6,color7,0.5f), + color7, + decodeColor(color7,color8,0.5f), + color8, + decodeColor(color8,color9,0.5f), + color9}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.0f * w) + x, (0.0f * h) + y, (0.9285714f * w) + x, (0.12244898f * h) + y, + new float[] { 0.0f,0.1f,1.0f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((-0.045918368f * w) + x, (0.18336426f * h) + y, (0.872449f * w) + x, (0.04050711f * h) + y, + new float[] { 0.0f,0.87096775f,1.0f }, + new Color[] { color12, + decodeColor(color12,color10,0.5f), + color10}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.12719299f * w) + x, (0.13157894f * h) + y, (0.90789473f * w) + x, (0.877193f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.86458343f * w) + x, (0.20952381f * h) + y, (0.020833189f * w) + x, (0.95238096f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ScrollPanePainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ScrollPanePainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,178 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ScrollPanePainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ScrollPanePainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BORDER_ENABLED_FOCUSED = 2; + static final int BORDER_ENABLED = 3; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ScrollPanePainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBorder", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ScrollPanePainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BORDER_ENABLED_FOCUSED: paintBorderEnabledAndFocused(g); break; + case BORDER_ENABLED: paintBorderEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBorderEnabledAndFocused(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color1); + g.fill(rect); + path = decodePath1(); + g.setPaint(color2); + g.fill(path); + + } + + private void paintBorderEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color1); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.6f), //x + decodeY(0.4f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(0.6f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(0.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(2.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(2.4f), //width + decodeY(2.6f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.6f), //x + decodeY(2.4f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.6f) - decodeY(2.4f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.4f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.5999999046325684f, 0.0f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeAnchorX(2.880000352859497f, 0.09999999999999432f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeX(2.8800004f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.880000352859497f, 0.09999999999999432f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeAnchorX(2.880000352859497f, 0.0f), decodeAnchorY(2.879999876022339f, 0.0f), decodeX(2.8800004f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(0.120000005f)); + path.lineTo(decodeX(2.8800004f), decodeY(0.120000005f)); + path.lineTo(decodeX(2.8800004f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.4f)); + path.closePath(); + return path; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SeparatorPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SeparatorPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,105 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class SeparatorPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of SeparatorPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of SeparatorPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.008547008f, -0.03830409f, -0.039215684f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public SeparatorPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(1.3333334f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(1.6666667f) - decodeY(1.3333334f)); //height + return rect; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SliderArrowShapeState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SliderArrowShapeState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,40 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class SliderArrowShapeState extends State { + SliderArrowShapeState() { + super("ArrowShape"); + } + + @Override protected boolean isInState(JComponent c) { + return c.getClientProperty("Slider.paintThumbArrowShape") == Boolean.TRUE; + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SliderPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SliderPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,87 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class SliderPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of SliderPainter to determine which region/state is being painted + //by that instance. + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of SliderPainter would be created. For the moment at least, + //however, all are created for each instance. + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public SliderPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SliderSliderThumbArrowShapeState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SliderSliderThumbArrowShapeState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,40 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class SliderSliderThumbArrowShapeState extends State { + SliderSliderThumbArrowShapeState() { + super("ArrowShape"); + } + + @Override protected boolean isInState(JComponent c) { + return c.getClientProperty("Slider.paintThumbArrowShape") == Boolean.TRUE; + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SliderSliderThumbPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SliderSliderThumbPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,654 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class SliderSliderThumbPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of SliderSliderThumbPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_FOCUSED = 3; + static final int BACKGROUND_FOCUSED_MOUSEOVER = 4; + static final int BACKGROUND_FOCUSED_PRESSED = 5; + static final int BACKGROUND_MOUSEOVER = 6; + static final int BACKGROUND_PRESSED = 7; + static final int BACKGROUND_ENABLED_ARROWSHAPE = 8; + static final int BACKGROUND_DISABLED_ARROWSHAPE = 9; + static final int BACKGROUND_MOUSEOVER_ARROWSHAPE = 10; + static final int BACKGROUND_PRESSED_ARROWSHAPE = 11; + static final int BACKGROUND_FOCUSED_ARROWSHAPE = 12; + static final int BACKGROUND_FOCUSED_MOUSEOVER_ARROWSHAPE = 13; + static final int BACKGROUND_FOCUSED_PRESSED_ARROWSHAPE = 14; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of SliderSliderThumbPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", 0.021348298f, -0.5625436f, 0.25490195f, 0); + private Color color2 = decodeColor("nimbusBase", 0.015098333f, -0.55105823f, 0.19215685f, 0); + private Color color3 = decodeColor("nimbusBase", 0.021348298f, -0.5924243f, 0.35686272f, 0); + private Color color4 = decodeColor("nimbusBase", 0.021348298f, -0.56722116f, 0.3098039f, 0); + private Color color5 = decodeColor("nimbusBase", 0.021348298f, -0.56844974f, 0.32549018f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", -0.003968239f, 0.0014736876f, -0.25490198f, -156); + private Color color7 = decodeColor("nimbusBase", 5.1498413E-4f, -0.34585923f, -0.007843137f, 0); + private Color color8 = decodeColor("nimbusBase", -0.0017285943f, -0.11571431f, -0.25490198f, 0); + private Color color9 = decodeColor("nimbusBase", -0.023096085f, -0.6238095f, 0.43921566f, 0); + private Color color10 = decodeColor("nimbusBase", 5.1498413E-4f, -0.43866998f, 0.24705881f, 0); + private Color color11 = decodeColor("nimbusBase", 5.1498413E-4f, -0.45714286f, 0.32941175f, 0); + private Color color12 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color13 = decodeColor("nimbusBase", -0.0038217902f, -0.15532213f, -0.14901963f, 0); + private Color color14 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54509807f, 0); + private Color color15 = decodeColor("nimbusBase", 0.004681647f, -0.62780917f, 0.44313723f, 0); + private Color color16 = decodeColor("nimbusBase", 2.9569864E-4f, -0.4653107f, 0.32549018f, 0); + private Color color17 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4563421f, 0.32549018f, 0); + private Color color18 = decodeColor("nimbusBase", -0.0017285943f, -0.4732143f, 0.39215684f, 0); + private Color color19 = decodeColor("nimbusBase", 0.0015952587f, -0.04875779f, -0.18823531f, 0); + private Color color20 = decodeColor("nimbusBase", 2.9569864E-4f, -0.44943976f, 0.25098038f, 0); + private Color color21 = decodeColor("nimbusBase", 0.0f, 0.0f, 0.0f, 0); + private Color color22 = decodeColor("nimbusBase", 8.9377165E-4f, -0.121094406f, 0.12156862f, 0); + private Color color23 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -121); + private Color color24 = new Color(150, 156, 168, 146); + private Color color25 = decodeColor("nimbusBase", -0.0033828616f, -0.40608466f, -0.019607842f, 0); + private Color color26 = decodeColor("nimbusBase", 5.1498413E-4f, -0.17594418f, -0.20784315f, 0); + private Color color27 = decodeColor("nimbusBase", 0.0023007393f, -0.11332625f, -0.28627452f, 0); + private Color color28 = decodeColor("nimbusBase", -0.023096085f, -0.62376213f, 0.4352941f, 0); + private Color color29 = decodeColor("nimbusBase", 0.004681647f, -0.594392f, 0.39999998f, 0); + private Color color30 = decodeColor("nimbusBase", -0.0017285943f, -0.4454704f, 0.25490195f, 0); + private Color color31 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4625541f, 0.35686272f, 0); + private Color color32 = decodeColor("nimbusBase", 5.1498413E-4f, -0.47442397f, 0.4235294f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public SliderSliderThumbPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case BACKGROUND_FOCUSED_MOUSEOVER: paintBackgroundFocusedAndMouseOver(g); break; + case BACKGROUND_FOCUSED_PRESSED: paintBackgroundFocusedAndPressed(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_ENABLED_ARROWSHAPE: paintBackgroundEnabledAndArrowShape(g); break; + case BACKGROUND_DISABLED_ARROWSHAPE: paintBackgroundDisabledAndArrowShape(g); break; + case BACKGROUND_MOUSEOVER_ARROWSHAPE: paintBackgroundMouseOverAndArrowShape(g); break; + case BACKGROUND_PRESSED_ARROWSHAPE: paintBackgroundPressedAndArrowShape(g); break; + case BACKGROUND_FOCUSED_ARROWSHAPE: paintBackgroundFocusedAndArrowShape(g); break; + case BACKGROUND_FOCUSED_MOUSEOVER_ARROWSHAPE: paintBackgroundFocusedAndMouseOverAndArrowShape(g); break; + case BACKGROUND_FOCUSED_PRESSED_ARROWSHAPE: paintBackgroundFocusedAndPressedAndArrowShape(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient1(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient2(ellipse)); + g.fill(ellipse); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + ellipse = decodeEllipse3(); + g.setPaint(color6); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient3(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient4(ellipse)); + g.fill(ellipse); + + } + + private void paintBackgroundFocused(Graphics2D g) { + ellipse = decodeEllipse4(); + g.setPaint(color12); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient3(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient4(ellipse)); + g.fill(ellipse); + + } + + private void paintBackgroundFocusedAndMouseOver(Graphics2D g) { + ellipse = decodeEllipse4(); + g.setPaint(color12); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient5(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient6(ellipse)); + g.fill(ellipse); + + } + + private void paintBackgroundFocusedAndPressed(Graphics2D g) { + ellipse = decodeEllipse4(); + g.setPaint(color12); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient7(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient8(ellipse)); + g.fill(ellipse); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + ellipse = decodeEllipse3(); + g.setPaint(color6); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient5(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient6(ellipse)); + g.fill(ellipse); + + } + + private void paintBackgroundPressed(Graphics2D g) { + ellipse = decodeEllipse3(); + g.setPaint(color23); + g.fill(ellipse); + ellipse = decodeEllipse1(); + g.setPaint(decodeGradient7(ellipse)); + g.fill(ellipse); + ellipse = decodeEllipse2(); + g.setPaint(decodeGradient8(ellipse)); + g.fill(ellipse); + + } + + private void paintBackgroundEnabledAndArrowShape(Graphics2D g) { + path = decodePath1(); + g.setPaint(color24); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient10(path)); + g.fill(path); + + } + + private void paintBackgroundDisabledAndArrowShape(Graphics2D g) { + path = decodePath2(); + g.setPaint(decodeGradient11(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + + } + + private void paintBackgroundMouseOverAndArrowShape(Graphics2D g) { + path = decodePath1(); + g.setPaint(color24); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient13(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient14(path)); + g.fill(path); + + } + + private void paintBackgroundPressedAndArrowShape(Graphics2D g) { + path = decodePath1(); + g.setPaint(color24); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient15(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient16(path)); + g.fill(path); + + } + + private void paintBackgroundFocusedAndArrowShape(Graphics2D g) { + path = decodePath4(); + g.setPaint(color12); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient17(path)); + g.fill(path); + + } + + private void paintBackgroundFocusedAndMouseOverAndArrowShape(Graphics2D g) { + path = decodePath4(); + g.setPaint(color12); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient13(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient14(path)); + g.fill(path); + + } + + private void paintBackgroundFocusedAndPressedAndArrowShape(Graphics2D g) { + path = decodePath4(); + g.setPaint(color12); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient15(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient16(path)); + g.fill(path); + + } + + + + private Ellipse2D decodeEllipse1() { + ellipse.setFrame(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse2() { + ellipse.setFrame(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.4f) - decodeY(0.6f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse3() { + ellipse.setFrame(decodeX(0.4f), //x + decodeY(0.6f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.8f) - decodeY(0.6f)); //height + return ellipse; + } + + private Ellipse2D decodeEllipse4() { + ellipse.setFrame(decodeX(0.120000005f), //x + decodeY(0.120000005f), //y + decodeX(2.8799999f) - decodeX(0.120000005f), //width + decodeY(2.8799999f) - decodeY(0.120000005f)); //height + return ellipse; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.8166667f), decodeY(0.5007576f)); + path.curveTo(decodeAnchorX(0.8166667222976685f, 1.5643268796105616f), decodeAnchorY(0.5007575750350952f, -0.309751314021121f), decodeAnchorX(2.7925455570220947f, 0.058173584548962154f), decodeAnchorY(1.6116883754730225f, -0.46476349119779314f), decodeX(2.7925456f), decodeY(1.6116884f)); + path.curveTo(decodeAnchorX(2.7925455570220947f, -0.34086855855797005f), decodeAnchorY(1.6116883754730225f, 2.723285191092547f), decodeAnchorX(0.7006363868713379f, 4.56812791706229f), decodeAnchorY(2.7693636417388916f, -0.006014915148298883f), decodeX(0.7006364f), decodeY(2.7693636f)); + path.curveTo(decodeAnchorX(0.7006363868713379f, -3.523395559100149f), decodeAnchorY(2.7693636417388916f, 0.004639302074426865f), decodeAnchorX(0.8166667222976685f, -1.8635255186676325f), decodeAnchorY(0.5007575750350952f, 0.3689954354443423f), decodeX(0.8166667f), decodeY(0.5007576f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.6155303f), decodeY(2.5954547f)); + path.curveTo(decodeAnchorX(0.6155303120613098f, 0.9098089454358838f), decodeAnchorY(2.595454692840576f, 1.3154241785830862f), decodeAnchorX(2.6151516437530518f, 0.014588808096503314f), decodeAnchorY(1.611201286315918f, 0.9295520709665155f), decodeX(2.6151516f), decodeY(1.6112013f)); + path.curveTo(decodeAnchorX(2.6151516437530518f, -0.013655180248463239f), decodeAnchorY(1.611201286315918f, -0.8700642982905453f), decodeAnchorX(0.6092391610145569f, 0.9729934749047704f), decodeAnchorY(0.4071640372276306f, -1.424864396720248f), decodeX(0.60923916f), decodeY(0.40716404f)); + path.curveTo(decodeAnchorX(0.6092391610145569f, -0.7485208875763871f), decodeAnchorY(0.4071640372276306f, 1.0961437978948614f), decodeAnchorX(0.6155303120613098f, -0.7499879392488253f), decodeAnchorY(2.595454692840576f, -1.0843510320300886f), decodeX(0.6155303f), decodeY(2.5954547f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.8055606f), decodeY(0.6009697f)); + path.curveTo(decodeAnchorX(0.8055605888366699f, 0.508208945236218f), decodeAnchorY(0.600969672203064f, -0.8490880998025481f), decodeAnchorX(2.3692727088928223f, 0.0031846066137877216f), decodeAnchorY(1.613116979598999f, -0.6066882577419275f), decodeX(2.3692727f), decodeY(1.613117f)); + path.curveTo(decodeAnchorX(2.3692727088928223f, -0.0038901961210928704f), decodeAnchorY(1.613116979598999f, 0.7411076447438294f), decodeAnchorX(0.7945454716682434f, 0.38709738141524763f), decodeAnchorY(2.393272876739502f, 1.240782009971129f), decodeX(0.7945455f), decodeY(2.3932729f)); + path.curveTo(decodeAnchorX(0.7945454716682434f, -0.3863658307342148f), decodeAnchorY(2.393272876739502f, -1.2384371350947134f), decodeAnchorX(0.8055605888366699f, -0.9951540091537732f), decodeAnchorY(0.600969672203064f, 1.6626496533832493f), decodeX(0.8055606f), decodeY(0.6009697f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(0.60059524f), decodeY(0.11727543f)); + path.curveTo(decodeAnchorX(0.600595235824585f, 1.5643268796105612f), decodeAnchorY(0.1172754317522049f, -0.3097513140211208f), decodeAnchorX(2.7925455570220947f, 0.004405844009975013f), decodeAnchorY(1.6116883754730225f, -1.1881161542467655f), decodeX(2.7925456f), decodeY(1.6116884f)); + path.curveTo(decodeAnchorX(2.7925455570220947f, -0.007364540661274788f), decodeAnchorY(1.6116883754730225f, 1.9859826422490698f), decodeAnchorX(0.7006363868713379f, 2.7716863466452586f), decodeAnchorY(2.869363784790039f, -0.008974581987587271f), decodeX(0.7006364f), decodeY(2.8693638f)); + path.curveTo(decodeAnchorX(0.7006363868713379f, -3.75489914400509f), decodeAnchorY(2.869363784790039f, 0.012158175929172899f), decodeAnchorX(0.600595235824585f, -1.8635255186676323f), decodeAnchorY(0.1172754317522049f, 0.3689954354443423f), decodeX(0.60059524f), decodeY(0.11727543f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5106101f * w) + x, (-4.553649E-18f * h) + y, (0.49933687f * w) + x, (1.0039787f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5023511f * w) + x, (0.0015673981f * h) + y, (0.5023511f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.21256684f,0.42513368f,0.71256685f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.51f * w) + x, (-4.553649E-18f * h) + y, (0.51f * w) + x, (1.0039787f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0015673981f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.21256684f,0.42513368f,0.56149733f,0.69786096f,0.8489305f,1.0f }, + new Color[] { color9, + decodeColor(color9,color10,0.5f), + color10, + decodeColor(color10,color10,0.5f), + color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5106101f * w) + x, (-4.553649E-18f * h) + y, (0.49933687f * w) + x, (1.0039787f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5023511f * w) + x, (0.0015673981f * h) + y, (0.5023511f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.21256684f,0.42513368f,0.56149733f,0.69786096f,0.8489305f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16, + decodeColor(color16,color17,0.5f), + color17, + decodeColor(color17,color18,0.5f), + color18}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5106101f * w) + x, (-4.553649E-18f * h) + y, (0.49933687f * w) + x, (1.0039787f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color14, + decodeColor(color14,color19,0.5f), + color19}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5023511f * w) + x, (0.0015673981f * h) + y, (0.5023511f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.23796791f,0.47593582f,0.5360962f,0.5962567f,0.79812837f,1.0f }, + new Color[] { color20, + decodeColor(color20,color21,0.5f), + color21, + decodeColor(color21,color21,0.5f), + color21, + decodeColor(color21,color22,0.5f), + color22}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.24032257f,0.48064515f,0.7403226f,1.0f }, + new Color[] { color25, + decodeColor(color25,color26,0.5f), + color26, + decodeColor(color26,color27,0.5f), + color27}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.061290324f,0.1016129f,0.14193548f,0.3016129f,0.46129033f,0.5983871f,0.7354839f,0.7935484f,0.8516129f }, + new Color[] { color28, + decodeColor(color28,color29,0.5f), + color29, + decodeColor(color29,color30,0.5f), + color30, + decodeColor(color30,color31,0.5f), + color31, + decodeColor(color31,color32,0.5f), + color32}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.21256684f,0.42513368f,0.71256685f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient13(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient14(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.21256684f,0.42513368f,0.56149733f,0.69786096f,0.8489305f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16, + decodeColor(color16,color17,0.5f), + color17, + decodeColor(color17,color18,0.5f), + color18}); + } + + private Paint decodeGradient15(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color14, + decodeColor(color14,color19,0.5f), + color19}); + } + + private Paint decodeGradient16(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.23796791f,0.47593582f,0.5360962f,0.5962567f,0.79812837f,1.0f }, + new Color[] { color20, + decodeColor(color20,color21,0.5f), + color21, + decodeColor(color21,color21,0.5f), + color21, + decodeColor(color21,color22,0.5f), + color22}); + } + + private Paint decodeGradient17(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.4925773f * w) + x, (0.082019866f * h) + y, (0.4925773f * w) + x, (0.91798013f * h) + y, + new float[] { 0.061290324f,0.1016129f,0.14193548f,0.3016129f,0.46129033f,0.5983871f,0.7354839f,0.7935484f,0.8516129f }, + new Color[] { color28, + decodeColor(color28,color29,0.5f), + color29, + decodeColor(color29,color30,0.5f), + color30, + decodeColor(color30,color31,0.5f), + color31, + decodeColor(color31,color32,0.5f), + color32}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SliderSliderTrackArrowShapeState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SliderSliderTrackArrowShapeState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,40 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class SliderSliderTrackArrowShapeState extends State { + SliderSliderTrackArrowShapeState() { + super("ArrowShape"); + } + + @Override protected boolean isInState(JComponent c) { + return c.getClientProperty("Slider.paintThumbArrowShape") == Boolean.TRUE; + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SliderSliderTrackPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SliderSliderTrackPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,229 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class SliderSliderTrackPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of SliderSliderTrackPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of SliderSliderTrackPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -245); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.061265234f, 0.05098039f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.01010108f, -0.059835073f, 0.10588235f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.061982628f, 0.062745094f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.058639523f, 0.086274505f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -111); + private Color color7 = decodeColor("nimbusBlueGrey", 0.0f, -0.034093194f, -0.12941176f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.01111114f, -0.023821115f, -0.06666666f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", -0.008547008f, -0.03314536f, -0.086274505f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", 0.004273474f, -0.040256046f, -0.019607842f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.0f, -0.03626889f, 0.04705882f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public SliderSliderTrackPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color6); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect5(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(0.2f), //x + decodeY(1.6f), //y + decodeX(2.8f) - decodeX(0.2f), //width + decodeY(2.8333333f) - decodeY(1.6f), //height + 8.705882f, 8.705882f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(0.0f), //x + decodeY(1.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(2.0f) - decodeY(1.0f), //height + 4.9411764f, 4.9411764f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(0.29411763f), //x + decodeY(1.2f), //y + decodeX(2.7058823f) - decodeX(0.29411763f), //width + decodeY(2.0f) - decodeY(1.2f), //height + 4.0f, 4.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect4() { + roundRect.setRoundRect(decodeX(0.2f), //x + decodeY(1.6f), //y + decodeX(2.8f) - decodeX(0.2f), //width + decodeY(2.1666667f) - decodeY(1.6f), //height + 8.705882f, 8.705882f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect5() { + roundRect.setRoundRect(decodeX(0.28823528f), //x + decodeY(1.2f), //y + decodeX(2.7f) - decodeX(0.28823528f), //width + decodeY(2.0f) - decodeY(1.2f), //height + 4.0f, 4.0f); //rounding + return roundRect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.07647059f * h) + y, (0.25f * w) + x, (0.9117647f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.13770053f,0.27540106f,0.63770056f,1.0f }, + new Color[] { color4, + decodeColor(color4,color5,0.5f), + color5, + decodeColor(color5,color3,0.5f), + color3}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.07647059f * h) + y, (0.25f * w) + x, (0.9117647f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.13770053f,0.27540106f,0.4906417f,0.7058824f }, + new Color[] { color9, + decodeColor(color9,color10,0.5f), + color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SpinnerPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SpinnerPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,88 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class SpinnerPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of SpinnerPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of SpinnerPainter would be created. For the moment at least, + //however, all are created for each instance. + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public SpinnerPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SpinnerPanelSpinnerFormattedTextFieldPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SpinnerPanelSpinnerFormattedTextFieldPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,320 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class SpinnerPanelSpinnerFormattedTextFieldPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of SpinnerPanelSpinnerFormattedTextFieldPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_FOCUSED = 3; + static final int BACKGROUND_SELECTED = 4; + static final int BACKGROUND_SELECTED_FOCUSED = 5; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of SpinnerPanelSpinnerFormattedTextFieldPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, -0.74509805f, -237); + private Color color2 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.07187897f, 0.06666666f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07703349f, 0.0745098f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07968931f, 0.14509803f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07856284f, 0.11372548f, 0); + private Color color6 = decodeColor("nimbusBase", 0.040395975f, -0.60315615f, 0.29411763f, 0); + private Color color7 = decodeColor("nimbusBase", 0.016586483f, -0.6051466f, 0.3490196f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.0965403f, -0.18431371f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.1048766f, -0.08f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.105624355f, 0.054901958f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color12 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.105344966f, 0.011764705f, 0); + private Color color13 = decodeColor("nimbusLightBackground", 0.0f, 0.0f, 0.0f, 0); + private Color color14 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color15 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.1048766f, -0.05098039f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public SpinnerPanelSpinnerFormattedTextFieldPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + case BACKGROUND_SELECTED_FOCUSED: paintBackgroundSelectedAndFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color6); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color7); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color12); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color13); + g.fill(rect); + + } + + private void paintBackgroundFocused(Graphics2D g) { + rect = decodeRect6(); + g.setPaint(color14); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient5(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color12); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color13); + g.fill(rect); + + } + + private void paintBackgroundSelected(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color12); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color13); + g.fill(rect); + + } + + private void paintBackgroundSelectedAndFocused(Graphics2D g) { + rect = decodeRect6(); + g.setPaint(color14); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient5(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color12); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color13); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(2.3333333f), //y + decodeX(3.0f) - decodeX(0.6666667f), //width + decodeY(2.6666667f) - decodeY(2.3333333f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(0.4f), //y + decodeX(3.0f) - decodeX(0.6666667f), //width + decodeY(1.0f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.6f), //y + decodeX(3.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(1.0f), //y + decodeX(3.0f) - decodeX(0.6666667f), //width + decodeY(2.3333333f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect5() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(3.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect6() { + rect.setRect(decodeX(0.22222222f), //x + decodeY(0.13333334f), //y + decodeX(2.916668f) - decodeX(0.22222222f), //width + decodeY(2.75f) - decodeY(0.13333334f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (1.0f * h) + y, (0.5f * w) + x, (0.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.49573863f,0.99147725f }, + new Color[] { color8, + decodeColor(color8,color9,0.5f), + color9}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.1684492f,1.0f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.49573863f,0.99147725f }, + new Color[] { color8, + decodeColor(color8,color15,0.5f), + color15}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SpinnerSpinnerNextButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SpinnerSpinnerNextButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,582 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class SpinnerSpinnerNextButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of SpinnerSpinnerNextButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_FOCUSED = 3; + static final int BACKGROUND_MOUSEOVER_FOCUSED = 4; + static final int BACKGROUND_PRESSED_FOCUSED = 5; + static final int BACKGROUND_MOUSEOVER = 6; + static final int BACKGROUND_PRESSED = 7; + static final int FOREGROUND_DISABLED = 8; + static final int FOREGROUND_ENABLED = 9; + static final int FOREGROUND_FOCUSED = 10; + static final int FOREGROUND_MOUSEOVER_FOCUSED = 11; + static final int FOREGROUND_PRESSED_FOCUSED = 12; + static final int FOREGROUND_MOUSEOVER = 13; + static final int FOREGROUND_PRESSED = 14; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of SpinnerSpinnerNextButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", 0.021348298f, -0.56289876f, 0.2588235f, 0); + private Color color2 = decodeColor("nimbusBase", 0.010237217f, -0.5607143f, 0.2352941f, 0); + private Color color3 = decodeColor("nimbusBase", 0.021348298f, -0.59223604f, 0.35294116f, 0); + private Color color4 = decodeColor("nimbusBase", 0.016586483f, -0.5723659f, 0.31764704f, 0); + private Color color5 = decodeColor("nimbusBase", 0.021348298f, -0.56182265f, 0.24705881f, 0); + private Color color6 = decodeColor("nimbusBase", 5.1498413E-4f, -0.34585923f, -0.007843137f, 0); + private Color color7 = decodeColor("nimbusBase", 5.1498413E-4f, -0.27207792f, -0.11764708f, 0); + private Color color8 = decodeColor("nimbusBase", 0.004681647f, -0.6197143f, 0.43137252f, 0); + private Color color9 = decodeColor("nimbusBase", -0.0012707114f, -0.5078604f, 0.3098039f, 0); + private Color color10 = decodeColor("nimbusBase", -0.0028941035f, -0.4800539f, 0.28235292f, 0); + private Color color11 = decodeColor("nimbusBase", 0.0023007393f, -0.3622768f, -0.04705882f, 0); + private Color color12 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color13 = decodeColor("nimbusBase", 0.0013483167f, -0.1769987f, -0.12156865f, 0); + private Color color14 = decodeColor("nimbusBase", 0.0013483167f, 0.039961398f, -0.25882354f, 0); + private Color color15 = decodeColor("nimbusBase", 0.004681647f, -0.6198413f, 0.43921566f, 0); + private Color color16 = decodeColor("nimbusBase", -0.0012707114f, -0.51502466f, 0.3607843f, 0); + private Color color17 = decodeColor("nimbusBase", 0.0021564364f, -0.49097747f, 0.34509802f, 0); + private Color color18 = decodeColor("nimbusBase", 5.2034855E-5f, -0.38743842f, 0.019607842f, 0); + private Color color19 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color20 = decodeColor("nimbusBase", 0.08801502f, 0.3642857f, -0.454902f, 0); + private Color color21 = decodeColor("nimbusBase", -4.2033195E-4f, -0.38050595f, 0.20392156f, 0); + private Color color22 = decodeColor("nimbusBase", 2.9569864E-4f, -0.15470162f, 0.07058823f, 0); + private Color color23 = decodeColor("nimbusBase", -4.6235323E-4f, -0.09571427f, 0.039215684f, 0); + private Color color24 = decodeColor("nimbusBase", 0.018363237f, 0.18135887f, -0.227451f, 0); + private Color color25 = new Color(255, 200, 0, 255); + private Color color26 = decodeColor("nimbusBase", 0.021348298f, -0.58106947f, 0.16862744f, 0); + private Color color27 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.043137252f, 0); + private Color color28 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.24313727f, 0); + private Color color29 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public SpinnerSpinnerNextButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case BACKGROUND_MOUSEOVER_FOCUSED: paintBackgroundMouseOverAndFocused(g); break; + case BACKGROUND_PRESSED_FOCUSED: paintBackgroundPressedAndFocused(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case FOREGROUND_DISABLED: paintForegroundDisabled(g); break; + case FOREGROUND_ENABLED: paintForegroundEnabled(g); break; + case FOREGROUND_FOCUSED: paintForegroundFocused(g); break; + case FOREGROUND_MOUSEOVER_FOCUSED: paintForegroundMouseOverAndFocused(g); break; + case FOREGROUND_PRESSED_FOCUSED: paintForegroundPressedAndFocused(g); break; + case FOREGROUND_MOUSEOVER: paintForegroundMouseOver(g); break; + case FOREGROUND_PRESSED: paintForegroundPressed(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + rect = decodeRect1(); + g.setPaint(color5); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + path = decodePath3(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + rect = decodeRect1(); + g.setPaint(color11); + g.fill(rect); + + } + + private void paintBackgroundFocused(Graphics2D g) { + path = decodePath5(); + g.setPaint(color12); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + rect = decodeRect1(); + g.setPaint(color11); + g.fill(rect); + + } + + private void paintBackgroundMouseOverAndFocused(Graphics2D g) { + path = decodePath5(); + g.setPaint(color12); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + rect = decodeRect1(); + g.setPaint(color18); + g.fill(rect); + + } + + private void paintBackgroundPressedAndFocused(Graphics2D g) { + path = decodePath5(); + g.setPaint(color12); + g.fill(path); + path = decodePath6(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + rect = decodeRect1(); + g.setPaint(color24); + g.fill(rect); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + path = decodePath3(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient10(path)); + g.fill(path); + rect = decodeRect1(); + g.setPaint(color18); + g.fill(rect); + + } + + private void paintBackgroundPressed(Graphics2D g) { + path = decodePath6(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient11(path)); + g.fill(path); + rect = decodeRect1(); + g.setPaint(color24); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color25); + g.fill(rect); + + } + + private void paintForegroundDisabled(Graphics2D g) { + path = decodePath7(); + g.setPaint(color26); + g.fill(path); + + } + + private void paintForegroundEnabled(Graphics2D g) { + path = decodePath7(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + + } + + private void paintForegroundFocused(Graphics2D g) { + path = decodePath8(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + + } + + private void paintForegroundMouseOverAndFocused(Graphics2D g) { + path = decodePath8(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + + } + + private void paintForegroundPressedAndFocused(Graphics2D g) { + path = decodePath9(); + g.setPaint(color29); + g.fill(path); + + } + + private void paintForegroundMouseOver(Graphics2D g) { + path = decodePath7(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + + } + + private void paintForegroundPressed(Graphics2D g) { + path = decodePath9(); + g.setPaint(color29); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.2857143f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.2857142984867096f, 0.0f), decodeAnchorX(2.0f, -3.6363636363636402f), decodeAnchorY(0.2857142984867096f, 0.0f), decodeX(2.0f), decodeY(0.2857143f)); + path.curveTo(decodeAnchorX(2.0f, 3.6363636363636402f), decodeAnchorY(0.2857142984867096f, 0.0f), decodeAnchorX(2.7142858505249023f, -0.022727272727273373f), decodeAnchorY(1.0f, -3.749999999999999f), decodeX(2.7142859f), decodeY(1.0f)); + path.curveTo(decodeAnchorX(2.7142858505249023f, 0.022727272727273373f), decodeAnchorY(1.0f, 3.75f), decodeAnchorX(2.7142858505249023f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeX(2.7142859f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(0.42857143f)); + path.curveTo(decodeAnchorX(1.0f, 0.0f), decodeAnchorY(0.4285714328289032f, 0.0f), decodeAnchorX(2.0f, -3.0f), decodeAnchorY(0.4285714328289032f, 0.0f), decodeX(2.0f), decodeY(0.42857143f)); + path.curveTo(decodeAnchorX(2.0f, 3.0f), decodeAnchorY(0.4285714328289032f, 0.0f), decodeAnchorX(2.5714285373687744f, 0.0f), decodeAnchorY(1.0f, -2.0f), decodeX(2.5714285f), decodeY(1.0f)); + path.curveTo(decodeAnchorX(2.5714285373687744f, 0.0f), decodeAnchorY(1.0f, 2.0f), decodeAnchorX(2.5714285373687744f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(2.5714285f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(2.0f), //y + decodeX(2.5714285f) - decodeX(1.0f), //width + decodeY(3.0f) - decodeY(2.0f)); //height + return rect; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.2857143f)); + path.lineTo(decodeX(2.0f), decodeY(0.2857143f)); + path.curveTo(decodeAnchorX(2.0f, 3.6363636363636402f), decodeAnchorY(0.2857142984867096f, 0.0f), decodeAnchorX(2.7142858505249023f, -0.022727272727273373f), decodeAnchorY(1.0f, -3.749999999999999f), decodeX(2.7142859f), decodeY(1.0f)); + path.lineTo(decodeX(2.7142859f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(0.42857143f)); + path.lineTo(decodeX(2.0f), decodeY(0.42857143f)); + path.curveTo(decodeAnchorX(2.0f, 3.0f), decodeAnchorY(0.4285714328289032f, 0.0f), decodeAnchorX(2.5714285373687744f, 0.0f), decodeAnchorY(1.0f, -2.0f), decodeX(2.5714285f), decodeY(1.0f)); + path.lineTo(decodeX(2.5714285f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.08571429f)); + path.lineTo(decodeX(2.142857f), decodeY(0.08571429f)); + path.curveTo(decodeAnchorX(2.142857074737549f, 3.3999999999999986f), decodeAnchorY(0.08571428805589676f, 0.0f), decodeAnchorX(2.914285659790039f, 0.0f), decodeAnchorY(1.0f, -3.4f), decodeX(2.9142857f), decodeY(1.0f)); + path.lineTo(decodeX(2.9142857f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.2857143f)); + path.lineTo(decodeX(2.0f), decodeY(0.2857143f)); + path.curveTo(decodeAnchorX(2.0f, 3.4545454545454533f), decodeAnchorY(0.2857142984867096f, 0.0f), decodeAnchorX(2.7142858505249023f, -0.022727272727273373f), decodeAnchorY(1.0f, -3.4772727272727266f), decodeX(2.7142859f), decodeY(1.0f)); + path.lineTo(decodeX(2.7142859f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(0.0f) - decodeX(0.0f), //width + decodeY(0.0f) - decodeY(0.0f)); //height + return rect; + } + + private Path2D decodePath7() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.490909f), decodeY(1.0284091f)); + path.lineTo(decodeX(2.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath8() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.490909f), decodeY(1.3522727f)); + path.lineTo(decodeX(2.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath9() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.5045455f), decodeY(1.0795455f)); + path.lineTo(decodeX(2.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.0f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color6, + decodeColor(color6,color7,0.5f), + color7}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.36497328f,0.72994655f,0.8649733f,1.0f }, + new Color[] { color8, + decodeColor(color8,color9,0.5f), + color9, + decodeColor(color9,color10,0.5f), + color10}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.37566844f,0.7513369f,0.8756684f,1.0f }, + new Color[] { color8, + decodeColor(color8,color9,0.5f), + color9, + decodeColor(color9,color10,0.5f), + color10}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.37967914f,0.7593583f,0.87967914f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16, + decodeColor(color16,color17,0.5f), + color17}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color19, + decodeColor(color19,color20,0.5f), + color20}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.37165776f,0.7433155f,0.8716577f,1.0f }, + new Color[] { color21, + decodeColor(color21,color22,0.5f), + color22, + decodeColor(color22,color23,0.5f), + color23}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.3970588f,0.7941176f,0.89705884f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16, + decodeColor(color16,color17,0.5f), + color17}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.4318182f,0.8636364f,0.9318182f,1.0f }, + new Color[] { color21, + decodeColor(color21,color22,0.5f), + color22, + decodeColor(color22,color23,0.5f), + color23}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.48636365f * w) + x, (0.0116959065f * h) + y, (0.4909091f * w) + x, (0.8888889f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color27, + decodeColor(color27,color28,0.5f), + color28}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SpinnerSpinnerPreviousButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SpinnerSpinnerPreviousButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,504 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class SpinnerSpinnerPreviousButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of SpinnerSpinnerPreviousButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_FOCUSED = 3; + static final int BACKGROUND_MOUSEOVER_FOCUSED = 4; + static final int BACKGROUND_PRESSED_FOCUSED = 5; + static final int BACKGROUND_MOUSEOVER = 6; + static final int BACKGROUND_PRESSED = 7; + static final int FOREGROUND_DISABLED = 8; + static final int FOREGROUND_ENABLED = 9; + static final int FOREGROUND_FOCUSED = 10; + static final int FOREGROUND_MOUSEOVER_FOCUSED = 11; + static final int FOREGROUND_PRESSED_FOCUSED = 12; + static final int FOREGROUND_MOUSEOVER = 13; + static final int FOREGROUND_PRESSED = 14; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of SpinnerSpinnerPreviousButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", 0.015098333f, -0.5557143f, 0.2352941f, 0); + private Color color2 = decodeColor("nimbusBase", 0.010237217f, -0.55799407f, 0.20784312f, 0); + private Color color3 = decodeColor("nimbusBase", 0.018570602f, -0.5821429f, 0.32941175f, 0); + private Color color4 = decodeColor("nimbusBase", 0.021348298f, -0.56722116f, 0.3098039f, 0); + private Color color5 = decodeColor("nimbusBase", 0.021348298f, -0.567841f, 0.31764704f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, -0.0033834577f, -0.30588236f, -148); + private Color color7 = decodeColor("nimbusBase", 5.1498413E-4f, -0.2583558f, -0.13333336f, 0); + private Color color8 = decodeColor("nimbusBase", 5.1498413E-4f, -0.095173776f, -0.25882354f, 0); + private Color color9 = decodeColor("nimbusBase", 0.004681647f, -0.5383692f, 0.33725488f, 0); + private Color color10 = decodeColor("nimbusBase", -0.0017285943f, -0.44453782f, 0.25098038f, 0); + private Color color11 = decodeColor("nimbusBase", 5.1498413E-4f, -0.43866998f, 0.24705881f, 0); + private Color color12 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4625541f, 0.35686272f, 0); + private Color color13 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color14 = decodeColor("nimbusBase", 0.0013483167f, 0.088923395f, -0.2784314f, 0); + private Color color15 = decodeColor("nimbusBase", 0.059279382f, 0.3642857f, -0.43529415f, 0); + private Color color16 = decodeColor("nimbusBase", 0.0010585189f, -0.541452f, 0.4078431f, 0); + private Color color17 = decodeColor("nimbusBase", 0.00254488f, -0.4608264f, 0.32549018f, 0); + private Color color18 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4555341f, 0.3215686f, 0); + private Color color19 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4757143f, 0.43137252f, 0); + private Color color20 = decodeColor("nimbusBase", 0.061133325f, 0.3642857f, -0.427451f, 0); + private Color color21 = decodeColor("nimbusBase", -3.528595E-5f, 0.018606722f, -0.23137257f, 0); + private Color color22 = decodeColor("nimbusBase", 8.354783E-4f, -0.2578073f, 0.12549019f, 0); + private Color color23 = decodeColor("nimbusBase", 8.9377165E-4f, -0.01599598f, 0.007843137f, 0); + private Color color24 = decodeColor("nimbusBase", 0.0f, -0.00895375f, 0.007843137f, 0); + private Color color25 = decodeColor("nimbusBase", 8.9377165E-4f, -0.13853917f, 0.14509803f, 0); + private Color color26 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, -0.63529414f, -179); + private Color color27 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -186); + private Color color28 = decodeColor("nimbusBase", 0.018570602f, -0.56714284f, 0.1372549f, 0); + private Color color29 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color30 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public SpinnerSpinnerPreviousButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case BACKGROUND_MOUSEOVER_FOCUSED: paintBackgroundMouseOverAndFocused(g); break; + case BACKGROUND_PRESSED_FOCUSED: paintBackgroundPressedAndFocused(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case FOREGROUND_DISABLED: paintForegroundDisabled(g); break; + case FOREGROUND_ENABLED: paintForegroundEnabled(g); break; + case FOREGROUND_FOCUSED: paintForegroundFocused(g); break; + case FOREGROUND_MOUSEOVER_FOCUSED: paintForegroundMouseOverAndFocused(g); break; + case FOREGROUND_PRESSED_FOCUSED: paintForegroundPressedAndFocused(g); break; + case FOREGROUND_MOUSEOVER: paintForegroundMouseOver(g); break; + case FOREGROUND_PRESSED: paintForegroundPressed(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + path = decodePath3(); + g.setPaint(color6); + g.fill(path); + path = decodePath1(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + + } + + private void paintBackgroundFocused(Graphics2D g) { + path = decodePath4(); + g.setPaint(color13); + g.fill(path); + path = decodePath1(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + + } + + private void paintBackgroundMouseOverAndFocused(Graphics2D g) { + path = decodePath5(); + g.setPaint(color13); + g.fill(path); + path = decodePath6(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath7(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + + } + + private void paintBackgroundPressedAndFocused(Graphics2D g) { + path = decodePath4(); + g.setPaint(color13); + g.fill(path); + path = decodePath1(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + path = decodePath3(); + g.setPaint(color26); + g.fill(path); + path = decodePath1(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + + } + + private void paintBackgroundPressed(Graphics2D g) { + path = decodePath8(); + g.setPaint(color27); + g.fill(path); + path = decodePath1(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintForegroundDisabled(Graphics2D g) { + path = decodePath9(); + g.setPaint(color28); + g.fill(path); + + } + + private void paintForegroundEnabled(Graphics2D g) { + path = decodePath9(); + g.setPaint(color29); + g.fill(path); + + } + + private void paintForegroundFocused(Graphics2D g) { + path = decodePath9(); + g.setPaint(color29); + g.fill(path); + + } + + private void paintForegroundMouseOverAndFocused(Graphics2D g) { + path = decodePath9(); + g.setPaint(color29); + g.fill(path); + + } + + private void paintForegroundPressedAndFocused(Graphics2D g) { + path = decodePath9(); + g.setPaint(color30); + g.fill(path); + + } + + private void paintForegroundMouseOver(Graphics2D g) { + path = decodePath9(); + g.setPaint(color29); + g.fill(path); + + } + + private void paintForegroundPressed(Graphics2D g) { + path = decodePath9(); + g.setPaint(color30); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(1.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.6666667f)); + path.lineTo(decodeX(2.142857f), decodeY(2.6666667f)); + path.curveTo(decodeAnchorX(2.142857074737549f, 3.0f), decodeAnchorY(2.6666667461395264f, 0.0f), decodeAnchorX(2.7142858505249023f, 0.0f), decodeAnchorY(2.0f, 2.0f), decodeX(2.7142859f), decodeY(2.0f)); + path.lineTo(decodeX(2.7142859f), decodeY(1.0f)); + path.lineTo(decodeX(0.0f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.5f)); + path.lineTo(decodeX(2.142857f), decodeY(2.5f)); + path.curveTo(decodeAnchorX(2.142857074737549f, 2.0f), decodeAnchorY(2.5f, 0.0f), decodeAnchorX(2.5714285373687744f, 0.0f), decodeAnchorY(2.0f, 1.0f), decodeX(2.5714285f), decodeY(2.0f)); + path.lineTo(decodeX(2.5714285f), decodeY(1.0f)); + path.lineTo(decodeX(1.0f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(2.6666667f)); + path.lineTo(decodeX(0.0f), decodeY(2.8333333f)); + path.lineTo(decodeX(2.0324676f), decodeY(2.8333333f)); + path.curveTo(decodeAnchorX(2.0324676036834717f, 2.1136363636363793f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeAnchorX(2.7142858505249023f, 0.0f), decodeAnchorY(2.0f, 3.0f), decodeX(2.7142859f), decodeY(2.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.6666667f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(1.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.8999999f)); + path.lineTo(decodeX(2.2f), decodeY(2.8999999f)); + path.curveTo(decodeAnchorX(2.200000047683716f, 2.9999999999999982f), decodeAnchorY(2.8999998569488525f, 0.0f), decodeAnchorX(2.914285659790039f, 0.0f), decodeAnchorY(2.2333333492279053f, 3.0f), decodeX(2.9142857f), decodeY(2.2333333f)); + path.lineTo(decodeX(2.9142857f), decodeY(1.0f)); + path.lineTo(decodeX(0.0f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.8999999f)); + path.lineTo(decodeX(2.2f), decodeY(2.8999999f)); + path.curveTo(decodeAnchorX(2.200000047683716f, 2.9999999999999982f), decodeAnchorY(2.8999998569488525f, 0.0f), decodeAnchorX(2.914285659790039f, 0.0f), decodeAnchorY(2.2333333492279053f, 3.0f), decodeX(2.9142857f), decodeY(2.2333333f)); + path.lineTo(decodeX(2.9142857f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.6666667f)); + path.lineTo(decodeX(2.142857f), decodeY(2.6666667f)); + path.curveTo(decodeAnchorX(2.142857074737549f, 3.0f), decodeAnchorY(2.6666667461395264f, 0.0f), decodeAnchorX(2.7142858505249023f, 0.0f), decodeAnchorY(2.0f, 2.0f), decodeX(2.7142859f), decodeY(2.0f)); + path.lineTo(decodeX(2.7142859f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath7() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(0.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.5f)); + path.lineTo(decodeX(2.142857f), decodeY(2.5f)); + path.curveTo(decodeAnchorX(2.142857074737549f, 2.0f), decodeAnchorY(2.5f, 0.0f), decodeAnchorX(2.5714285373687744f, 0.0f), decodeAnchorY(2.0f, 1.0f), decodeX(2.5714285f), decodeY(2.0f)); + path.lineTo(decodeX(2.5714285f), decodeY(0.0f)); + path.lineTo(decodeX(1.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath8() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(2.6666667f)); + path.lineTo(decodeX(0.0f), decodeY(2.8333333f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeAnchorX(2.0324676036834717f, -2.1136363636363793f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeX(2.0324676f), decodeY(2.8333333f)); + path.curveTo(decodeAnchorX(2.0324676036834717f, 2.1136363636363793f), decodeAnchorY(2.8333332538604736f, 0.0f), decodeAnchorX(2.7142858505249023f, 0.0f), decodeAnchorY(2.0f, 3.0f), decodeX(2.7142859f), decodeY(2.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.6666667f)); + path.closePath(); + return path; + } + + private Path2D decodePath9() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.5045455f), decodeY(1.9943181f)); + path.lineTo(decodeX(2.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.0f), decodeY(1.0f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.05748663f,0.11497326f,0.55748665f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.05748663f,0.11497326f,0.2419786f,0.36898395f,0.684492f,1.0f }, + new Color[] { color9, + decodeColor(color9,color10,0.5f), + color10, + decodeColor(color10,color11,0.5f), + color11, + decodeColor(color11,color12,0.5f), + color12}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color14, + decodeColor(color14,color15,0.5f), + color15}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.05748663f,0.11497326f,0.2419786f,0.36898395f,0.684492f,1.0f }, + new Color[] { color16, + decodeColor(color16,color17,0.5f), + color17, + decodeColor(color17,color18,0.5f), + color18, + decodeColor(color18,color19,0.5f), + color19}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color20, + decodeColor(color20,color21,0.5f), + color21}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.05748663f,0.11497326f,0.2419786f,0.36898395f,0.684492f,1.0f }, + new Color[] { color22, + decodeColor(color22,color23,0.5f), + color23, + decodeColor(color23,color24,0.5f), + color24, + decodeColor(color24,color25,0.5f), + color25}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SplitPanePainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SplitPanePainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,88 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class SplitPanePainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of SplitPanePainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of SplitPanePainter would be created. For the moment at least, + //however, all are created for each instance. + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public SplitPanePainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SplitPaneSplitPaneDividerPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SplitPaneSplitPaneDividerPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,289 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class SplitPaneSplitPaneDividerPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of SplitPaneSplitPaneDividerPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BACKGROUND_FOCUSED = 2; + static final int FOREGROUND_ENABLED = 3; + static final int FOREGROUND_ENABLED_VERTICAL = 4; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of SplitPaneSplitPaneDividerPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.0f, -0.017358616f, -0.11372548f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.102396235f, 0.21960783f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.0f, -0.07016757f, 0.12941176f, 0); + private Color color4 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, -0.048026316f, 0.007843137f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.06970999f, 0.21568626f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0f, -0.06704806f, 0.06666666f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", 0.0f, -0.019617222f, -0.09803921f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", 0.004273474f, -0.03790062f, -0.043137252f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", -0.111111104f, -0.106573746f, 0.24705881f, 0); + private Color color12 = decodeColor("nimbusBlueGrey", 0.0f, -0.049301825f, 0.02352941f, 0); + private Color color13 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.07399663f, 0.11372548f, 0); + private Color color14 = decodeColor("nimbusBlueGrey", -0.018518567f, -0.06998578f, 0.12549019f, 0); + private Color color15 = decodeColor("nimbusBlueGrey", 0.0f, -0.050526317f, 0.039215684f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public SplitPaneSplitPaneDividerPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case FOREGROUND_ENABLED: paintForegroundEnabled(g); break; + case FOREGROUND_ENABLED_VERTICAL: paintForegroundEnabledAndVertical(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + + } + + private void paintBackgroundFocused(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + + } + + private void paintForegroundEnabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + private void paintForegroundEnabledAndVertical(Graphics2D g) { + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + rect = decodeRect2(); + g.setPaint(decodeGradient6(rect)); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(1.05f), //x + decodeY(1.3f), //y + decodeX(1.95f) - decodeX(1.05f), //width + decodeY(1.8f) - decodeY(1.3f), //height + 3.6666667f, 3.6666667f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(1.1f), //x + decodeY(1.4f), //y + decodeX(1.9f) - decodeX(1.1f), //width + decodeY(1.7f) - decodeY(1.4f), //height + 4.0f, 4.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(1.3f), //x + decodeY(1.1428572f), //y + decodeX(1.7f) - decodeX(1.3f), //width + decodeY(1.8214285f) - decodeY(1.1428572f), //height + 4.0f, 4.0f); //rounding + return roundRect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(1.4f), //x + decodeY(1.1785715f), //y + decodeX(1.6f) - decodeX(1.4f), //width + decodeY(1.7678571f) - decodeY(1.1785715f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.058064517f,0.08064516f,0.103225805f,0.116129026f,0.12903225f,0.43387097f,0.7387097f,0.77903223f,0.81935483f,0.85806453f,0.8967742f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2, + decodeColor(color2,color3,0.5f), + color3, + decodeColor(color3,color3,0.5f), + color3, + decodeColor(color3,color2,0.5f), + color2, + decodeColor(color2,color1,0.5f), + color1}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.058064517f,0.08064516f,0.103225805f,0.1166129f,0.13f,0.43f,0.73f,0.7746774f,0.81935483f,0.85806453f,0.8967742f }, + new Color[] { color1, + decodeColor(color1,color4,0.5f), + color4, + decodeColor(color4,color3,0.5f), + color3, + decodeColor(color3,color3,0.5f), + color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color1,0.5f), + color1}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.20645161f,0.5f,0.7935484f }, + new Color[] { color1, + decodeColor(color1,color5,0.5f), + color5}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.090322584f,0.2951613f,0.5f,0.5822581f,0.66451615f }, + new Color[] { color6, + decodeColor(color6,color7,0.5f), + color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.75f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.42096773f,0.84193546f,0.8951613f,0.9483871f }, + new Color[] { color9, + decodeColor(color9,color10,0.5f), + color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.08064516f,0.16129032f,0.5129032f,0.86451614f,0.88548386f,0.90645164f }, + new Color[] { color12, + decodeColor(color12,color13,0.5f), + color13, + decodeColor(color13,color14,0.5f), + color14, + decodeColor(color14,color15,0.5f), + color15}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SplitPaneSplitPaneDividerVerticalState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SplitPaneSplitPaneDividerVerticalState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,41 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class SplitPaneSplitPaneDividerVerticalState extends State { + SplitPaneSplitPaneDividerVerticalState() { + super("Vertical"); + } + + @Override protected boolean isInState(JComponent c) { + + return c instanceof JSplitPane && (((JSplitPane)c).getOrientation() == 1); + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/SplitPaneVerticalState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/SplitPaneVerticalState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,41 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class SplitPaneVerticalState extends State { + SplitPaneVerticalState() { + super("Vertical"); + } + + @Override protected boolean isInState(JComponent c) { + + return c instanceof JSplitPane && (((JSplitPane)c).getOrientation() == 1); + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TabbedPanePainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TabbedPanePainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,92 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TabbedPanePainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TabbedPanePainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_FOCUSED = 3; + static final int BACKGROUND_MOUSEOVER = 4; + static final int BACKGROUND_PRESSED = 5; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TabbedPanePainter would be created. For the moment at least, + //however, all are created for each instance. + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TabbedPanePainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TabbedPaneTabbedPaneTabAreaPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TabbedPaneTabbedPaneTabAreaPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,220 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TabbedPaneTabbedPaneTabAreaPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TabbedPaneTabbedPaneTabAreaPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BACKGROUND_DISABLED = 2; + static final int BACKGROUND_ENABLED_MOUSEOVER = 3; + static final int BACKGROUND_ENABLED_PRESSED = 4; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TabbedPaneTabbedPaneTabAreaPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = new Color(255, 200, 0, 255); + private Color color2 = decodeColor("nimbusBase", 0.08801502f, 0.3642857f, -0.4784314f, 0); + private Color color3 = decodeColor("nimbusBase", 5.1498413E-4f, -0.45471883f, 0.31764704f, 0); + private Color color4 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4633005f, 0.3607843f, 0); + private Color color5 = decodeColor("nimbusBase", 0.05468172f, -0.58308274f, 0.19607842f, 0); + private Color color6 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color7 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4690476f, 0.39215684f, 0); + private Color color8 = decodeColor("nimbusBase", 5.1498413E-4f, -0.47635174f, 0.4352941f, 0); + private Color color9 = decodeColor("nimbusBase", 0.0f, -0.05401492f, 0.05098039f, 0); + private Color color10 = decodeColor("nimbusBase", 0.0f, -0.09303135f, 0.09411764f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TabbedPaneTabbedPaneTabAreaPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED_MOUSEOVER: paintBackgroundEnabledAndMouseOver(g); break; + case BACKGROUND_ENABLED_PRESSED: paintBackgroundEnabledAndPressed(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + + } + + private void paintBackgroundEnabledAndMouseOver(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + + } + + private void paintBackgroundEnabledAndPressed(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(1.0f), //y + decodeX(0.0f) - decodeX(0.0f), //width + decodeY(1.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.0f), //x + decodeY(2.1666667f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(2.1666667f)); //height + return rect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.08387097f,0.09677419f,0.10967742f,0.43709677f,0.7645161f,0.7758064f,0.7870968f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.08387097f,0.09677419f,0.10967742f,0.43709677f,0.7645161f,0.7758064f,0.7870968f }, + new Color[] { color5, + decodeColor(color5,color3,0.5f), + color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.08387097f,0.09677419f,0.10967742f,0.43709677f,0.7645161f,0.7758064f,0.7870968f }, + new Color[] { color6, + decodeColor(color6,color7,0.5f), + color7, + decodeColor(color7,color8,0.5f), + color8, + decodeColor(color8,color2,0.5f), + color2}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.08387097f,0.09677419f,0.10967742f,0.43709677f,0.7645161f,0.7758064f,0.7870968f }, + new Color[] { color2, + decodeColor(color2,color9,0.5f), + color9, + decodeColor(color9,color10,0.5f), + color10, + decodeColor(color10,color2,0.5f), + color2}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TabbedPaneTabbedPaneTabPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TabbedPaneTabbedPaneTabPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,677 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TabbedPaneTabbedPaneTabPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TabbedPaneTabbedPaneTabPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BACKGROUND_ENABLED_MOUSEOVER = 2; + static final int BACKGROUND_ENABLED_PRESSED = 3; + static final int BACKGROUND_DISABLED = 4; + static final int BACKGROUND_SELECTED_DISABLED = 5; + static final int BACKGROUND_SELECTED = 6; + static final int BACKGROUND_SELECTED_MOUSEOVER = 7; + static final int BACKGROUND_SELECTED_PRESSED = 8; + static final int BACKGROUND_SELECTED_FOCUSED = 9; + static final int BACKGROUND_SELECTED_MOUSEOVER_FOCUSED = 10; + static final int BACKGROUND_SELECTED_PRESSED_FOCUSED = 11; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TabbedPaneTabbedPaneTabPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", 0.032459438f, -0.55535716f, -0.109803945f, 0); + private Color color2 = decodeColor("nimbusBase", 0.08801502f, 0.3642857f, -0.4784314f, 0); + private Color color3 = decodeColor("nimbusBase", 0.08801502f, -0.63174605f, 0.43921566f, 0); + private Color color4 = decodeColor("nimbusBase", 0.05468172f, -0.6145278f, 0.37647057f, 0); + private Color color5 = decodeColor("nimbusBase", 0.032459438f, -0.5953556f, 0.32549018f, 0); + private Color color6 = decodeColor("nimbusBase", 0.032459438f, -0.54616207f, -0.02352941f, 0); + private Color color7 = decodeColor("nimbusBase", 0.08801502f, -0.6317773f, 0.4470588f, 0); + private Color color8 = decodeColor("nimbusBase", 0.021348298f, -0.61547136f, 0.41960782f, 0); + private Color color9 = decodeColor("nimbusBase", 0.032459438f, -0.5985242f, 0.39999998f, 0); + private Color color10 = decodeColor("nimbusBase", 0.08801502f, 0.3642857f, -0.52156866f, 0); + private Color color11 = decodeColor("nimbusBase", 0.027408898f, -0.5847884f, 0.2980392f, 0); + private Color color12 = decodeColor("nimbusBase", 0.035931647f, -0.5553123f, 0.23137254f, 0); + private Color color13 = decodeColor("nimbusBase", 0.029681683f, -0.5281874f, 0.18039215f, 0); + private Color color14 = decodeColor("nimbusBase", 0.03801495f, -0.5456242f, 0.3215686f, 0); + private Color color15 = decodeColor("nimbusBase", 0.032459438f, -0.59181184f, 0.25490195f, 0); + private Color color16 = decodeColor("nimbusBase", 0.05468172f, -0.58308274f, 0.19607842f, 0); + private Color color17 = decodeColor("nimbusBase", 0.046348333f, -0.6006266f, 0.34509802f, 0); + private Color color18 = decodeColor("nimbusBase", 0.046348333f, -0.60015875f, 0.3333333f, 0); + private Color color19 = decodeColor("nimbusBase", 0.004681647f, -0.6197143f, 0.43137252f, 0); + private Color color20 = decodeColor("nimbusBase", 7.13408E-4f, -0.543609f, 0.34509802f, 0); + private Color color21 = decodeColor("nimbusBase", -0.0020751357f, -0.45610264f, 0.2588235f, 0); + private Color color22 = decodeColor("nimbusBase", 5.1498413E-4f, -0.43866998f, 0.24705881f, 0); + private Color color23 = decodeColor("nimbusBase", 5.1498413E-4f, -0.44879842f, 0.29019606f, 0); + private Color color24 = decodeColor("nimbusBase", 5.1498413E-4f, -0.08776909f, -0.2627451f, 0); + private Color color25 = decodeColor("nimbusBase", 0.06332368f, 0.3642857f, -0.4431373f, 0); + private Color color26 = decodeColor("nimbusBase", 0.004681647f, -0.6198413f, 0.43921566f, 0); + private Color color27 = decodeColor("nimbusBase", -0.0022627711f, -0.5335866f, 0.372549f, 0); + private Color color28 = decodeColor("nimbusBase", -0.0017285943f, -0.4608264f, 0.32549018f, 0); + private Color color29 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4555341f, 0.3215686f, 0); + private Color color30 = decodeColor("nimbusBase", 5.1498413E-4f, -0.46404046f, 0.36470586f, 0); + private Color color31 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color32 = decodeColor("nimbusBase", -4.2033195E-4f, -0.38050595f, 0.20392156f, 0); + private Color color33 = decodeColor("nimbusBase", 0.0013483167f, -0.16401619f, 0.0745098f, 0); + private Color color34 = decodeColor("nimbusBase", -0.0010001659f, -0.01599598f, 0.007843137f, 0); + private Color color35 = decodeColor("nimbusBase", 0.0f, 0.0f, 0.0f, 0); + private Color color36 = decodeColor("nimbusBase", 0.0018727183f, -0.038398862f, 0.035294116f, 0); + private Color color37 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TabbedPaneTabbedPaneTabPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_ENABLED_MOUSEOVER: paintBackgroundEnabledAndMouseOver(g); break; + case BACKGROUND_ENABLED_PRESSED: paintBackgroundEnabledAndPressed(g); break; + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_SELECTED_DISABLED: paintBackgroundSelectedAndDisabled(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + case BACKGROUND_SELECTED_MOUSEOVER: paintBackgroundSelectedAndMouseOver(g); break; + case BACKGROUND_SELECTED_PRESSED: paintBackgroundSelectedAndPressed(g); break; + case BACKGROUND_SELECTED_FOCUSED: paintBackgroundSelectedAndFocused(g); break; + case BACKGROUND_SELECTED_MOUSEOVER_FOCUSED: paintBackgroundSelectedAndMouseOverAndFocused(g); break; + case BACKGROUND_SELECTED_PRESSED_FOCUSED: paintBackgroundSelectedAndPressedAndFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + + } + + private void paintBackgroundEnabledAndMouseOver(Graphics2D g) { + path = decodePath1(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + + } + + private void paintBackgroundEnabledAndPressed(Graphics2D g) { + path = decodePath3(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + + } + + private void paintBackgroundDisabled(Graphics2D g) { + path = decodePath5(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath6(); + g.setPaint(decodeGradient8(path)); + g.fill(path); + + } + + private void paintBackgroundSelectedAndDisabled(Graphics2D g) { + path = decodePath7(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + + } + + private void paintBackgroundSelected(Graphics2D g) { + path = decodePath7(); + g.setPaint(decodeGradient10(path)); + g.fill(path); + path = decodePath2(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + + } + + private void paintBackgroundSelectedAndMouseOver(Graphics2D g) { + path = decodePath8(); + g.setPaint(decodeGradient11(path)); + g.fill(path); + path = decodePath9(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + + } + + private void paintBackgroundSelectedAndPressed(Graphics2D g) { + path = decodePath8(); + g.setPaint(decodeGradient13(path)); + g.fill(path); + path = decodePath9(); + g.setPaint(decodeGradient14(path)); + g.fill(path); + + } + + private void paintBackgroundSelectedAndFocused(Graphics2D g) { + path = decodePath1(); + g.setPaint(decodeGradient10(path)); + g.fill(path); + path = decodePath10(); + g.setPaint(decodeGradient9(path)); + g.fill(path); + path = decodePath11(); + g.setPaint(color37); + g.fill(path); + + } + + private void paintBackgroundSelectedAndMouseOverAndFocused(Graphics2D g) { + path = decodePath12(); + g.setPaint(decodeGradient11(path)); + g.fill(path); + path = decodePath13(); + g.setPaint(decodeGradient12(path)); + g.fill(path); + path = decodePath14(); + g.setPaint(color37); + g.fill(path); + + } + + private void paintBackgroundSelectedAndPressedAndFocused(Graphics2D g) { + path = decodePath12(); + g.setPaint(decodeGradient13(path)); + g.fill(path); + path = decodePath13(); + g.setPaint(decodeGradient14(path)); + g.fill(path); + path = decodePath14(); + g.setPaint(color37); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.71428573f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.7142857313156128f, -3.0f), decodeAnchorX(0.7142857313156128f, -3.0f), decodeAnchorY(0.0f, 0.0f), decodeX(0.71428573f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(0.7142857313156128f, 3.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(2.2857143878936768f, -3.0f), decodeAnchorY(0.0f, 0.0f), decodeX(2.2857144f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(2.2857143878936768f, 3.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.7142857313156128f, -3.0f), decodeX(3.0f), decodeY(0.71428573f)); + path.curveTo(decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.7142857313156128f, 3.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.7142857313156128f, 3.0f), decodeX(0.0f), decodeY(0.71428573f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.14285715f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(0.1428571492433548f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(0.1428571492433548f, 0.0f), decodeAnchorY(0.8571428656578064f, 3.5555555555555536f), decodeX(0.14285715f), decodeY(0.85714287f)); + path.curveTo(decodeAnchorX(0.1428571492433548f, 0.0f), decodeAnchorY(0.8571428656578064f, -3.5555555555555536f), decodeAnchorX(0.8571428656578064f, -3.444444444444443f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeX(0.85714287f), decodeY(0.14285715f)); + path.curveTo(decodeAnchorX(0.8571428656578064f, 3.444444444444443f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeAnchorX(2.142857074737549f, -3.333333333333343f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeX(2.142857f), decodeY(0.14285715f)); + path.curveTo(decodeAnchorX(2.142857074737549f, 3.333333333333343f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeAnchorX(2.857142925262451f, 0.0f), decodeAnchorY(0.8571428656578064f, -3.277777777777777f), decodeX(2.857143f), decodeY(0.85714287f)); + path.curveTo(decodeAnchorX(2.857142925262451f, 0.0f), decodeAnchorY(0.8571428656578064f, 3.277777777777777f), decodeAnchorX(2.857142925262451f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(2.857143f), decodeY(2.0f)); + path.lineTo(decodeX(0.14285715f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.71428573f)); + path.curveTo(decodeAnchorX(0.0f, 0.05555555555555555f), decodeAnchorY(0.7142857313156128f, 2.6111111111111125f), decodeAnchorX(0.8333333134651184f, -2.5000000000000018f), decodeAnchorY(0.0f, 0.0f), decodeX(0.8333333f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(0.8333333134651184f, 2.5000000000000018f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(2.2857143878936768f, -2.7222222222222143f), decodeAnchorY(0.0f, 0.0f), decodeX(2.2857144f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(2.2857143878936768f, 2.7222222222222143f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(3.0f, -0.055555555555557135f), decodeAnchorY(0.7142857313156128f, -2.722222222222223f), decodeX(3.0f), decodeY(0.71428573f)); + path.curveTo(decodeAnchorX(3.0f, 0.055555555555557135f), decodeAnchorY(0.7142857313156128f, 2.722222222222223f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeAnchorX(0.0f, -0.05555555555555555f), decodeAnchorY(0.7142857313156128f, -2.6111111111111125f), decodeX(0.0f), decodeY(0.71428573f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(0.16666667f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(0.8571428656578064f, 3.6666666666666643f), decodeX(0.16666667f), decodeY(0.85714287f)); + path.curveTo(decodeAnchorX(0.1666666716337204f, 0.0f), decodeAnchorY(0.8571428656578064f, -3.6666666666666643f), decodeAnchorX(1.0f, -3.5555555555555536f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeX(1.0f), decodeY(0.14285715f)); + path.curveTo(decodeAnchorX(1.0f, 3.5555555555555536f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeAnchorX(2.142857074737549f, -3.500000000000014f), decodeAnchorY(0.1428571492433548f, 0.05555555555555558f), decodeX(2.142857f), decodeY(0.14285715f)); + path.curveTo(decodeAnchorX(2.142857074737549f, 3.500000000000014f), decodeAnchorY(0.1428571492433548f, -0.05555555555555558f), decodeAnchorX(2.857142925262451f, 0.055555555555557135f), decodeAnchorY(0.8571428656578064f, -3.6666666666666643f), decodeX(2.857143f), decodeY(0.85714287f)); + path.curveTo(decodeAnchorX(2.857142925262451f, -0.055555555555557135f), decodeAnchorY(0.8571428656578064f, 3.6666666666666643f), decodeAnchorX(2.857142925262451f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(2.857143f), decodeY(2.0f)); + path.lineTo(decodeX(0.16666667f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.8333333f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.8333333134651184f, -3.0f), decodeAnchorX(0.7142857313156128f, -3.0f), decodeAnchorY(0.0f, 0.0f), decodeX(0.71428573f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(0.7142857313156128f, 3.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(2.2857143878936768f, -3.0f), decodeAnchorY(0.0f, 0.0f), decodeX(2.2857144f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(2.2857143878936768f, 3.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.8333333134651184f, -3.0f), decodeX(3.0f), decodeY(0.8333333f)); + path.curveTo(decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.8333333134651184f, 3.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.8333333134651184f, 3.0f), decodeX(0.0f), decodeY(0.8333333f)); + path.closePath(); + return path; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(0.14285715f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(0.1428571492433548f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(0.1428571492433548f, 0.0f), decodeAnchorY(1.0f, 3.5555555555555536f), decodeX(0.14285715f), decodeY(1.0f)); + path.curveTo(decodeAnchorX(0.1428571492433548f, 0.0f), decodeAnchorY(1.0f, -3.5555555555555536f), decodeAnchorX(0.8571428656578064f, -3.444444444444443f), decodeAnchorY(0.1666666716337204f, 0.0f), decodeX(0.85714287f), decodeY(0.16666667f)); + path.curveTo(decodeAnchorX(0.8571428656578064f, 3.444444444444443f), decodeAnchorY(0.1666666716337204f, 0.0f), decodeAnchorX(2.142857074737549f, -3.333333333333343f), decodeAnchorY(0.1666666716337204f, 0.0f), decodeX(2.142857f), decodeY(0.16666667f)); + path.curveTo(decodeAnchorX(2.142857074737549f, 3.333333333333343f), decodeAnchorY(0.1666666716337204f, 0.0f), decodeAnchorX(2.857142925262451f, 0.0f), decodeAnchorY(1.0f, -3.277777777777777f), decodeX(2.857143f), decodeY(1.0f)); + path.curveTo(decodeAnchorX(2.857142925262451f, 0.0f), decodeAnchorY(1.0f, 3.277777777777777f), decodeAnchorX(2.857142925262451f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(2.857143f), decodeY(2.0f)); + path.lineTo(decodeX(0.14285715f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath7() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.71428573f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.7142857313156128f, -3.0f), decodeAnchorX(0.7142857313156128f, -3.0f), decodeAnchorY(0.0f, 0.0f), decodeX(0.71428573f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(0.7142857313156128f, 3.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(2.2857143878936768f, -3.0f), decodeAnchorY(0.0f, 0.0f), decodeX(2.2857144f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(2.2857143878936768f, 3.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.7142857313156128f, -3.0f), decodeX(3.0f), decodeY(0.71428573f)); + path.curveTo(decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.7142857313156128f, 3.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(3.0f), decodeY(2.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.7142857313156128f, 3.0f), decodeX(0.0f), decodeY(0.71428573f)); + path.closePath(); + return path; + } + + private Path2D decodePath8() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.71428573f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.7142857313156128f, -3.0f), decodeAnchorX(0.5555555820465088f, -3.0f), decodeAnchorY(0.0f, 0.0f), decodeX(0.5555556f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(0.5555555820465088f, 3.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(2.444444417953491f, -3.0f), decodeAnchorY(0.0f, 0.0f), decodeX(2.4444444f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(2.444444417953491f, 3.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.7142857313156128f, -3.0f), decodeX(3.0f), decodeY(0.71428573f)); + path.curveTo(decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.7142857313156128f, 3.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(3.0f), decodeY(2.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.7142857313156128f, 3.0f), decodeX(0.0f), decodeY(0.71428573f)); + path.closePath(); + return path; + } + + private Path2D decodePath9() { + path.reset(); + path.moveTo(decodeX(0.11111111f), decodeY(2.0f)); + path.curveTo(decodeAnchorX(0.1111111119389534f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeAnchorX(0.1111111119389534f, 0.0f), decodeAnchorY(0.8571428656578064f, 3.5555555555555536f), decodeX(0.11111111f), decodeY(0.85714287f)); + path.curveTo(decodeAnchorX(0.1111111119389534f, 0.0f), decodeAnchorY(0.8571428656578064f, -3.5555555555555536f), decodeAnchorX(0.6666666865348816f, -3.444444444444443f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeX(0.6666667f), decodeY(0.14285715f)); + path.curveTo(decodeAnchorX(0.6666666865348816f, 3.444444444444443f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeAnchorX(2.3333332538604736f, -3.333333333333343f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeX(2.3333333f), decodeY(0.14285715f)); + path.curveTo(decodeAnchorX(2.3333332538604736f, 3.333333333333343f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeAnchorX(2.8888888359069824f, 0.0f), decodeAnchorY(0.8571428656578064f, -3.277777777777777f), decodeX(2.8888888f), decodeY(0.85714287f)); + path.curveTo(decodeAnchorX(2.8888888359069824f, 0.0f), decodeAnchorY(0.8571428656578064f, 3.277777777777777f), decodeAnchorX(2.8888888359069824f, 0.0f), decodeAnchorY(2.0f, 0.0f), decodeX(2.8888888f), decodeY(2.0f)); + path.lineTo(decodeX(0.11111111f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath10() { + path.reset(); + path.moveTo(decodeX(0.14285715f), decodeY(3.0f)); + path.curveTo(decodeAnchorX(0.1428571492433548f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeAnchorX(0.1428571492433548f, 0.0f), decodeAnchorY(0.8571428656578064f, 3.5555555555555536f), decodeX(0.14285715f), decodeY(0.85714287f)); + path.curveTo(decodeAnchorX(0.1428571492433548f, 0.0f), decodeAnchorY(0.8571428656578064f, -3.5555555555555536f), decodeAnchorX(0.8571428656578064f, -3.444444444444443f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeX(0.85714287f), decodeY(0.14285715f)); + path.curveTo(decodeAnchorX(0.8571428656578064f, 3.444444444444443f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeAnchorX(2.142857074737549f, -3.333333333333343f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeX(2.142857f), decodeY(0.14285715f)); + path.curveTo(decodeAnchorX(2.142857074737549f, 3.333333333333343f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeAnchorX(2.857142925262451f, 0.0f), decodeAnchorY(0.8571428656578064f, -3.277777777777777f), decodeX(2.857143f), decodeY(0.85714287f)); + path.curveTo(decodeAnchorX(2.857142925262451f, 0.0f), decodeAnchorY(0.8571428656578064f, 3.277777777777777f), decodeAnchorX(2.857142925262451f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeX(2.857143f), decodeY(3.0f)); + path.lineTo(decodeX(0.14285715f), decodeY(3.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath11() { + path.reset(); + path.moveTo(decodeX(1.4638889f), decodeY(2.25f)); + path.lineTo(decodeX(1.4652778f), decodeY(2.777778f)); + path.lineTo(decodeX(0.3809524f), decodeY(2.777778f)); + path.lineTo(decodeX(0.375f), decodeY(0.88095236f)); + path.curveTo(decodeAnchorX(0.375f, 0.0f), decodeAnchorY(0.8809523582458496f, -2.2500000000000004f), decodeAnchorX(0.8452380895614624f, -1.9166666666666647f), decodeAnchorY(0.380952388048172f, 0.0f), decodeX(0.8452381f), decodeY(0.3809524f)); + path.lineTo(decodeX(2.1011903f), decodeY(0.3809524f)); + path.curveTo(decodeAnchorX(2.1011903285980225f, 2.124999999999986f), decodeAnchorY(0.380952388048172f, 0.0f), decodeAnchorX(2.6309525966644287f, 0.0f), decodeAnchorY(0.863095223903656f, -2.5833333333333317f), decodeX(2.6309526f), decodeY(0.8630952f)); + path.lineTo(decodeX(2.625f), decodeY(2.7638886f)); + path.lineTo(decodeX(1.4666667f), decodeY(2.777778f)); + path.lineTo(decodeX(1.4638889f), decodeY(2.2361114f)); + path.lineTo(decodeX(2.3869045f), decodeY(2.222222f)); + path.lineTo(decodeX(2.375f), decodeY(0.86904764f)); + path.curveTo(decodeAnchorX(2.375f, -7.105427357601002E-15f), decodeAnchorY(0.8690476417541504f, -0.9166666666666679f), decodeAnchorX(2.095238208770752f, 1.0833333333333357f), decodeAnchorY(0.6071428656578064f, -1.7763568394002505E-15f), decodeX(2.0952382f), decodeY(0.60714287f)); + path.lineTo(decodeX(0.8333334f), decodeY(0.6130952f)); + path.curveTo(decodeAnchorX(0.8333333730697632f, -1.0f), decodeAnchorY(0.613095223903656f, 0.0f), decodeAnchorX(0.625f, 0.04166666666666696f), decodeAnchorY(0.8690476417541504f, -0.9583333333333339f), decodeX(0.625f), decodeY(0.86904764f)); + path.lineTo(decodeX(0.6130952f), decodeY(2.2361114f)); + path.lineTo(decodeX(1.4638889f), decodeY(2.25f)); + path.closePath(); + return path; + } + + private Path2D decodePath12() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.71428573f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.7142857313156128f, -3.0f), decodeAnchorX(0.5555555820465088f, -3.0f), decodeAnchorY(0.0f, 0.0f), decodeX(0.5555556f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(0.5555555820465088f, 3.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(2.444444417953491f, -3.0f), decodeAnchorY(0.0f, 0.0f), decodeX(2.4444444f), decodeY(0.0f)); + path.curveTo(decodeAnchorX(2.444444417953491f, 3.0f), decodeAnchorY(0.0f, 0.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.7142857313156128f, -3.0f), decodeX(3.0f), decodeY(0.71428573f)); + path.curveTo(decodeAnchorX(3.0f, 0.0f), decodeAnchorY(0.7142857313156128f, 3.0f), decodeAnchorX(3.0f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.curveTo(decodeAnchorX(0.0f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeAnchorX(0.0f, 0.0f), decodeAnchorY(0.7142857313156128f, 3.0f), decodeX(0.0f), decodeY(0.71428573f)); + path.closePath(); + return path; + } + + private Path2D decodePath13() { + path.reset(); + path.moveTo(decodeX(0.11111111f), decodeY(3.0f)); + path.curveTo(decodeAnchorX(0.1111111119389534f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeAnchorX(0.1111111119389534f, 0.0f), decodeAnchorY(0.8571428656578064f, 3.5555555555555536f), decodeX(0.11111111f), decodeY(0.85714287f)); + path.curveTo(decodeAnchorX(0.1111111119389534f, 0.0f), decodeAnchorY(0.8571428656578064f, -3.5555555555555536f), decodeAnchorX(0.6666666865348816f, -3.444444444444443f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeX(0.6666667f), decodeY(0.14285715f)); + path.curveTo(decodeAnchorX(0.6666666865348816f, 3.444444444444443f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeAnchorX(2.3333332538604736f, -3.333333333333343f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeX(2.3333333f), decodeY(0.14285715f)); + path.curveTo(decodeAnchorX(2.3333332538604736f, 3.333333333333343f), decodeAnchorY(0.1428571492433548f, 0.0f), decodeAnchorX(2.8888888359069824f, 0.0f), decodeAnchorY(0.8571428656578064f, -3.277777777777777f), decodeX(2.8888888f), decodeY(0.85714287f)); + path.curveTo(decodeAnchorX(2.8888888359069824f, 0.0f), decodeAnchorY(0.8571428656578064f, 3.277777777777777f), decodeAnchorX(2.8888888359069824f, 0.0f), decodeAnchorY(3.0f, 0.0f), decodeX(2.8888888f), decodeY(3.0f)); + path.lineTo(decodeX(0.11111111f), decodeY(3.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath14() { + path.reset(); + path.moveTo(decodeX(1.4583333f), decodeY(2.25f)); + path.lineTo(decodeX(1.4599359f), decodeY(2.777778f)); + path.lineTo(decodeX(0.2962963f), decodeY(2.777778f)); + path.lineTo(decodeX(0.29166666f), decodeY(0.88095236f)); + path.curveTo(decodeAnchorX(0.2916666567325592f, 0.0f), decodeAnchorY(0.8809523582458496f, -2.2500000000000004f), decodeAnchorX(0.6574074029922485f, -1.9166666666666647f), decodeAnchorY(0.380952388048172f, 0.0f), decodeX(0.6574074f), decodeY(0.3809524f)); + path.lineTo(decodeX(2.3009257f), decodeY(0.3809524f)); + path.curveTo(decodeAnchorX(2.3009257316589355f, 2.124999999999986f), decodeAnchorY(0.380952388048172f, 0.0f), decodeAnchorX(2.712963104248047f, 0.0f), decodeAnchorY(0.863095223903656f, -2.5833333333333317f), decodeX(2.712963f), decodeY(0.8630952f)); + path.lineTo(decodeX(2.7083333f), decodeY(2.7638886f)); + path.lineTo(decodeX(1.4615384f), decodeY(2.777778f)); + path.lineTo(decodeX(1.4583333f), decodeY(2.2361114f)); + path.lineTo(decodeX(2.523148f), decodeY(2.222222f)); + path.lineTo(decodeX(2.5138888f), decodeY(0.86904764f)); + path.curveTo(decodeAnchorX(2.5138888359069824f, -7.105427357601002E-15f), decodeAnchorY(0.8690476417541504f, -0.9166666666666679f), decodeAnchorX(2.2962963581085205f, 1.0833333333333357f), decodeAnchorY(0.6071428656578064f, -1.7763568394002505E-15f), decodeX(2.2962964f), decodeY(0.60714287f)); + path.lineTo(decodeX(0.6481482f), decodeY(0.6130952f)); + path.curveTo(decodeAnchorX(0.6481481790542603f, -1.0f), decodeAnchorY(0.613095223903656f, 0.0f), decodeAnchorX(0.4861111044883728f, 0.04166666666666696f), decodeAnchorY(0.8690476417541504f, -0.9583333333333339f), decodeX(0.4861111f), decodeY(0.86904764f)); + path.lineTo(decodeX(0.47685182f), decodeY(2.2361114f)); + path.lineTo(decodeX(1.4583333f), decodeY(2.25f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.1f,0.2f,0.6f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color6, + decodeColor(color6,color2,0.5f), + color2}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.1f,0.2f,0.6f,1.0f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8, + decodeColor(color8,color9,0.5f), + color9}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color10, + decodeColor(color10,color2,0.5f), + color2}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.1f,0.2f,0.42096776f,0.64193547f,0.82096773f,1.0f }, + new Color[] { color11, + decodeColor(color11,color12,0.5f), + color12, + decodeColor(color12,color13,0.5f), + color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.1f,0.2f,0.6f,1.0f }, + new Color[] { color17, + decodeColor(color17,color18,0.5f), + color18, + decodeColor(color18,color5,0.5f), + color5}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.12419355f,0.2483871f,0.42580646f,0.6032258f,0.6854839f,0.7677419f,0.88387096f,1.0f }, + new Color[] { color19, + decodeColor(color19,color20,0.5f), + color20, + decodeColor(color20,color21,0.5f), + color21, + decodeColor(color21,color22,0.5f), + color22, + decodeColor(color22,color23,0.5f), + color23}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color24, + decodeColor(color24,color2,0.5f), + color2}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color25, + decodeColor(color25,color2,0.5f), + color2}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.12419355f,0.2483871f,0.42580646f,0.6032258f,0.6854839f,0.7677419f,0.86774194f,0.9677419f }, + new Color[] { color26, + decodeColor(color26,color27,0.5f), + color27, + decodeColor(color27,color28,0.5f), + color28, + decodeColor(color28,color29,0.5f), + color29, + decodeColor(color29,color30,0.5f), + color30}); + } + + private Paint decodeGradient13(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color25, + decodeColor(color25,color31,0.5f), + color31}); + } + + private Paint decodeGradient14(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.12419355f,0.2483871f,0.42580646f,0.6032258f,0.6854839f,0.7677419f,0.8548387f,0.9419355f }, + new Color[] { color32, + decodeColor(color32,color33,0.5f), + color33, + decodeColor(color33,color34,0.5f), + color34, + decodeColor(color34,color35,0.5f), + color35, + decodeColor(color35,color36,0.5f), + color36}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TableEditorPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TableEditorPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,134 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TableEditorPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TableEditorPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_ENABLED_FOCUSED = 3; + static final int BACKGROUND_SELECTED = 4; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TableEditorPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusLightBackground", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TableEditorPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_ENABLED_FOCUSED: paintBackgroundEnabledAndFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundEnabledAndFocused(Graphics2D g) { + path = decodePath1(); + g.setPaint(color2); + g.fill(path); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.0f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.24000001f)); + path.lineTo(decodeX(2.7600007f), decodeY(0.24000001f)); + path.lineTo(decodeX(2.7600007f), decodeY(2.7599998f)); + path.lineTo(decodeX(0.24000001f), decodeY(2.7599998f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TableHeaderPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TableHeaderPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,140 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TableHeaderPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TableHeaderPainter to determine which region/state is being painted + //by that instance. + static final int ASCENDINGSORTICON_ENABLED = 1; + static final int DESCENDINGSORTICON_ENABLED = 2; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TableHeaderPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", 0.0057927966f, -0.21904764f, 0.15686274f, 0); + private Color color2 = decodeColor("nimbusBase", 0.0038565993f, 0.02012986f, 0.054901958f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TableHeaderPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case ASCENDINGSORTICON_ENABLED: paintascendingSortIconEnabled(g); break; + case DESCENDINGSORTICON_ENABLED: paintdescendingSortIconEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintascendingSortIconEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + + } + + private void paintdescendingSortIconEnabled(Graphics2D g) { + path = decodePath2(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.7070175f), decodeY(0.0f)); + path.lineTo(decodeX(3.0f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(2.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(1.0f), decodeY(1.0f)); + path.lineTo(decodeX(2.0f), decodeY(1.0f)); + path.lineTo(decodeX(1.5025063f), decodeY(2.0f)); + path.lineTo(decodeX(1.0f), decodeY(1.0f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color1, + decodeColor(color1,color2,0.5f), + color2}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TableHeaderTableHeaderRendererPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TableHeaderTableHeaderRendererPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,380 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TableHeaderTableHeaderRendererPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TableHeaderTableHeaderRendererPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_ENABLED_FOCUSED = 3; + static final int BACKGROUND_MOUSEOVER = 4; + static final int BACKGROUND_PRESSED = 5; + static final int BACKGROUND_ENABLED_SORTED = 6; + static final int BACKGROUND_ENABLED_FOCUSED_SORTED = 7; + static final int BACKGROUND_DISABLED_SORTED = 8; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TableHeaderTableHeaderRendererPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBorder", -0.013888836f, 5.823001E-4f, -0.12941176f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.08625447f, 0.062745094f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", -0.013888836f, -0.028334536f, -0.17254901f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", -0.013888836f, -0.029445238f, -0.16470587f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", -0.02020204f, -0.053531498f, 0.011764705f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10655806f, 0.24313724f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", 0.0f, -0.08455229f, 0.1607843f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0f, -0.07016757f, 0.12941176f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", 0.0f, -0.07466974f, 0.23921567f, 0); + private Color color10 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10658931f, 0.25098038f, 0); + private Color color12 = decodeColor("nimbusBlueGrey", 0.0f, -0.08613607f, 0.21960783f, 0); + private Color color13 = decodeColor("nimbusBlueGrey", 0.0f, -0.07333623f, 0.20392156f, 0); + private Color color14 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color15 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.05960039f, 0.10196078f, 0); + private Color color16 = decodeColor("nimbusBlueGrey", 0.0f, -0.017742813f, 0.015686274f, 0); + private Color color17 = decodeColor("nimbusBlueGrey", -0.0027777553f, -0.0018306673f, -0.02352941f, 0); + private Color color18 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.020436227f, 0.12549019f, 0); + private Color color19 = decodeColor("nimbusBase", -0.023096085f, -0.62376213f, 0.4352941f, 0); + private Color color20 = decodeColor("nimbusBase", -0.0012707114f, -0.50901747f, 0.31764704f, 0); + private Color color21 = decodeColor("nimbusBase", -0.002461195f, -0.47139505f, 0.2862745f, 0); + private Color color22 = decodeColor("nimbusBase", -0.0051222444f, -0.49103343f, 0.372549f, 0); + private Color color23 = decodeColor("nimbusBase", -8.738637E-4f, -0.49872798f, 0.3098039f, 0); + private Color color24 = decodeColor("nimbusBase", -2.2029877E-4f, -0.4916465f, 0.37647057f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TableHeaderTableHeaderRendererPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_ENABLED_FOCUSED: paintBackgroundEnabledAndFocused(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_ENABLED_SORTED: paintBackgroundEnabledAndSorted(g); break; + case BACKGROUND_ENABLED_FOCUSED_SORTED: paintBackgroundEnabledAndFocusedAndSorted(g); break; + case BACKGROUND_DISABLED_SORTED: paintBackgroundDisabledAndSorted(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + + } + + private void paintBackgroundEnabledAndFocused(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + path = decodePath1(); + g.setPaint(color10); + g.fill(path); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + + } + + private void paintBackgroundPressed(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + + } + + private void paintBackgroundEnabledAndSorted(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient5(rect)); + g.fill(rect); + + } + + private void paintBackgroundEnabledAndFocusedAndSorted(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient6(rect)); + g.fill(rect); + path = decodePath1(); + g.setPaint(color10); + g.fill(path); + + } + + private void paintBackgroundDisabledAndSorted(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(2.8f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(2.8f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(2.8f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(2.8f), //width + decodeY(2.8f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(2.8f) - decodeX(0.0f), //width + decodeY(2.8f) - decodeY(0.0f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.0f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.24000001f)); + path.lineTo(decodeX(2.7599998f), decodeY(0.24000001f)); + path.lineTo(decodeX(2.7599998f), decodeY(2.7599998f)); + path.lineTo(decodeX(0.24000001f), decodeY(2.7599998f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.14441223f,0.43703705f,0.59444445f,0.75185186f,0.8759259f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3, + decodeColor(color3,color4,0.5f), + color4, + decodeColor(color4,color5,0.5f), + color5}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.07147767f,0.2888889f,0.5490909f,0.7037037f,0.8518518f,1.0f }, + new Color[] { color6, + decodeColor(color6,color7,0.5f), + color7, + decodeColor(color7,color8,0.5f), + color8, + decodeColor(color8,color9,0.5f), + color9}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.07147767f,0.2888889f,0.5490909f,0.7037037f,0.7919203f,0.88013697f }, + new Color[] { color11, + decodeColor(color11,color12,0.5f), + color12, + decodeColor(color12,color13,0.5f), + color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.07147767f,0.2888889f,0.5490909f,0.7037037f,0.8518518f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16, + decodeColor(color16,color17,0.5f), + color17, + decodeColor(color17,color18,0.5f), + color18}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.08049711f,0.32534248f,0.56267816f,0.7037037f,0.83986557f,0.97602737f }, + new Color[] { color19, + decodeColor(color19,color20,0.5f), + color20, + decodeColor(color20,color21,0.5f), + color21, + decodeColor(color21,color22,0.5f), + color22}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.07147767f,0.2888889f,0.5490909f,0.7037037f,0.8518518f,1.0f }, + new Color[] { color19, + decodeColor(color19,color23,0.5f), + color23, + decodeColor(color23,color21,0.5f), + color21, + decodeColor(color21,color24,0.5f), + color24}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TableHeaderTableHeaderRendererSortedState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TableHeaderTableHeaderRendererSortedState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,42 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class TableHeaderTableHeaderRendererSortedState extends State { + TableHeaderTableHeaderRendererSortedState() { + super("Sorted"); + } + + @Override protected boolean isInState(JComponent c) { + + String sortOrder = (String)c.getClientProperty("Table.sortOrder"); + return sortOrder != null && ("ASCENDING".equals(sortOrder) || "DESCENDING".equals(sortOrder)); + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TextAreaNotInScrollPaneState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TextAreaNotInScrollPaneState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,41 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class TextAreaNotInScrollPaneState extends State { + TextAreaNotInScrollPaneState() { + super("NotInScrollPane"); + } + + @Override protected boolean isInState(JComponent c) { + + return !(c.getParent() instanceof javax.swing.JViewport); + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TextAreaPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TextAreaPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,411 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TextAreaPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TextAreaPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_DISABLED_NOTINSCROLLPANE = 3; + static final int BACKGROUND_ENABLED_NOTINSCROLLPANE = 4; + static final int BACKGROUND_SELECTED = 5; + static final int BORDER_DISABLED_NOTINSCROLLPANE = 6; + static final int BORDER_FOCUSED_NOTINSCROLLPANE = 7; + static final int BORDER_ENABLED_NOTINSCROLLPANE = 8; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TextAreaPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.07995863f, 0.15294117f, 0); + private Color color2 = decodeColor("nimbusLightBackground", 0.0f, 0.0f, 0.0f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.07187897f, 0.06666666f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07826825f, 0.10588235f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07856284f, 0.11372548f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07796818f, 0.09803921f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.0965403f, -0.18431371f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.1048766f, -0.05098039f, 0); + private Color color9 = decodeColor("nimbusLightBackground", 0.6666667f, 0.004901961f, -0.19999999f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10512091f, -0.019607842f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.105344966f, 0.011764705f, 0); + private Color color12 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TextAreaPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_DISABLED_NOTINSCROLLPANE: paintBackgroundDisabledAndNotInScrollPane(g); break; + case BACKGROUND_ENABLED_NOTINSCROLLPANE: paintBackgroundEnabledAndNotInScrollPane(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + case BORDER_DISABLED_NOTINSCROLLPANE: paintBorderDisabledAndNotInScrollPane(g); break; + case BORDER_FOCUSED_NOTINSCROLLPANE: paintBorderFocusedAndNotInScrollPane(g); break; + case BORDER_ENABLED_NOTINSCROLLPANE: paintBorderEnabledAndNotInScrollPane(g); break; + + } + } + + protected Object[] getExtendedCacheKeys(JComponent c) { + Object[] extendedCacheKeys = null; + switch(state) { + case BACKGROUND_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + case BACKGROUND_ENABLED_NOTINSCROLLPANE: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + case BORDER_FOCUSED_NOTINSCROLLPANE: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color9, 0.004901961f, -0.19999999f, 0), + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + case BORDER_ENABLED_NOTINSCROLLPANE: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color9, 0.004901961f, -0.19999999f, 0), + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + } + return extendedCacheKeys; + } + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint((Color)componentColors[0]); + g.fill(rect); + + } + + private void paintBackgroundDisabledAndNotInScrollPane(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundEnabledAndNotInScrollPane(Graphics2D g) { + rect = decodeRect2(); + g.setPaint((Color)componentColors[0]); + g.fill(rect); + + } + + private void paintBackgroundSelected(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(color2); + g.fill(rect); + + } + + private void paintBorderDisabledAndNotInScrollPane(Graphics2D g) { + rect = decodeRect3(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color6); + g.fill(rect); + rect = decodeRect6(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect7(); + g.setPaint(color4); + g.fill(rect); + + } + + private void paintBorderFocusedAndNotInScrollPane(Graphics2D g) { + rect = decodeRect8(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect11(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect12(); + g.setPaint(color11); + g.fill(rect); + path = decodePath1(); + g.setPaint(color12); + g.fill(path); + + } + + private void paintBorderEnabledAndNotInScrollPane(Graphics2D g) { + rect = decodeRect8(); + g.setPaint(decodeGradient5(rect)); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect11(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect12(); + g.setPaint(color11); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(0.4f), //y + decodeX(2.3333333f) - decodeX(0.6666667f), //width + decodeY(1.0f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.6f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect5() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(1.0f), //y + decodeX(1.0f) - decodeX(0.6666667f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect6() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(2.3333333f), //y + decodeX(2.3333333f) - decodeX(0.6666667f), //width + decodeY(2.0f) - decodeY(2.3333333f)); //height + return rect; + } + + private Rectangle2D decodeRect7() { + rect.setRect(decodeX(2.0f), //x + decodeY(1.0f), //y + decodeX(2.3333333f) - decodeX(2.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect8() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(1.0f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect9() { + rect.setRect(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(1.0f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect10() { + rect.setRect(decodeX(0.4f), //x + decodeY(1.0f), //y + decodeX(0.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect11() { + rect.setRect(decodeX(2.4f), //x + decodeY(1.0f), //y + decodeX(2.6f) - decodeX(2.4f), //width + decodeY(2.6f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect12() { + rect.setRect(decodeX(0.6f), //x + decodeY(2.4f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.6f) - decodeY(2.4f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.4f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.5999999046325684f, 0.0f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeAnchorX(2.880000352859497f, 0.09999999999999432f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeX(2.8800004f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.880000352859497f, 0.09999999999999432f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeAnchorX(2.880000352859497f, 0.0f), decodeAnchorY(2.879999876022339f, 0.0f), decodeX(2.8800004f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(0.120000005f)); + path.lineTo(decodeX(2.8800004f), decodeY(0.120000005f)); + path.lineTo(decodeX(2.8800004f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.4f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color5, + decodeColor(color5,color1,0.5f), + color1}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.1625f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1]}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TextFieldPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TextFieldPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,381 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TextFieldPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TextFieldPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_SELECTED = 3; + static final int BORDER_DISABLED = 4; + static final int BORDER_FOCUSED = 5; + static final int BORDER_ENABLED = 6; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TextFieldPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.07995863f, 0.15294117f, 0); + private Color color2 = decodeColor("nimbusLightBackground", 0.0f, 0.0f, 0.0f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.07187897f, 0.06666666f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07826825f, 0.10588235f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07856284f, 0.11372548f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.07796818f, 0.09803921f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.0965403f, -0.18431371f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.1048766f, -0.05098039f, 0); + private Color color9 = decodeColor("nimbusLightBackground", 0.6666667f, 0.004901961f, -0.19999999f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10512091f, -0.019607842f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.105344966f, 0.011764705f, 0); + private Color color12 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TextFieldPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + case BORDER_DISABLED: paintBorderDisabled(g); break; + case BORDER_FOCUSED: paintBorderFocused(g); break; + case BORDER_ENABLED: paintBorderEnabled(g); break; + + } + } + + protected Object[] getExtendedCacheKeys(JComponent c) { + Object[] extendedCacheKeys = null; + switch(state) { + case BACKGROUND_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + case BORDER_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color9, 0.004901961f, -0.19999999f, 0), + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + case BORDER_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color9, 0.004901961f, -0.19999999f, 0), + getComponentColor(c, "background", color2, 0.0f, 0.0f, 0)}; + break; + } + return extendedCacheKeys; + } + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint((Color)componentColors[0]); + g.fill(rect); + + } + + private void paintBackgroundSelected(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color2); + g.fill(rect); + + } + + private void paintBorderDisabled(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(decodeGradient2(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color6); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color4); + g.fill(rect); + rect = decodeRect6(); + g.setPaint(color4); + g.fill(rect); + + } + + private void paintBorderFocused(Graphics2D g) { + rect = decodeRect7(); + g.setPaint(decodeGradient3(rect)); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect11(); + g.setPaint(color11); + g.fill(rect); + path = decodePath1(); + g.setPaint(color12); + g.fill(path); + + } + + private void paintBorderEnabled(Graphics2D g) { + rect = decodeRect7(); + g.setPaint(decodeGradient5(rect)); + g.fill(rect); + rect = decodeRect8(); + g.setPaint(decodeGradient4(rect)); + g.fill(rect); + rect = decodeRect9(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect10(); + g.setPaint(color10); + g.fill(rect); + rect = decodeRect11(); + g.setPaint(color11); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(0.4f), //y + decodeX(2.3333333f) - decodeX(0.6666667f), //width + decodeY(1.0f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.6f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(1.0f), //y + decodeX(1.0f) - decodeX(0.6666667f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect5() { + rect.setRect(decodeX(0.6666667f), //x + decodeY(2.3333333f), //y + decodeX(2.3333333f) - decodeX(0.6666667f), //width + decodeY(2.0f) - decodeY(2.3333333f)); //height + return rect; + } + + private Rectangle2D decodeRect6() { + rect.setRect(decodeX(2.0f), //x + decodeY(1.0f), //y + decodeX(2.3333333f) - decodeX(2.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect7() { + rect.setRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(1.0f) - decodeY(0.4f)); //height + return rect; + } + + private Rectangle2D decodeRect8() { + rect.setRect(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(1.0f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect9() { + rect.setRect(decodeX(0.4f), //x + decodeY(1.0f), //y + decodeX(0.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect10() { + rect.setRect(decodeX(2.4f), //x + decodeY(1.0f), //y + decodeX(2.6f) - decodeX(2.4f), //width + decodeY(2.6f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect11() { + rect.setRect(decodeX(0.6f), //x + decodeY(2.4f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.6f) - decodeY(2.4f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.4f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.5999999046325684f, 0.0f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeAnchorX(2.880000352859497f, 0.09999999999999432f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeX(2.8800004f), decodeY(0.4f)); + path.curveTo(decodeAnchorX(2.880000352859497f, 0.09999999999999432f), decodeAnchorY(0.4000000059604645f, 0.0f), decodeAnchorX(2.880000352859497f, 0.0f), decodeAnchorY(2.879999876022339f, 0.0f), decodeX(2.8800004f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(2.8799999f)); + path.lineTo(decodeX(0.120000005f), decodeY(0.120000005f)); + path.lineTo(decodeX(2.8800004f), decodeY(0.120000005f)); + path.lineTo(decodeX(2.8800004f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.4f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color5, + decodeColor(color5,color1,0.5f), + color1}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (0.1625f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1]}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.1f,0.49999997f,0.9f }, + new Color[] { color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TextPanePainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TextPanePainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,124 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TextPanePainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TextPanePainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_SELECTED = 3; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TextPanePainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.07995863f, 0.15294117f, 0); + private Color color2 = decodeColor("nimbusLightBackground", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TextPanePainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color2); + g.fill(rect); + + } + + private void paintBackgroundSelected(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color2); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ToggleButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ToggleButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,705 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ToggleButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ToggleButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_FOCUSED = 3; + static final int BACKGROUND_MOUSEOVER = 4; + static final int BACKGROUND_MOUSEOVER_FOCUSED = 5; + static final int BACKGROUND_PRESSED = 6; + static final int BACKGROUND_PRESSED_FOCUSED = 7; + static final int BACKGROUND_SELECTED = 8; + static final int BACKGROUND_SELECTED_FOCUSED = 9; + static final int BACKGROUND_PRESSED_SELECTED = 10; + static final int BACKGROUND_PRESSED_SELECTED_FOCUSED = 11; + static final int BACKGROUND_MOUSEOVER_SELECTED = 12; + static final int BACKGROUND_MOUSEOVER_SELECTED_FOCUSED = 13; + static final int BACKGROUND_DISABLED_SELECTED = 14; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ToggleButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.06885965f, -0.36862746f, -232); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0f, -0.06766917f, 0.07843137f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.0f, -0.06484103f, 0.027450979f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0f, -0.08477524f, 0.16862744f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.080091536f, 0.15686274f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, -0.07016757f, 0.12941176f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", 0.0f, -0.07052632f, 0.1372549f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0f, -0.070878744f, 0.14509803f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.06885965f, -0.36862746f, -190); + private Color color10 = decodeColor("nimbusBlueGrey", -0.055555522f, -0.05356429f, -0.12549019f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.0f, -0.0147816315f, -0.3764706f, 0); + private Color color12 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10655806f, 0.24313724f, 0); + private Color color13 = decodeColor("nimbusBlueGrey", 0.0f, -0.09823123f, 0.2117647f, 0); + private Color color14 = decodeColor("nimbusBlueGrey", 0.0f, -0.0749532f, 0.24705881f, 0); + private Color color15 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color16 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color17 = decodeColor("nimbusBlueGrey", 0.0f, -0.020974077f, -0.21960783f, 0); + private Color color18 = decodeColor("nimbusBlueGrey", 0.0f, 0.11169591f, -0.53333336f, 0); + private Color color19 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10658931f, 0.25098038f, 0); + private Color color20 = decodeColor("nimbusBlueGrey", 0.0f, -0.098526314f, 0.2352941f, 0); + private Color color21 = decodeColor("nimbusBlueGrey", 0.0f, -0.07333623f, 0.20392156f, 0); + private Color color22 = new Color(245, 250, 255, 160); + private Color color23 = decodeColor("nimbusBlueGrey", 0.055555582f, 0.8894737f, -0.7176471f, 0); + private Color color24 = decodeColor("nimbusBlueGrey", 0.0f, 5.847961E-4f, -0.32156864f, 0); + private Color color25 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.05960039f, 0.10196078f, 0); + private Color color26 = decodeColor("nimbusBlueGrey", -0.008547008f, -0.04772438f, 0.06666666f, 0); + private Color color27 = decodeColor("nimbusBlueGrey", -0.0027777553f, -0.0018306673f, -0.02352941f, 0); + private Color color28 = decodeColor("nimbusBlueGrey", -0.0027777553f, -0.0212406f, 0.13333333f, 0); + private Color color29 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.030845039f, 0.23921567f, 0); + private Color color30 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -86); + private Color color31 = decodeColor("nimbusBlueGrey", 0.0f, -0.06472479f, -0.23137254f, 0); + private Color color32 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.06959064f, -0.0745098f, 0); + private Color color33 = decodeColor("nimbusBlueGrey", 0.0138888955f, -0.06401469f, -0.07058823f, 0); + private Color color34 = decodeColor("nimbusBlueGrey", 0.0f, -0.06530018f, 0.035294116f, 0); + private Color color35 = decodeColor("nimbusBlueGrey", 0.0f, -0.06507177f, 0.031372547f, 0); + private Color color36 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.05338346f, -0.47058824f, 0); + private Color color37 = decodeColor("nimbusBlueGrey", 0.0f, -0.049301825f, -0.36078432f, 0); + private Color color38 = decodeColor("nimbusBlueGrey", -0.018518567f, -0.03909774f, -0.2509804f, 0); + private Color color39 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.040013492f, -0.13333333f, 0); + private Color color40 = decodeColor("nimbusBlueGrey", 0.01010108f, -0.039558575f, -0.1372549f, 0); + private Color color41 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.060526315f, -0.3529412f, 0); + private Color color42 = decodeColor("nimbusBlueGrey", 0.0f, -0.064372465f, -0.2352941f, 0); + private Color color43 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.0595709f, -0.12941176f, 0); + private Color color44 = decodeColor("nimbusBlueGrey", 0.0f, -0.061075766f, -0.031372547f, 0); + private Color color45 = decodeColor("nimbusBlueGrey", 0.0f, -0.06080256f, -0.035294116f, 0); + private Color color46 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -220); + private Color color47 = decodeColor("nimbusBlueGrey", 0.0f, -0.066408664f, 0.054901958f, 0); + private Color color48 = decodeColor("nimbusBlueGrey", 0.0f, -0.06807348f, 0.086274505f, 0); + private Color color49 = decodeColor("nimbusBlueGrey", 0.0f, -0.06924191f, 0.109803915f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ToggleButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_MOUSEOVER_FOCUSED: paintBackgroundMouseOverAndFocused(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_PRESSED_FOCUSED: paintBackgroundPressedAndFocused(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + case BACKGROUND_SELECTED_FOCUSED: paintBackgroundSelectedAndFocused(g); break; + case BACKGROUND_PRESSED_SELECTED: paintBackgroundPressedAndSelected(g); break; + case BACKGROUND_PRESSED_SELECTED_FOCUSED: paintBackgroundPressedAndSelectedAndFocused(g); break; + case BACKGROUND_MOUSEOVER_SELECTED: paintBackgroundMouseOverAndSelected(g); break; + case BACKGROUND_MOUSEOVER_SELECTED_FOCUSED: paintBackgroundMouseOverAndSelectedAndFocused(g); break; + case BACKGROUND_DISABLED_SELECTED: paintBackgroundDisabledAndSelected(g); break; + + } + } + + protected Object[] getExtendedCacheKeys(JComponent c) { + Object[] extendedCacheKeys = null; + switch(state) { + case BACKGROUND_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color12, -0.10655806f, 0.24313724f, 0), + getComponentColor(c, "background", color13, -0.09823123f, 0.2117647f, 0), + getComponentColor(c, "background", color6, -0.07016757f, 0.12941176f, 0), + getComponentColor(c, "background", color14, -0.0749532f, 0.24705881f, 0), + getComponentColor(c, "background", color15, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color12, -0.10655806f, 0.24313724f, 0), + getComponentColor(c, "background", color13, -0.09823123f, 0.2117647f, 0), + getComponentColor(c, "background", color6, -0.07016757f, 0.12941176f, 0), + getComponentColor(c, "background", color14, -0.0749532f, 0.24705881f, 0), + getComponentColor(c, "background", color15, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_MOUSEOVER: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color19, -0.10658931f, 0.25098038f, 0), + getComponentColor(c, "background", color20, -0.098526314f, 0.2352941f, 0), + getComponentColor(c, "background", color21, -0.07333623f, 0.20392156f, 0), + getComponentColor(c, "background", color15, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_MOUSEOVER_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color19, -0.10658931f, 0.25098038f, 0), + getComponentColor(c, "background", color20, -0.098526314f, 0.2352941f, 0), + getComponentColor(c, "background", color21, -0.07333623f, 0.20392156f, 0), + getComponentColor(c, "background", color15, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_PRESSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color25, -0.05960039f, 0.10196078f, 0), + getComponentColor(c, "background", color26, -0.04772438f, 0.06666666f, 0), + getComponentColor(c, "background", color27, -0.0018306673f, -0.02352941f, 0), + getComponentColor(c, "background", color28, -0.0212406f, 0.13333333f, 0), + getComponentColor(c, "background", color29, -0.030845039f, 0.23921567f, 0)}; + break; + case BACKGROUND_PRESSED_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color25, -0.05960039f, 0.10196078f, 0), + getComponentColor(c, "background", color26, -0.04772438f, 0.06666666f, 0), + getComponentColor(c, "background", color27, -0.0018306673f, -0.02352941f, 0), + getComponentColor(c, "background", color28, -0.0212406f, 0.13333333f, 0), + getComponentColor(c, "background", color29, -0.030845039f, 0.23921567f, 0)}; + break; + case BACKGROUND_SELECTED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color33, -0.06401469f, -0.07058823f, 0), + getComponentColor(c, "background", color34, -0.06530018f, 0.035294116f, 0), + getComponentColor(c, "background", color35, -0.06507177f, 0.031372547f, 0)}; + break; + case BACKGROUND_SELECTED_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color33, -0.06401469f, -0.07058823f, 0), + getComponentColor(c, "background", color34, -0.06530018f, 0.035294116f, 0), + getComponentColor(c, "background", color35, -0.06507177f, 0.031372547f, 0)}; + break; + case BACKGROUND_PRESSED_SELECTED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color38, -0.03909774f, -0.2509804f, 0), + getComponentColor(c, "background", color39, -0.040013492f, -0.13333333f, 0), + getComponentColor(c, "background", color40, -0.039558575f, -0.1372549f, 0)}; + break; + case BACKGROUND_PRESSED_SELECTED_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color38, -0.03909774f, -0.2509804f, 0), + getComponentColor(c, "background", color39, -0.040013492f, -0.13333333f, 0), + getComponentColor(c, "background", color40, -0.039558575f, -0.1372549f, 0)}; + break; + case BACKGROUND_MOUSEOVER_SELECTED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color43, -0.0595709f, -0.12941176f, 0), + getComponentColor(c, "background", color44, -0.061075766f, -0.031372547f, 0), + getComponentColor(c, "background", color45, -0.06080256f, -0.035294116f, 0)}; + break; + case BACKGROUND_MOUSEOVER_SELECTED_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color43, -0.0595709f, -0.12941176f, 0), + getComponentColor(c, "background", color44, -0.061075766f, -0.031372547f, 0), + getComponentColor(c, "background", color45, -0.06080256f, -0.035294116f, 0)}; + break; + } + return extendedCacheKeys; + } + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDisabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color16); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color16); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressed(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color22); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color16); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundSelected(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color30); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundSelectedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect6(); + g.setPaint(color16); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndSelected(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color30); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient11(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndSelectedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect6(); + g.setPaint(color16); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient11(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndSelected(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color30); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient12(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndSelectedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect6(); + g.setPaint(color16); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient12(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundDisabledAndSelected(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color46); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient13(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient14(roundRect)); + g.fill(roundRect); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(0.2857143f), //x + decodeY(0.42857143f), //y + decodeX(2.7142859f) - decodeX(0.2857143f), //width + decodeY(2.857143f) - decodeY(0.42857143f), //height + 12.0f, 12.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(0.2857143f), //x + decodeY(0.2857143f), //y + decodeX(2.7142859f) - decodeX(0.2857143f), //width + decodeY(2.7142859f) - decodeY(0.2857143f), //height + 9.0f, 9.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(0.42857143f), //x + decodeY(0.42857143f), //y + decodeX(2.5714285f) - decodeX(0.42857143f), //width + decodeY(2.5714285f) - decodeY(0.42857143f), //height + 7.0f, 7.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect4() { + roundRect.setRoundRect(decodeX(0.08571429f), //x + decodeY(0.08571429f), //y + decodeX(2.914286f) - decodeX(0.08571429f), //width + decodeY(2.914286f) - decodeY(0.08571429f), //height + 11.0f, 11.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect5() { + roundRect.setRoundRect(decodeX(0.2857143f), //x + decodeY(0.42857143f), //y + decodeX(2.7142859f) - decodeX(0.2857143f), //width + decodeY(2.857143f) - decodeY(0.42857143f), //height + 9.0f, 9.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect6() { + roundRect.setRoundRect(decodeX(0.08571429f), //x + decodeY(0.08571429f), //y + decodeX(2.914286f) - decodeX(0.08571429f), //width + decodeY(2.9142857f) - decodeY(0.08571429f), //height + 11.0f, 11.0f); //rounding + return roundRect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.03f,0.06f,0.33f,0.6f,0.65f,0.7f,0.825f,0.95f,0.975f,1.0f }, + new Color[] { color4, + decodeColor(color4,color5,0.5f), + color5, + decodeColor(color5,color6,0.5f), + color6, + decodeColor(color6,color6,0.5f), + color6, + decodeColor(color6,color7,0.5f), + color7, + decodeColor(color7,color8,0.5f), + color8}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.024f,0.06f,0.276f,0.6f,0.65f,0.7f,0.856f,0.96f,0.98399997f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[3],0.5f), + (Color)componentColors[3], + decodeColor((Color)componentColors[3],(Color)componentColors[4],0.5f), + (Color)componentColors[4]}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.03f,0.06f,0.33f,0.6f,0.65f,0.7f,0.825f,0.95f,0.975f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[3],0.5f), + (Color)componentColors[3], + decodeColor((Color)componentColors[3],(Color)componentColors[4],0.5f), + (Color)componentColors[4]}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color17, + decodeColor(color17,color18,0.5f), + color18}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.024f,0.06f,0.276f,0.6f,0.65f,0.7f,0.856f,0.96f,0.98f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[3],0.5f), + (Color)componentColors[3], + decodeColor((Color)componentColors[3],(Color)componentColors[3],0.5f), + (Color)componentColors[3]}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.05f,0.5f,0.95f }, + new Color[] { color23, + decodeColor(color23,color24,0.5f), + color24}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color31, + decodeColor(color31,color32,0.5f), + color32}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.06684492f,0.13368984f,0.56684494f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2]}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color36, + decodeColor(color36,color37,0.5f), + color37}); + } + + private Paint decodeGradient12(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color41, + decodeColor(color41,color42,0.5f), + color42}); + } + + private Paint decodeGradient13(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color47, + decodeColor(color47,color48,0.5f), + color48}); + } + + private Paint decodeGradient14(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.06684492f,0.13368984f,0.56684494f,1.0f }, + new Color[] { color48, + decodeColor(color48,color49,0.5f), + color49, + decodeColor(color49,color49,0.5f), + color49}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ToolBarButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ToolBarButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,288 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ToolBarButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ToolBarButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BACKGROUND_FOCUSED = 2; + static final int BACKGROUND_MOUSEOVER = 3; + static final int BACKGROUND_MOUSEOVER_FOCUSED = 4; + static final int BACKGROUND_PRESSED = 5; + static final int BACKGROUND_PRESSED_FOCUSED = 6; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ToolBarButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.06885965f, -0.36862746f, -153); + private Color color3 = decodeColor("nimbusBlueGrey", 0.0f, -0.020974077f, -0.21960783f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0f, 0.11169591f, -0.53333336f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10658931f, 0.25098038f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, -0.098526314f, 0.2352941f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", 0.0f, -0.07333623f, 0.20392156f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.05960039f, 0.10196078f, 0); + private Color color10 = decodeColor("nimbusBlueGrey", -0.008547008f, -0.04772438f, 0.06666666f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", -0.0027777553f, -0.0018306673f, -0.02352941f, 0); + private Color color12 = decodeColor("nimbusBlueGrey", -0.0027777553f, -0.0212406f, 0.13333333f, 0); + private Color color13 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.030845039f, 0.23921567f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ToolBarButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_MOUSEOVER_FOCUSED: paintBackgroundMouseOverAndFocused(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_PRESSED_FOCUSED: paintBackgroundPressedAndFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundFocused(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color2); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressed(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color2); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.4133738f), decodeY(0.120000005f)); + path.lineTo(decodeX(1.9893618f), decodeY(0.120000005f)); + path.curveTo(decodeAnchorX(1.9893617630004883f, 3.0f), decodeAnchorY(0.12000000476837158f, 0.0f), decodeAnchorX(2.8857147693634033f, 0.0f), decodeAnchorY(1.04347825050354f, -3.0f), decodeX(2.8857148f), decodeY(1.0434783f)); + path.lineTo(decodeX(2.9f), decodeY(1.9565217f)); + path.curveTo(decodeAnchorX(2.9000000953674316f, 0.0f), decodeAnchorY(1.95652174949646f, 3.0f), decodeAnchorX(1.9893617630004883f, 3.0f), decodeAnchorY(2.8714287281036377f, 0.0f), decodeX(1.9893618f), decodeY(2.8714287f)); + path.lineTo(decodeX(1.0106384f), decodeY(2.8714287f)); + path.curveTo(decodeAnchorX(1.0106383562088013f, -3.0f), decodeAnchorY(2.8714287281036377f, 0.0f), decodeAnchorX(0.12000000476837158f, 0.0f), decodeAnchorY(1.95652174949646f, 3.0f), decodeX(0.120000005f), decodeY(1.9565217f)); + path.lineTo(decodeX(0.120000005f), decodeY(1.0465839f)); + path.curveTo(decodeAnchorX(0.12000000476837158f, 0.0f), decodeAnchorY(1.046583890914917f, -3.000000000000001f), decodeAnchorX(1.0106383562088013f, -3.0f), decodeAnchorY(0.12000000476837158f, 0.0f), decodeX(1.0106384f), decodeY(0.120000005f)); + path.lineTo(decodeX(1.4148936f), decodeY(0.120000005f)); + path.lineTo(decodeX(1.4148936f), decodeY(0.4857143f)); + path.lineTo(decodeX(1.0106384f), decodeY(0.4857143f)); + path.curveTo(decodeAnchorX(1.0106383562088013f, -1.928571428571427f), decodeAnchorY(0.48571428656578064f, 0.0f), decodeAnchorX(0.4714285731315613f, -0.04427948362011014f), decodeAnchorY(1.040372610092163f, -2.429218094741624f), decodeX(0.47142857f), decodeY(1.0403726f)); + path.lineTo(decodeX(0.47142857f), decodeY(1.9565217f)); + path.curveTo(decodeAnchorX(0.4714285731315613f, 0.0f), decodeAnchorY(1.95652174949646f, 2.2142857142856975f), decodeAnchorX(1.0106383562088013f, -1.7857142857142847f), decodeAnchorY(2.5142855644226074f, 0.0f), decodeX(1.0106384f), decodeY(2.5142856f)); + path.lineTo(decodeX(1.9893618f), decodeY(2.5142856f)); + path.curveTo(decodeAnchorX(1.9893617630004883f, 2.071428571428598f), decodeAnchorY(2.5142855644226074f, 0.0f), decodeAnchorX(2.5f, 0.0f), decodeAnchorY(1.95652174949646f, 2.2142857142857046f), decodeX(2.5f), decodeY(1.9565217f)); + path.lineTo(decodeX(2.5142853f), decodeY(1.0434783f)); + path.curveTo(decodeAnchorX(2.5142853260040283f, 0.0f), decodeAnchorY(1.04347825050354f, -2.1428571428571406f), decodeAnchorX(1.990121603012085f, 2.142857142857167f), decodeAnchorY(0.4714285731315613f, 0.0f), decodeX(1.9901216f), decodeY(0.47142857f)); + path.lineTo(decodeX(1.4148936f), decodeY(0.4857143f)); + path.lineTo(decodeX(1.4133738f), decodeY(0.120000005f)); + path.closePath(); + return path; + } + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(0.4f), //x + decodeY(0.6f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.8f) - decodeY(0.6f), //height + 12.0f, 12.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.4f), //height + 12.0f, 12.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.4f) - decodeY(0.6f), //height + 9.0f, 9.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect4() { + roundRect.setRoundRect(decodeX(0.120000005f), //x + decodeY(0.120000005f), //y + decodeX(2.8800004f) - decodeX(0.120000005f), //width + decodeY(2.8800004f) - decodeY(0.120000005f), //height + 13.0f, 13.0f); //rounding + return roundRect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.03f,0.06f,0.33f,0.6f,0.65f,0.7f,0.825f,0.95f,0.975f,1.0f }, + new Color[] { color5, + decodeColor(color5,color6,0.5f), + color6, + decodeColor(color6,color7,0.5f), + color7, + decodeColor(color7,color7,0.5f), + color7, + decodeColor(color7,color8,0.5f), + color8, + decodeColor(color8,color8,0.5f), + color8}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.03f,0.06f,0.33f,0.6f,0.65f,0.7f,0.825f,0.95f,0.975f,1.0f }, + new Color[] { color9, + decodeColor(color9,color10,0.5f), + color10, + decodeColor(color10,color11,0.5f), + color11, + decodeColor(color11,color11,0.5f), + color11, + decodeColor(color11,color12,0.5f), + color12, + decodeColor(color12,color13,0.5f), + color13}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ToolBarEastState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ToolBarEastState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,43 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class ToolBarEastState extends State { + ToolBarEastState() { + super("East"); + } + + @Override protected boolean isInState(JComponent c) { + + JToolBar toolbar = (JToolBar)c; + return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.EAST; + + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ToolBarNorthState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ToolBarNorthState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,43 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class ToolBarNorthState extends State { + ToolBarNorthState() { + super("North"); + } + + @Override protected boolean isInState(JComponent c) { + + JToolBar toolbar = (JToolBar)c; + return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.NORTH; + + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ToolBarPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ToolBarPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,211 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ToolBarPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ToolBarPainter to determine which region/state is being painted + //by that instance. + static final int BORDER_NORTH = 1; + static final int BORDER_SOUTH = 2; + static final int BORDER_EAST = 3; + static final int BORDER_WEST = 4; + static final int HANDLEICON_ENABLED = 5; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ToolBarPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBorder", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.07399663f, 0.11372548f, 0); + private Color color4 = decodeColor("nimbusBorder", 0.0f, -0.029675633f, 0.109803915f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", -0.008547008f, -0.03494492f, -0.07058823f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ToolBarPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BORDER_NORTH: paintBorderNorth(g); break; + case BORDER_SOUTH: paintBorderSouth(g); break; + case BORDER_EAST: paintBorderEast(g); break; + case BORDER_WEST: paintBorderWest(g); break; + case HANDLEICON_ENABLED: painthandleIconEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBorderNorth(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBorderSouth(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBorderEast(Graphics2D g) { + rect = decodeRect2(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBorderWest(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void painthandleIconEnabled(Graphics2D g) { + rect = decodeRect3(); + g.setPaint(decodeGradient1(rect)); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color4); + g.fill(rect); + path = decodePath1(); + g.setPaint(color5); + g.fill(path); + path = decodePath2(); + g.setPaint(color5); + g.fill(path); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(2.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(3.0f) - decodeY(2.0f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(1.0f), //x + decodeY(0.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(1.0f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(2.8f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(2.8f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(2.8f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(2.6f)); + path.lineTo(decodeX(0.4f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.0f * w) + x, (0.5f * h) + y, (1.0f * w) + x, (0.5f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ToolBarSouthState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ToolBarSouthState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,43 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class ToolBarSouthState extends State { + ToolBarSouthState() { + super("South"); + } + + @Override protected boolean isInState(JComponent c) { + + JToolBar toolbar = (JToolBar)c; + return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.SOUTH; + + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ToolBarToggleButtonPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ToolBarToggleButtonPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,535 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ToolBarToggleButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ToolBarToggleButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BACKGROUND_FOCUSED = 2; + static final int BACKGROUND_MOUSEOVER = 3; + static final int BACKGROUND_MOUSEOVER_FOCUSED = 4; + static final int BACKGROUND_PRESSED = 5; + static final int BACKGROUND_PRESSED_FOCUSED = 6; + static final int BACKGROUND_SELECTED = 7; + static final int BACKGROUND_SELECTED_FOCUSED = 8; + static final int BACKGROUND_PRESSED_SELECTED = 9; + static final int BACKGROUND_PRESSED_SELECTED_FOCUSED = 10; + static final int BACKGROUND_MOUSEOVER_SELECTED = 11; + static final int BACKGROUND_MOUSEOVER_SELECTED_FOCUSED = 12; + static final int BACKGROUND_DISABLED_SELECTED = 13; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ToolBarToggleButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.06885965f, -0.36862746f, -153); + private Color color3 = decodeColor("nimbusBlueGrey", 0.0f, -0.020974077f, -0.21960783f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0f, 0.11169591f, -0.53333336f, 0); + private Color color5 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10658931f, 0.25098038f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, -0.098526314f, 0.2352941f, 0); + private Color color7 = decodeColor("nimbusBlueGrey", 0.0f, -0.07333623f, 0.20392156f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color9 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -86); + private Color color10 = decodeColor("nimbusBlueGrey", -0.01111114f, -0.060526315f, -0.3529412f, 0); + private Color color11 = decodeColor("nimbusBlueGrey", 0.0f, -0.064372465f, -0.2352941f, 0); + private Color color12 = decodeColor("nimbusBlueGrey", -0.006944418f, -0.0595709f, -0.12941176f, 0); + private Color color13 = decodeColor("nimbusBlueGrey", 0.0f, -0.061075766f, -0.031372547f, 0); + private Color color14 = decodeColor("nimbusBlueGrey", 0.0f, -0.06080256f, -0.035294116f, 0); + private Color color15 = decodeColor("nimbusBlueGrey", 0.0f, -0.06472479f, -0.23137254f, 0); + private Color color16 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.06959064f, -0.0745098f, 0); + private Color color17 = decodeColor("nimbusBlueGrey", 0.0138888955f, -0.06401469f, -0.07058823f, 0); + private Color color18 = decodeColor("nimbusBlueGrey", 0.0f, -0.06530018f, 0.035294116f, 0); + private Color color19 = decodeColor("nimbusBlueGrey", 0.0f, -0.06507177f, 0.031372547f, 0); + private Color color20 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.05338346f, -0.47058824f, 0); + private Color color21 = decodeColor("nimbusBlueGrey", 0.0f, -0.049301825f, -0.36078432f, 0); + private Color color22 = decodeColor("nimbusBlueGrey", -0.018518567f, -0.03909774f, -0.2509804f, 0); + private Color color23 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.040013492f, -0.13333333f, 0); + private Color color24 = decodeColor("nimbusBlueGrey", 0.01010108f, -0.039558575f, -0.1372549f, 0); + private Color color25 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -220); + private Color color26 = decodeColor("nimbusBlueGrey", 0.0f, -0.066408664f, 0.054901958f, 0); + private Color color27 = decodeColor("nimbusBlueGrey", 0.0f, -0.06807348f, 0.086274505f, 0); + private Color color28 = decodeColor("nimbusBlueGrey", 0.0f, -0.06924191f, 0.109803915f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ToolBarToggleButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_MOUSEOVER_FOCUSED: paintBackgroundMouseOverAndFocused(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_PRESSED_FOCUSED: paintBackgroundPressedAndFocused(g); break; + case BACKGROUND_SELECTED: paintBackgroundSelected(g); break; + case BACKGROUND_SELECTED_FOCUSED: paintBackgroundSelectedAndFocused(g); break; + case BACKGROUND_PRESSED_SELECTED: paintBackgroundPressedAndSelected(g); break; + case BACKGROUND_PRESSED_SELECTED_FOCUSED: paintBackgroundPressedAndSelectedAndFocused(g); break; + case BACKGROUND_MOUSEOVER_SELECTED: paintBackgroundMouseOverAndSelected(g); break; + case BACKGROUND_MOUSEOVER_SELECTED_FOCUSED: paintBackgroundMouseOverAndSelectedAndFocused(g); break; + case BACKGROUND_DISABLED_SELECTED: paintBackgroundDisabledAndSelected(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundFocused(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color2); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressed(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect6(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect7(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect8(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect6(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect7(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundSelected(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect6(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect7(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundSelectedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect8(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect6(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect7(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndSelected(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect6(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect7(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndSelectedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect8(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect6(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect7(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndSelected(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect6(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect7(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndSelectedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect8(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect6(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect7(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundDisabledAndSelected(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color25); + g.fill(roundRect); + roundRect = decodeRoundRect6(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect7(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.4133738f), decodeY(0.120000005f)); + path.lineTo(decodeX(1.9893618f), decodeY(0.120000005f)); + path.curveTo(decodeAnchorX(1.9893617630004883f, 3.0f), decodeAnchorY(0.12000000476837158f, 0.0f), decodeAnchorX(2.8857147693634033f, 0.0f), decodeAnchorY(1.0416666269302368f, -3.0f), decodeX(2.8857148f), decodeY(1.0416666f)); + path.lineTo(decodeX(2.9f), decodeY(1.9166667f)); + path.curveTo(decodeAnchorX(2.9000000953674316f, 0.0f), decodeAnchorY(1.9166667461395264f, 3.0f), decodeAnchorX(1.9893617630004883f, 3.0f), decodeAnchorY(2.671428680419922f, 0.0f), decodeX(1.9893618f), decodeY(2.6714287f)); + path.lineTo(decodeX(1.0106384f), decodeY(2.6714287f)); + path.curveTo(decodeAnchorX(1.0106383562088013f, -3.0f), decodeAnchorY(2.671428680419922f, 0.0f), decodeAnchorX(0.12000000476837158f, 0.0f), decodeAnchorY(1.9166667461395264f, 3.0f), decodeX(0.120000005f), decodeY(1.9166667f)); + path.lineTo(decodeX(0.120000005f), decodeY(1.0446429f)); + path.curveTo(decodeAnchorX(0.12000000476837158f, 0.0f), decodeAnchorY(1.0446429252624512f, -3.000000000000001f), decodeAnchorX(1.0106383562088013f, -3.0f), decodeAnchorY(0.12000000476837158f, 0.0f), decodeX(1.0106384f), decodeY(0.120000005f)); + path.lineTo(decodeX(1.4148936f), decodeY(0.120000005f)); + path.lineTo(decodeX(1.4148936f), decodeY(0.4857143f)); + path.lineTo(decodeX(1.0106384f), decodeY(0.4857143f)); + path.curveTo(decodeAnchorX(1.0106383562088013f, -1.928571428571427f), decodeAnchorY(0.48571428656578064f, 0.0f), decodeAnchorX(0.4714285731315613f, -0.04427948362011014f), decodeAnchorY(1.038690447807312f, -2.429218094741624f), decodeX(0.47142857f), decodeY(1.0386904f)); + path.lineTo(decodeX(0.47142857f), decodeY(1.9166667f)); + path.curveTo(decodeAnchorX(0.4714285731315613f, 0.0f), decodeAnchorY(1.9166667461395264f, 2.2142857142856975f), decodeAnchorX(1.0106383562088013f, -1.7857142857142847f), decodeAnchorY(2.3142857551574707f, 0.0f), decodeX(1.0106384f), decodeY(2.3142858f)); + path.lineTo(decodeX(1.9893618f), decodeY(2.3142858f)); + path.curveTo(decodeAnchorX(1.9893617630004883f, 2.071428571428598f), decodeAnchorY(2.3142857551574707f, 0.0f), decodeAnchorX(2.5f, 0.0f), decodeAnchorY(1.9166667461395264f, 2.2142857142857046f), decodeX(2.5f), decodeY(1.9166667f)); + path.lineTo(decodeX(2.5142853f), decodeY(1.0416666f)); + path.curveTo(decodeAnchorX(2.5142853260040283f, 0.0f), decodeAnchorY(1.0416666269302368f, -2.1428571428571406f), decodeAnchorX(1.990121603012085f, 2.142857142857167f), decodeAnchorY(0.4714285731315613f, 0.0f), decodeX(1.9901216f), decodeY(0.47142857f)); + path.lineTo(decodeX(1.4148936f), decodeY(0.4857143f)); + path.lineTo(decodeX(1.4133738f), decodeY(0.120000005f)); + path.closePath(); + return path; + } + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(0.4f), //x + decodeY(0.6f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.6f), //height + 12.0f, 12.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.4f) - decodeY(0.4f), //height + 12.0f, 12.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.2f) - decodeY(0.6f), //height + 9.0f, 9.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect4() { + roundRect.setRoundRect(decodeX(0.120000005f), //x + decodeY(0.120000005f), //y + decodeX(2.8800004f) - decodeX(0.120000005f), //width + decodeY(2.6800003f) - decodeY(0.120000005f), //height + 13.0f, 13.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect5() { + roundRect.setRoundRect(decodeX(0.4f), //x + decodeY(0.6f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.6f) - decodeY(0.6f), //height + 10.0f, 10.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect6() { + roundRect.setRoundRect(decodeX(0.4f), //x + decodeY(0.4f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(2.4f) - decodeY(0.4f), //height + 10.0f, 10.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect7() { + roundRect.setRoundRect(decodeX(0.6f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(0.6f), //width + decodeY(2.2f) - decodeY(0.6f), //height + 8.0f, 8.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect8() { + roundRect.setRoundRect(decodeX(0.120000005f), //x + decodeY(0.120000005f), //y + decodeX(2.8800004f) - decodeX(0.120000005f), //width + decodeY(2.6799998f) - decodeY(0.120000005f), //height + 13.0f, 13.0f); //rounding + return roundRect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.03f,0.06f,0.33f,0.6f,0.65f,0.7f,0.825f,0.95f,0.975f,1.0f }, + new Color[] { color5, + decodeColor(color5,color6,0.5f), + color6, + decodeColor(color6,color7,0.5f), + color7, + decodeColor(color7,color7,0.5f), + color7, + decodeColor(color7,color8,0.5f), + color8, + decodeColor(color8,color8,0.5f), + color8}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (1.0041667f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25126263f * w) + x, (1.0092592f * h) + y, + new float[] { 0.0f,0.06684492f,0.13368984f,0.56684494f,1.0f }, + new Color[] { color12, + decodeColor(color12,color13,0.5f), + color13, + decodeColor(color13,color14,0.5f), + color14}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (1.0041667f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color15, + decodeColor(color15,color16,0.5f), + color16}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25126263f * w) + x, (1.0092592f * h) + y, + new float[] { 0.0f,0.06684492f,0.13368984f,0.56684494f,1.0f }, + new Color[] { color17, + decodeColor(color17,color18,0.5f), + color18, + decodeColor(color18,color19,0.5f), + color19}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (1.0041667f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color20, + decodeColor(color20,color21,0.5f), + color21}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25126263f * w) + x, (1.0092592f * h) + y, + new float[] { 0.0f,0.06684492f,0.13368984f,0.56684494f,1.0f }, + new Color[] { color22, + decodeColor(color22,color23,0.5f), + color23, + decodeColor(color23,color24,0.5f), + color24}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25f * w) + x, (1.0041667f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color26, + decodeColor(color26,color27,0.5f), + color27}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.25f * w) + x, (0.0f * h) + y, (0.25126263f * w) + x, (1.0092592f * h) + y, + new float[] { 0.0f,0.06684492f,0.13368984f,0.56684494f,1.0f }, + new Color[] { color27, + decodeColor(color27,color28,0.5f), + color28, + decodeColor(color28,color28,0.5f), + color28}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ToolBarWestState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ToolBarWestState.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,43 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import javax.swing.*; + + +class ToolBarWestState extends State { + ToolBarWestState() { + super("West"); + } + + @Override protected boolean isInState(JComponent c) { + + JToolBar toolbar = (JToolBar)c; + return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.WEST; + + } +} + diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/ToolTipPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/ToolTipPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,150 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class ToolTipPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ToolTipPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ToolTipPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBorder", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("info", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ToolTipPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect2(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color1); + g.fill(rect); + rect = decodeRect5(); + g.setPaint(color2); + g.fill(rect); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(2.0f), //x + decodeY(1.0f), //y + decodeX(3.0f) - decodeX(2.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.0f), //x + decodeY(1.0f), //y + decodeX(1.0f) - decodeX(0.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(0.0f), //x + decodeY(2.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(2.0f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(1.0f) - decodeY(0.0f)); //height + return rect; + } + + private Rectangle2D decodeRect5() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TreeCellEditorPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TreeCellEditorPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,143 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TreeCellEditorPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TreeCellEditorPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_ENABLED_FOCUSED = 3; + static final int BACKGROUND_SELECTED = 4; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TreeCellEditorPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.0f, -0.017358616f, -0.11372548f, 0); + private Color color2 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TreeCellEditorPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_ENABLED_FOCUSED: paintBackgroundEnabledAndFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + + } + + private void paintBackgroundEnabledAndFocused(Graphics2D g) { + path = decodePath2(); + g.setPaint(color2); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.2f), decodeY(0.0f)); + path.lineTo(decodeX(0.2f), decodeY(0.2f)); + path.lineTo(decodeX(2.8f), decodeY(0.2f)); + path.lineTo(decodeX(2.8f), decodeY(2.8f)); + path.lineTo(decodeX(0.2f), decodeY(2.8f)); + path.lineTo(decodeX(0.2f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.0f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.24000001f)); + path.lineTo(decodeX(2.7600007f), decodeY(0.24000001f)); + path.lineTo(decodeX(2.7600007f), decodeY(2.7599998f)); + path.lineTo(decodeX(0.24000001f), decodeY(2.7599998f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TreePainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TreePainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,652 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TreePainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TreePainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_ENABLED_SELECTED = 3; + static final int LEAFICON_ENABLED = 4; + static final int CLOSEDICON_ENABLED = 5; + static final int OPENICON_ENABLED = 6; + static final int COLLAPSEDICON_ENABLED = 7; + static final int COLLAPSEDICON_ENABLED_SELECTED = 8; + static final int EXPANDEDICON_ENABLED = 9; + static final int EXPANDEDICON_ENABLED_SELECTED = 10; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TreePainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.007936537f, -0.065654516f, -0.13333333f, 0); + private Color color2 = new Color(97, 98, 102, 255); + private Color color3 = decodeColor("nimbusBlueGrey", -0.032679737f, -0.043332636f, 0.24705881f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color5 = decodeColor("nimbusBase", 0.0077680945f, -0.51781034f, 0.3490196f, 0); + private Color color6 = decodeColor("nimbusBase", 0.013940871f, -0.599277f, 0.41960782f, 0); + private Color color7 = decodeColor("nimbusBase", 0.004681647f, -0.4198052f, 0.14117646f, 0); + private Color color8 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, -127); + private Color color9 = decodeColor("nimbusBlueGrey", 0.0f, 0.0f, -0.21f, -99); + private Color color10 = decodeColor("nimbusBase", 2.9569864E-4f, -0.45978838f, 0.2980392f, 0); + private Color color11 = decodeColor("nimbusBase", 0.0015952587f, -0.34848025f, 0.18823528f, 0); + private Color color12 = decodeColor("nimbusBase", 0.0015952587f, -0.30844158f, 0.09803921f, 0); + private Color color13 = decodeColor("nimbusBase", 0.0015952587f, -0.27329817f, 0.035294116f, 0); + private Color color14 = decodeColor("nimbusBase", 0.004681647f, -0.6198413f, 0.43921566f, 0); + private Color color15 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, -125); + private Color color16 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, -50); + private Color color17 = decodeColor("nimbusBase", 0.0f, -0.6357143f, 0.45098037f, -100); + private Color color18 = decodeColor("nimbusBase", 0.0012094378f, -0.23571429f, -0.0784314f, 0); + private Color color19 = decodeColor("nimbusBase", 2.9569864E-4f, -0.115166366f, -0.2627451f, 0); + private Color color20 = decodeColor("nimbusBase", 0.0027436614f, -0.335015f, 0.011764705f, 0); + private Color color21 = decodeColor("nimbusBase", 0.0024294257f, -0.3857143f, 0.031372547f, 0); + private Color color22 = decodeColor("nimbusBase", 0.0018081069f, -0.3595238f, -0.13725492f, 0); + private Color color23 = new Color(255, 200, 0, 255); + private Color color24 = decodeColor("nimbusBase", 0.004681647f, -0.33496243f, -0.027450979f, 0); + private Color color25 = decodeColor("nimbusBase", 0.0019934773f, -0.361378f, -0.10588238f, 0); + private Color color26 = decodeColor("nimbusBlueGrey", -0.6111111f, -0.110526316f, -0.34509805f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TreePainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case LEAFICON_ENABLED: paintleafIconEnabled(g); break; + case CLOSEDICON_ENABLED: paintclosedIconEnabled(g); break; + case OPENICON_ENABLED: paintopenIconEnabled(g); break; + case COLLAPSEDICON_ENABLED: paintcollapsedIconEnabled(g); break; + case COLLAPSEDICON_ENABLED_SELECTED: paintcollapsedIconEnabledAndSelected(g); break; + case EXPANDEDICON_ENABLED: paintexpandedIconEnabled(g); break; + case EXPANDEDICON_ENABLED_SELECTED: paintexpandedIconEnabledAndSelected(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintleafIconEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + rect = decodeRect1(); + g.setPaint(color2); + g.fill(rect); + path = decodePath2(); + g.setPaint(decodeGradient1(path)); + g.fill(path); + path = decodePath3(); + g.setPaint(decodeGradient2(path)); + g.fill(path); + path = decodePath4(); + g.setPaint(color7); + g.fill(path); + path = decodePath5(); + g.setPaint(color8); + g.fill(path); + + } + + private void paintclosedIconEnabled(Graphics2D g) { + path = decodePath6(); + g.setPaint(color9); + g.fill(path); + path = decodePath7(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath8(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + rect = decodeRect2(); + g.setPaint(color15); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color17); + g.fill(rect); + path = decodePath9(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath10(); + g.setPaint(decodeGradient6(path)); + g.fill(path); + path = decodePath11(); + g.setPaint(color23); + g.fill(path); + + } + + private void paintopenIconEnabled(Graphics2D g) { + path = decodePath6(); + g.setPaint(color9); + g.fill(path); + path = decodePath12(); + g.setPaint(decodeGradient3(path)); + g.fill(path); + path = decodePath13(); + g.setPaint(decodeGradient4(path)); + g.fill(path); + rect = decodeRect2(); + g.setPaint(color15); + g.fill(rect); + rect = decodeRect3(); + g.setPaint(color16); + g.fill(rect); + rect = decodeRect4(); + g.setPaint(color17); + g.fill(rect); + path = decodePath14(); + g.setPaint(decodeGradient5(path)); + g.fill(path); + path = decodePath15(); + g.setPaint(decodeGradient7(path)); + g.fill(path); + path = decodePath11(); + g.setPaint(color23); + g.fill(path); + + } + + private void paintcollapsedIconEnabled(Graphics2D g) { + path = decodePath16(); + g.setPaint(color26); + g.fill(path); + + } + + private void paintcollapsedIconEnabledAndSelected(Graphics2D g) { + path = decodePath16(); + g.setPaint(color4); + g.fill(path); + + } + + private void paintexpandedIconEnabled(Graphics2D g) { + path = decodePath17(); + g.setPaint(color26); + g.fill(path); + + } + + private void paintexpandedIconEnabledAndSelected(Graphics2D g) { + path = decodePath17(); + g.setPaint(color4); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.2f), decodeY(0.0f)); + path.lineTo(decodeX(0.2f), decodeY(3.0f)); + path.lineTo(decodeX(0.4f), decodeY(3.0f)); + path.lineTo(decodeX(0.4f), decodeY(0.2f)); + path.lineTo(decodeX(1.9197531f), decodeY(0.2f)); + path.lineTo(decodeX(2.6f), decodeY(0.9f)); + path.lineTo(decodeX(2.6f), decodeY(3.0f)); + path.lineTo(decodeX(2.8f), decodeY(3.0f)); + path.lineTo(decodeX(2.8f), decodeY(0.88888896f)); + path.lineTo(decodeX(1.9537036f), decodeY(0.0f)); + path.lineTo(decodeX(0.2f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.4f), //x + decodeY(2.8f), //y + decodeX(2.6f) - decodeX(0.4f), //width + decodeY(3.0f) - decodeY(2.8f)); //height + return rect; + } + + private Path2D decodePath2() { + path.reset(); + path.moveTo(decodeX(1.8333333f), decodeY(0.2f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.0f)); + path.lineTo(decodeX(2.6f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(0.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath3() { + path.reset(); + path.moveTo(decodeX(1.8333333f), decodeY(0.2f)); + path.lineTo(decodeX(0.4f), decodeY(0.2f)); + path.lineTo(decodeX(0.4f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(0.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath4() { + path.reset(); + path.moveTo(decodeX(1.8333333f), decodeY(0.2f)); + path.lineTo(decodeX(1.6234567f), decodeY(0.2f)); + path.lineTo(decodeX(1.6296296f), decodeY(1.2037038f)); + path.lineTo(decodeX(2.6f), decodeY(1.2006173f)); + path.lineTo(decodeX(2.6f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(1.0f)); + path.lineTo(decodeX(1.8333333f), decodeY(0.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath5() { + path.reset(); + path.moveTo(decodeX(1.8333333f), decodeY(0.4f)); + path.lineTo(decodeX(1.8333333f), decodeY(0.2f)); + path.lineTo(decodeX(0.4f), decodeY(0.2f)); + path.lineTo(decodeX(0.4f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(2.8f)); + path.lineTo(decodeX(2.6f), decodeY(1.0f)); + path.lineTo(decodeX(2.4f), decodeY(1.0f)); + path.lineTo(decodeX(2.4f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(0.4f)); + path.lineTo(decodeX(1.8333333f), decodeY(0.4f)); + path.closePath(); + return path; + } + + private Path2D decodePath6() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(2.4f)); + path.lineTo(decodeX(0.0f), decodeY(2.6f)); + path.lineTo(decodeX(0.2f), decodeY(3.0f)); + path.lineTo(decodeX(2.6f), decodeY(3.0f)); + path.lineTo(decodeX(2.8f), decodeY(2.6f)); + path.lineTo(decodeX(2.8f), decodeY(2.4f)); + path.lineTo(decodeX(0.0f), decodeY(2.4f)); + path.closePath(); + return path; + } + + private Path2D decodePath7() { + path.reset(); + path.moveTo(decodeX(0.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.6037037f), decodeY(1.8425925f)); + path.lineTo(decodeX(0.8f), decodeY(1.0f)); + path.lineTo(decodeX(2.8f), decodeY(1.0f)); + path.lineTo(decodeX(2.8f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(2.6f)); + path.closePath(); + return path; + } + + private Path2D decodePath8() { + path.reset(); + path.moveTo(decodeX(0.2f), decodeY(2.6f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(0.40833336f), decodeY(1.8645833f)); + path.lineTo(decodeX(0.79583335f), decodeY(0.8f)); + path.lineTo(decodeX(2.4f), decodeY(0.8f)); + path.lineTo(decodeX(2.4f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(0.6f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.4f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.2f)); + path.lineTo(decodeX(0.6f), decodeY(0.2f)); + path.lineTo(decodeX(0.6f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(2.6f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect2() { + rect.setRect(decodeX(0.2f), //x + decodeY(0.6f), //y + decodeX(0.4f) - decodeX(0.2f), //width + decodeY(0.8f) - decodeY(0.6f)); //height + return rect; + } + + private Rectangle2D decodeRect3() { + rect.setRect(decodeX(0.6f), //x + decodeY(0.2f), //y + decodeX(1.3333334f) - decodeX(0.6f), //width + decodeY(0.4f) - decodeY(0.2f)); //height + return rect; + } + + private Rectangle2D decodeRect4() { + rect.setRect(decodeX(1.5f), //x + decodeY(0.6f), //y + decodeX(2.4f) - decodeX(1.5f), //width + decodeY(0.8f) - decodeY(0.6f)); //height + return rect; + } + + private Path2D decodePath9() { + path.reset(); + path.moveTo(decodeX(3.0f), decodeY(0.8f)); + path.lineTo(decodeX(3.0f), decodeY(1.0f)); + path.lineTo(decodeX(2.4f), decodeY(1.0f)); + path.lineTo(decodeX(2.4f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(0.6f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.4f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.2f)); + path.lineTo(decodeX(0.5888889f), decodeY(0.20370372f)); + path.lineTo(decodeX(0.5962963f), decodeY(0.34814817f)); + path.lineTo(decodeX(0.34814817f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.774074f), decodeY(1.1604939f)); + path.lineTo(decodeX(2.8f), decodeY(1.0f)); + path.lineTo(decodeX(3.0f), decodeY(1.0f)); + path.lineTo(decodeX(2.8925927f), decodeY(1.1882716f)); + path.lineTo(decodeX(2.8f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.8f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.8f)); + path.lineTo(decodeX(0.2f), decodeY(2.8f)); + path.lineTo(decodeX(0.0f), decodeY(2.6f)); + path.lineTo(decodeX(0.0f), decodeY(0.65185183f)); + path.lineTo(decodeX(0.63703704f), decodeY(0.0f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.0f)); + path.lineTo(decodeX(1.5925925f), decodeY(0.4f)); + path.lineTo(decodeX(2.4f), decodeY(0.4f)); + path.lineTo(decodeX(2.6f), decodeY(0.6f)); + path.lineTo(decodeX(2.6f), decodeY(0.8f)); + path.lineTo(decodeX(3.0f), decodeY(0.8f)); + path.closePath(); + return path; + } + + private Path2D decodePath10() { + path.reset(); + path.moveTo(decodeX(2.4f), decodeY(1.0f)); + path.lineTo(decodeX(2.4f), decodeY(0.8f)); + path.lineTo(decodeX(0.74814814f), decodeY(0.8f)); + path.lineTo(decodeX(0.4037037f), decodeY(1.8425925f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.5925926f), decodeY(2.225926f)); + path.lineTo(decodeX(0.916f), decodeY(0.996f)); + path.lineTo(decodeX(2.4f), decodeY(1.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath11() { + path.reset(); + path.moveTo(decodeX(2.2f), decodeY(2.2f)); + path.lineTo(decodeX(2.2f), decodeY(2.2f)); + path.closePath(); + return path; + } + + private Path2D decodePath12() { + path.reset(); + path.moveTo(decodeX(0.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(2.2f)); + path.lineTo(decodeX(0.8f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.8f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.8f), decodeY(1.6666667f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(2.6f)); + path.closePath(); + return path; + } + + private Path2D decodePath13() { + path.reset(); + path.moveTo(decodeX(0.2f), decodeY(2.6f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(0.4f), decodeY(2.0f)); + path.lineTo(decodeX(0.8f), decodeY(1.1666666f)); + path.lineTo(decodeX(2.4f), decodeY(1.1666666f)); + path.lineTo(decodeX(2.4f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(0.6f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.4f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.2f)); + path.lineTo(decodeX(0.6f), decodeY(0.2f)); + path.lineTo(decodeX(0.6f), decodeY(0.4f)); + path.lineTo(decodeX(0.4f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(2.6f)); + path.closePath(); + return path; + } + + private Path2D decodePath14() { + path.reset(); + path.moveTo(decodeX(3.0f), decodeY(1.1666666f)); + path.lineTo(decodeX(3.0f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.4f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.4f), decodeY(0.6f)); + path.lineTo(decodeX(1.5f), decodeY(0.6f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.4f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.2f)); + path.lineTo(decodeX(0.5888889f), decodeY(0.20370372f)); + path.lineTo(decodeX(0.5962963f), decodeY(0.34814817f)); + path.lineTo(decodeX(0.34814817f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(0.6f)); + path.lineTo(decodeX(0.2f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.0f)); + path.lineTo(decodeX(2.6f), decodeY(1.8333333f)); + path.lineTo(decodeX(2.916f), decodeY(1.3533334f)); + path.lineTo(decodeX(2.98f), decodeY(1.3766667f)); + path.lineTo(decodeX(2.8f), decodeY(1.8333333f)); + path.lineTo(decodeX(2.8f), decodeY(2.0f)); + path.lineTo(decodeX(2.8f), decodeY(2.6f)); + path.lineTo(decodeX(2.6f), decodeY(2.8f)); + path.lineTo(decodeX(0.2f), decodeY(2.8f)); + path.lineTo(decodeX(0.0f), decodeY(2.6f)); + path.lineTo(decodeX(0.0f), decodeY(0.65185183f)); + path.lineTo(decodeX(0.63703704f), decodeY(0.0f)); + path.lineTo(decodeX(1.3333334f), decodeY(0.0f)); + path.lineTo(decodeX(1.5925925f), decodeY(0.4f)); + path.lineTo(decodeX(2.4f), decodeY(0.4f)); + path.lineTo(decodeX(2.6f), decodeY(0.6f)); + path.lineTo(decodeX(2.6f), decodeY(1.1666666f)); + path.lineTo(decodeX(3.0f), decodeY(1.1666666f)); + path.closePath(); + return path; + } + + private Path2D decodePath15() { + path.reset(); + path.moveTo(decodeX(2.4f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.4f), decodeY(1.1666666f)); + path.lineTo(decodeX(0.74f), decodeY(1.1666666f)); + path.lineTo(decodeX(0.4f), decodeY(2.0f)); + path.lineTo(decodeX(0.4f), decodeY(2.6f)); + path.lineTo(decodeX(0.6f), decodeY(2.6f)); + path.lineTo(decodeX(0.5925926f), decodeY(2.225926f)); + path.lineTo(decodeX(0.8f), decodeY(1.3333334f)); + path.lineTo(decodeX(2.4f), decodeY(1.3333334f)); + path.closePath(); + return path; + } + + private Path2D decodePath16() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(1.2397541f), decodeY(0.70163935f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Path2D decodePath17() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(1.25f), decodeY(0.0f)); + path.lineTo(decodeX(0.70819676f), decodeY(2.9901638f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.046296295f * w) + x, (0.9675926f * h) + y, (0.4861111f * w) + x, (0.5324074f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color3, + decodeColor(color3,color4,0.5f), + color4}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color5, + decodeColor(color5,color6,0.5f), + color6}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.04191617f,0.10329342f,0.16467066f,0.24550897f,0.3263473f,0.6631737f,1.0f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11, + decodeColor(color11,color12,0.5f), + color12, + decodeColor(color12,color13,0.5f), + color13}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color5, + decodeColor(color5,color14,0.5f), + color14}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color18, + decodeColor(color18,color19,0.5f), + color19}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.12724552f,0.25449103f,0.62724555f,1.0f }, + new Color[] { color20, + decodeColor(color20,color21,0.5f), + color21, + decodeColor(color21,color22,0.5f), + color22}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.5f,1.0f }, + new Color[] { color24, + decodeColor(color24,color25,0.5f), + color25}); + } + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd generated/javax/swing/plaf/nimbus/TreeTreeCellPainter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/javax/swing/plaf/nimbus/TreeTreeCellPainter.java Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,145 @@ +/* + * Copyright 2005-2006 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 javax.swing.plaf.nimbus; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; +import javax.swing.Painter; + + +public final class TreeTreeCellPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of TreeTreeCellPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int BACKGROUND_ENABLED_FOCUSED = 2; + static final int BACKGROUND_ENABLED_SELECTED = 3; + static final int BACKGROUND_SELECTED_FOCUSED = 4; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of TreeTreeCellPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusSelectionBackground", 0.0f, 0.0f, 0.0f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public TreeTreeCellPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_ENABLED_FOCUSED: paintBackgroundEnabledAndFocused(g); break; + case BACKGROUND_ENABLED_SELECTED: paintBackgroundEnabledAndSelected(g); break; + case BACKGROUND_SELECTED_FOCUSED: paintBackgroundSelectedAndFocused(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundEnabledAndFocused(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + + } + + private void paintBackgroundEnabledAndSelected(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color2); + g.fill(rect); + + } + + private void paintBackgroundSelectedAndFocused(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color2); + g.fill(rect); + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(3.0f)); + path.lineTo(decodeX(3.0f), decodeY(0.0f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.0f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.24000001f)); + path.lineTo(decodeX(2.7600007f), decodeY(0.24000001f)); + path.lineTo(decodeX(2.7600007f), decodeY(2.7599998f)); + path.lineTo(decodeX(0.24000001f), decodeY(2.7599998f)); + path.lineTo(decodeX(0.24000001f), decodeY(0.0f)); + path.lineTo(decodeX(0.0f), decodeY(0.0f)); + path.closePath(); + return path; + } + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(0.0f), //x + decodeY(0.0f), //y + decodeX(3.0f) - decodeX(0.0f), //width + decodeY(3.0f) - decodeY(0.0f)); //height + return rect; + } + + + + +} diff -r 2afddd1c229e -r 5b10caa4c7fd patches/icedtea-stop-nimbus-generation.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-stop-nimbus-generation.patch Thu May 21 13:45:49 2009 +0100 @@ -0,0 +1,14 @@ +diff -Nru openjdk.orig/jdk/make/tools/Makefile openjdk/jdk/make/tools/Makefile +--- openjdk.orig/jdk/make/tools/Makefile 2009-05-18 22:14:05.000000000 +0100 ++++ openjdk/jdk/make/tools/Makefile 2009-05-21 12:35:38.000000000 +0100 +@@ -53,10 +53,6 @@ + spp \ + CharsetMapping + +-ifndef DISABLE_NIMBUS +- SUBDIRS += swing-nimbus +-endif +- + all build clean clobber:: + $(SUBDIRS-loop) +