/* * * Copyright 2014 http://Bither.net * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * / */ package net.bither.viewsystem.themes.painters; import net.bither.viewsystem.themes.Themes; import javax.swing.*; import javax.swing.plaf.nimbus.AbstractRegionPainter; import java.awt.*; import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; /** * <p>Region painter to provide the following to Nimbus LAF:</p> * <ul> * <li>Paint a button with the given foreground color in the Nimbus style</li> * </ul> * * @since 0.0.1 */ public class NamedButtonRegionPainter extends AbstractNamedRegionPainter { /** * Painter states */ public static final int BACKGROUND_DEFAULT = 1; public static final int BACKGROUND_DEFAULT_FOCUSED = 2; public static final int BACKGROUND_MOUSEOVER_DEFAULT = 3; public static final int BACKGROUND_MOUSEOVER_DEFAULT_FOCUSED = 4; public static final int BACKGROUND_PRESSED_DEFAULT = 5; public static final int BACKGROUND_PRESSED_DEFAULT_FOCUSED = 6; public static final int BACKGROUND_DISABLED = 7; public static final int BACKGROUND_ENABLED = 8; public static final int BACKGROUND_FOCUSED = 9; public static final int BACKGROUND_MOUSEOVER = 10; public static final int BACKGROUND_MOUSEOVER_FOCUSED = 11; public static final int BACKGROUND_PRESSED = 12; public static final int BACKGROUND_PRESSED_FOCUSED = 13; // All Colors used for painting public final Color color1 = adjustForegroundColor(-0.027777791f, -0.06885965f, -0.36862746f, -190); public final Color color2 = adjustBackgroundColor(5.1498413E-4f, -0.34585923f, -0.007843137f, 0); public final Color color3 = adjustBackgroundColor(5.1498413E-4f, -0.095173776f, -0.25882354f, 0); public final Color color4 = adjustBackgroundColor(0.004681647f, -0.6197143f, 0.43137252f, 0); public final Color color5 = adjustBackgroundColor(0.004681647f, -0.5766426f, 0.38039213f, 0); public final Color color6 = adjustBackgroundColor(5.1498413E-4f, -0.43866998f, 0.24705881f, 0); public final Color color7 = adjustBackgroundColor(5.1498413E-4f, -0.46404046f, 0.36470586f, 0); public final Color color8 = adjustBackgroundColor(5.1498413E-4f, -0.47761154f, 0.44313723f, 0); public final Color color9 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); public final Color color10 = adjustBackgroundColor(0.0013483167f, -0.1769987f, -0.12156865f, 0); public final Color color11 = adjustBackgroundColor(0.059279382f, 0.3642857f, -0.43529415f, 0); public final Color color12 = adjustBackgroundColor(0.004681647f, -0.6198413f, 0.43921566f, 0); public final Color color13 = adjustBackgroundColor(-0.0017285943f, -0.5822163f, 0.40392154f, 0); public final Color color14 = adjustBackgroundColor(5.1498413E-4f, -0.4555341f, 0.3215686f, 0); public final Color color15 = adjustBackgroundColor(5.1498413E-4f, -0.47698414f, 0.43921566f, 0); public final Color color16 = adjustBackgroundColor(-0.06415892f, -0.5455182f, 0.45098037f, 0); public final Color color17 = adjustForegroundColor(0.0f, -0.110526316f, 0.25490195f, -95); public final Color color18 = adjustBackgroundColor(-0.57865167f, -0.6357143f, -0.54901963f, 0); public final Color color19 = adjustBackgroundColor(-3.528595E-5f, 0.018606722f, -0.23137257f, 0); public final Color color20 = adjustBackgroundColor(-4.2033195E-4f, -0.38050595f, 0.20392156f, 0); public final Color color21 = adjustBackgroundColor(0.001903832f, -0.29863563f, 0.1490196f, 0); public final Color color22 = adjustBackgroundColor(0.0f, 0.0f, 0.0f, 0); public final Color color23 = adjustBackgroundColor(0.0018727183f, -0.14126986f, 0.15686274f, 0); public final Color color24 = adjustBackgroundColor(8.9377165E-4f, -0.20852983f, 0.2588235f, 0); public final Color color25 = adjustForegroundColor(-0.027777791f, -0.06885965f, -0.36862746f, -232); public final Color color26 = adjustForegroundColor(0.0f, -0.06766917f, 0.07843137f, 0); public final Color color27 = adjustForegroundColor(0.0f, -0.06484103f, 0.027450979f, 0); public final Color color28 = adjustForegroundColor(0.0f, -0.08477524f, 0.16862744f, 0); public final Color color29 = adjustForegroundColor(-0.015872955f, -0.080091536f, 0.15686274f, 0); public final Color color30 = adjustForegroundColor(0.0f, -0.07016757f, 0.12941176f, 0); public final Color color31 = adjustForegroundColor(0.0f, -0.07052632f, 0.1372549f, 0); public final Color color32 = adjustForegroundColor(0.0f, -0.070878744f, 0.14509803f, 0); public final Color color33 = adjustForegroundColor(-0.055555522f, -0.05356429f, -0.12549019f, 0); public final Color color34 = adjustForegroundColor(0.0f, -0.0147816315f, -0.3764706f, 0); public final Color color35 = adjustForegroundColor(0.055555582f, -0.10655806f, 0.24313724f, 0); public final Color color36 = adjustForegroundColor(0.0f, -0.09823123f, 0.2117647f, 0); public final Color color37 = adjustForegroundColor(0.0f, -0.0749532f, 0.24705881f, 0); public final Color color38 = adjustForegroundColor(0.0f, -0.110526316f, 0.25490195f, 0); public final Color color39 = adjustForegroundColor(0.0f, -0.020974077f, -0.21960783f, 0); public final Color color40 = adjustForegroundColor(0.0f, 0.11169591f, -0.53333336f, 0); public final Color color41 = adjustForegroundColor(0.055555582f, -0.10658931f, 0.25098038f, 0); public final Color color42 = adjustForegroundColor(0.0f, -0.098526314f, 0.2352941f, 0); public final Color color43 = adjustForegroundColor(0.0f, -0.07333623f, 0.20392156f, 0); public final Color color44 = new Color(245, 250, 255, 160); public final Color color45 = adjustForegroundColor(0.055555582f, 0.8894737f, -0.7176471f, 0); public final Color color46 = adjustForegroundColor(0.0f, 5.847961E-4f, -0.32156864f, 0); public final Color color47 = adjustForegroundColor(-0.00505054f, -0.05960039f, 0.10196078f, 0); public final Color color48 = adjustForegroundColor(-0.008547008f, -0.04772438f, 0.06666666f, 0); public final Color color49 = adjustForegroundColor(-0.0027777553f, -0.0018306673f, -0.02352941f, 0); public final Color color50 = adjustForegroundColor(-0.0027777553f, -0.0212406f, 0.13333333f, 0); public final Color color51 = adjustForegroundColor(0.0055555105f, -0.030845039f, 0.23921567f, 0); // Array of current component colors, updated in each paint call private Object[] componentColors; /** * @param color The color to use as the basis for the painter * @param state The state of the button to which this painter will apply */ public NamedButtonRegionPainter(Color color, int state) { super(color, Themes.currentTheme.detailPanelBackground(), state); Insets insets = new Insets(7, 7, 7, 7); this.ctx = new AbstractRegionPainter.PaintContext(insets, new Dimension(10, 20), false); } @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; } 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}); } }