19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this work for additional information regarding copyright ownership. 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (the "License"); you may not use this file except in compliance with 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License. You may obtain a copy of the License at 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage java.awt; 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.geom.AffineTransform; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.geom.Point2D; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.geom.Rectangle2D; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.image.ColorModel; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.internal.nls.Messages; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The GradientPaint class defines a way to fill a Shape with a linear color 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * gradient pattern. 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The GradientPaint's fill pattern is determined by two points and two colors, 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * plus the cyclic mode option. Each of the two points is painted with its 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * corresponding color, and on the line segment connecting the two points, the 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * color is proportionally changed between the two colors. For points on the 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * same line which are not between the two specified points (outside of the 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * connecting segment) their color is determined by the cyclic mode option. If 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the mode is cyclic, then the rest of the line repeats the color pattern of 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the connecting segment, cycling back and forth between the two colors. If 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * not, the mode is acyclic which means that all points on the line outside the 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * connecting line segment are given the same color as the closest of the two 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * specified points. 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The color of points that are not on the line connecting the two specified 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * points are given by perpendicular projection: by taking the set of lines 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * perpendicular to the connecting line and for each one, the whole line is 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * colored with the same color. 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @since Android 1.0 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class GradientPaint implements Paint { 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The start point color. 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Color color1; 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The end color point. 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Color color2; 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The location of the start point. 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Point2D point1; 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The location of the end point. 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Point2D point2; 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The indicator of cycle filling. If TRUE filling repeated outside points 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * stripe, if FALSE solid color filling outside. 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean cyclic; 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Instantiates a new GradientPaint with cyclic or acyclic mode. 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param point1 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the first specified point. 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param color1 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Color of the first specified point. 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param point2 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the second specified point. 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param color2 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Color of the second specified point. 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param cyclic 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the cyclic mode - true if the gradient pattern should cycle 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * repeatedly between the two colors; false otherwise. 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public GradientPaint(Point2D point1, Color color1, Point2D point2, Color color2, boolean cyclic) { 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (point1 == null || point2 == null) { 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.6D=Point is null 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new NullPointerException(Messages.getString("awt.6D")); //$NON-NLS-1$ 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (color1 == null || color2 == null) { 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.6E=Color is null 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new NullPointerException(Messages.getString("awt.6E")); //$NON-NLS-1$ 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.point1 = point1; 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.point2 = point2; 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.color1 = color1; 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.color2 = color2; 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.cyclic = cyclic; 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Instantiates a new GradientPaint with cyclic or acyclic mode; points are 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * specified by coordinates. 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param x1 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the X coordinate of the first point. 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param y1 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Y coordinate of the first point. 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param color1 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the color of the first point. 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param x2 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the X coordinate of the second point. 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param y2 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Y coordinate of the second point. 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param color2 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the color of the second point. 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param cyclic 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the cyclic mode - true if the gradient pattern should cycle 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * repeatedly between the two colors; false otherwise. 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2, 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean cyclic) { 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this(new Point2D.Float(x1, y1), color1, new Point2D.Float(x2, y2), color2, cyclic); 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Instantiates a new acyclic GradientPaint; points are specified by 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * coordinates. 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param x1 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the X coordinate of the first point. 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param y1 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Y coordinate of the first point. 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param color1 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the color of the first point. 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param x2 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the X coordinate of the second point. 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param y2 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Y coordinate of the second point. 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param color2 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the color of the second point. 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2) { 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this(x1, y1, color1, x2, y2, color2, false); 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Instantiates a new acyclic GradientPaint. 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param point1 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the first specified point. 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param color1 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Color of the first specified point. 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param point2 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the second specified point. 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param color2 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Color of the second specified point. 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public GradientPaint(Point2D point1, Color color1, Point2D point2, Color color2) { 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this(point1, color1, point2, color2, false); 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Creates PaintContext for a color pattern generating. 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param cm 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the ColorModel of the Paint data. 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param deviceBounds 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the bounding Rectangle of graphics primitives being rendered 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * in the device space. 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param userBounds 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the bounding Rectangle of graphics primitives being rendered 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * in the user space. 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param t 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the AffineTransform from user space into device space. 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param hints 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the RrenderingHints object. 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the PaintContext for color pattern generating. 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see java.awt.Paint#createContext(java.awt.image.ColorModel, 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * java.awt.Rectangle, java.awt.geom.Rectangle2D, 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * java.awt.geom.AffineTransform, java.awt.RenderingHints) 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Rectangle2D userBounds, AffineTransform t, RenderingHints hints) { 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new GradientPaintContext(cm, t, point1, color1, point2, color2, cyclic); 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the color of the first point. 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the color of the first point. 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Color getColor1() { 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return color1; 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the color of the second point. 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the color of the second point. 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Color getColor2() { 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return color2; 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the first point. 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the Point object - the first point. 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Point2D getPoint1() { 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return point1; 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the second point. 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the Point object - the second point. 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Point2D getPoint2() { 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return point2; 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the transparency mode for the GradientPaint. 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the transparency mode for the GradientPaint. 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see java.awt.Transparency#getTransparency() 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getTransparency() { 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int a1 = color1.getAlpha(); 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int a2 = color2.getAlpha(); 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (a1 == 0xFF && a2 == 0xFF) ? OPAQUE : TRANSLUCENT; 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the GradientPaint mode: true for cyclic mode, false for acyclic 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * mode. 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the gradient cycles repeatedly between the two colors; 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * false otherwise. 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isCyclic() { 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return cyclic; 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 256