KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > ui > ArrowIcon


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, is permitted
5  * provided that the following conditions are met:
6  * - Redistributions of source code must retain the above copyright notice, this list of conditions
7  * and the following disclaimer.
8  * - Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * - All advertising materials mentioning features or use of this software must display the
12  * following acknowledgment: "This product includes Djeneric."
13  * - Products derived from this software may not be called "Djeneric" nor may
14  * "Djeneric" appear in their names without prior written permission of Genimen BV.
15  * - Redistributions of any form whatsoever must retain the following acknowledgment: "This
16  * product includes Djeneric."
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV, DJENERIC.ORG,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30 package com.genimen.djeneric.ui;
31
32 import java.awt.Color JavaDoc;
33 import java.awt.Component JavaDoc;
34 import java.awt.Graphics JavaDoc;
35
36 import javax.swing.Icon JavaDoc;
37 import javax.swing.SwingConstants JavaDoc;
38
39 public class ArrowIcon implements Icon JavaDoc, SwingConstants JavaDoc
40 {
41   private int width = 9;
42   private int height = 18;
43
44   private int[] xPoints = new int[4];
45   private int[] yPoints = new int[4];
46
47   public ArrowIcon(int direction)
48   {
49     if (direction == LEFT)
50     {
51       xPoints[0] = width;
52       yPoints[0] = -1;
53       xPoints[1] = width;
54       yPoints[1] = height;
55       xPoints[2] = 0;
56       yPoints[2] = height / 2;
57       xPoints[3] = 0;
58       yPoints[3] = height / 2 - 1;
59     }
60     else
61     /* direction == RIGHT */{
62       xPoints[0] = 0;
63       yPoints[0] = -1;
64       xPoints[1] = 0;
65       yPoints[1] = height;
66       xPoints[2] = width;
67       yPoints[2] = height / 2;
68       xPoints[3] = width;
69       yPoints[3] = height / 2 - 1;
70     }
71   }
72
73   public int getIconHeight()
74   {
75     return height;
76   }
77
78   public int getIconWidth()
79   {
80     return width;
81   }
82
83   public void paintIcon(Component JavaDoc c, Graphics JavaDoc g, int x, int y)
84   {
85     int length = xPoints.length;
86     int adjustedXPoints[] = new int[length];
87     int adjustedYPoints[] = new int[length];
88
89     for (int i = 0; i < length; i++)
90     {
91       adjustedXPoints[i] = xPoints[i] + x;
92       adjustedYPoints[i] = yPoints[i] + y;
93     }
94
95     if (c.isEnabled())
96     {
97       g.setColor(Color.black);
98     }
99     else
100     {
101       g.setColor(Color.gray);
102     }
103
104     g.fillPolygon(adjustedXPoints, adjustedYPoints, length);
105   }
106 }
Popular Tags