View Javadoc
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