1 /** 2 Copyright 2004 Juan Heyns. All rights reserved. 3 4 Redistribution and use in source and binary forms, with or without modification, are 5 permitted provided that the following conditions are met: 6 7 1. Redistributions of source code must retain the above copyright notice, this list of 8 conditions and the following disclaimer. 9 10 2. Redistributions in binary form must reproduce the above copyright notice, this list 11 of conditions and the following disclaimer in the documentation and/or other materials 12 provided with the distribution. 13 14 THIS SOFTWARE IS PROVIDED BY JUAN HEYNS ``AS IS'' AND ANY EXPRESS OR IMPLIED 15 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 16 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JUAN HEYNS OR 17 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 18 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 20 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 21 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 22 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 24 The views and conclusions contained in the software and documentation are those of the 25 authors and should not be interpreted as representing official policies, either expressed 26 or implied, of Juan Heyns. 27 */ 28 package fr.ifremer.quadrige3.ui.swing.component.date.graphics; 29 30 /* 31 * #%L 32 * Reef DB :: UI 33 * $Id:$ 34 * $HeadURL:$ 35 * %% 36 * Copyright (C) 2014 - 2015 Ifremer 37 * %% 38 * This program is free software: you can redistribute it and/or modify 39 * it under the terms of the GNU Affero General Public License as published by 40 * the Free Software Foundation, either version 3 of the License, or 41 * (at your option) any later version. 42 * 43 * This program is distributed in the hope that it will be useful, 44 * but WITHOUT ANY WARRANTY; without even the implied warranty of 45 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 46 * GNU General Public License for more details. 47 * 48 * You should have received a copy of the GNU Affero General Public License 49 * along with this program. If not, see <http://www.gnu.org/licenses/>. 50 * #L% 51 */ 52 53 54 import javax.swing.*; 55 import java.awt.*; 56 57 /** 58 * Created on 26 Mar 2004 59 * 60 * @author Juan Heyns 61 */ 62 public class JPreviousIcon implements Icon { 63 64 private int width; 65 private int height; 66 67 private final int[] xPoints = new int[3]; 68 private final int[] yPoints = new int[3]; 69 70 private boolean doubleArrow; 71 private final boolean enabled; 72 73 /** 74 * <p>Constructor for JPreviousIcon.</p> 75 * 76 * @param width a int. 77 * @param height a int. 78 * @param doubleArrow a boolean. 79 * @param enabled a boolean. 80 */ 81 public JPreviousIcon(int width, int height, boolean doubleArrow, boolean enabled) { 82 setDimension(width, height); 83 this.doubleArrow = doubleArrow; 84 this.enabled = enabled; 85 } 86 87 /** 88 * <p>getIconWidth.</p> 89 * 90 * @return a int. 91 */ 92 public int getIconWidth() { 93 return width; 94 } 95 96 /** 97 * <p>getIconHeight.</p> 98 * 99 * @return a int. 100 */ 101 public int getIconHeight() { 102 return height; 103 } 104 105 /** 106 * <p>setDimension.</p> 107 * 108 * @param width a int. 109 * @param height a int. 110 */ 111 public void setDimension(int width, int height) { 112 this.width = width; 113 this.height = height; 114 } 115 116 /** {@inheritDoc} */ 117 public void paintIcon(Component c, Graphics g, int x, int y) { 118 if (enabled) { 119 g.setColor(Color.BLACK); 120 } else { 121 g.setColor(Color.GRAY); 122 } 123 124 if (doubleArrow) { 125 xPoints[0] = x; 126 yPoints[0] = y + (height / 2); 127 128 xPoints[1] = x + (width / 2); 129 yPoints[1] = y - 1; 130 131 xPoints[2] = x + (width / 2); 132 yPoints[2] = y + height; 133 134 g.fillPolygon(xPoints, yPoints, 3); 135 136 xPoints[0] = x + (width / 2); 137 yPoints[0] = y + (height / 2); 138 139 xPoints[1] = x + width; 140 yPoints[1] = y - 1; 141 142 xPoints[2] = x + width; 143 yPoints[2] = y + height; 144 145 g.fillPolygon(xPoints, yPoints, 3); 146 } else { 147 xPoints[0] = x; 148 yPoints[0] = y + (height / 2); 149 150 xPoints[1] = x + width; 151 yPoints[1] = y - 1; 152 153 xPoints[2] = x + width; 154 yPoints[2] = y + height; 155 156 g.fillPolygon(xPoints, yPoints, 3); 157 } 158 } 159 160 } 161