source: 3thparty/jupload/src/main/java/wjhk/jupload2/gui/filepanel/SortArrowIcon.java @ 3951

Revision 3951, 3.3 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1709 - Adicao de codigo fonte java do componente jupload

Line 
1//
2// $Id: SortArrowIcon.java 95 2007-05-02 03:27:05Z
3// /C=DE/ST=Baden-Wuerttemberg/O=ISDN4Linux/OU=Fritz
4// Elfert/CN=svn-felfert@isdn4linux.de/emailAddress=fritz@fritz-elfert.de $
5//
6// jupload - A file upload applet.
7// Copyright 2007 The JUpload Team
8//
9// Created: ?
10// Creator: William JinHua Kwong
11// Last modified: $Date: 2008-12-03 06:57:11 -0200 (Qua, 03 Dez 2008) $
12//
13// This program is free software; you can redistribute it and/or modify it under
14// the terms of the GNU General Public License as published by the Free Software
15// Foundation; either version 2 of the License, or (at your option) any later
16// version. This program is distributed in the hope that it will be useful, but
17// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
19// details. You should have received a copy of the GNU General Public License
20// along with this program; if not, write to the Free Software Foundation, Inc.,
21// 675 Mass Ave, Cambridge, MA 02139, USA.
22
23package wjhk.jupload2.gui.filepanel;
24
25import java.awt.Color;
26import java.awt.Component;
27import java.awt.Graphics;
28
29import javax.swing.Icon;
30
31/**
32 * Icon implementation, to control and indicate the current sort order, into the
33 * {@link wjhk.jupload2.gui.filepanel.FilePanelJTable}.
34 */
35public class SortArrowIcon implements Icon {
36    /**
37     * Don't draw an arrow.
38     */
39    public static final int NONE = 0;
40
41    /**
42     * Draw arrow, representing descending sort order.
43     */
44    public static final int DESCENDING = 1;
45
46    /**
47     * Draw arrow, representing ascending sort order.
48     */
49    public static final int ASCENDING = 2;
50
51    protected int direction;
52
53    protected int width = 8;
54
55    protected int height = 8;
56
57    /**
58     * Creates a new instance.
59     *
60     * @param direction The desired direction, either {@link #ASCENDING},
61     *            {@link #DESCENDING} or {@link #NONE}
62     */
63    public SortArrowIcon(int direction) {
64        this.direction = direction;
65    }
66
67    /**
68     * @see javax.swing.Icon#getIconWidth()
69     */
70    public int getIconWidth() {
71        return this.width;
72    }
73
74    /**
75     * @see javax.swing.Icon#getIconHeight()
76     */
77    public int getIconHeight() {
78        return this.height;
79    }
80
81    /**
82     * @see javax.swing.Icon#paintIcon(java.awt.Component, java.awt.Graphics,
83     *      int, int)
84     */
85    public void paintIcon(Component c, Graphics g, int x, int y) {
86        final Color bg = c.getBackground();
87        final Color light = bg.brighter().brighter();
88        final Color shade = bg.darker().darker();
89
90        final int w = this.width;
91        final int h = this.height;
92        final int m = w / 2;
93        switch (this.direction) {
94            case ASCENDING:
95                g.setColor(shade);
96                g.drawLine(x, y, x + w, y);
97                g.drawLine(x, y, x + m, y + h);
98                g.setColor(light);
99                g.drawLine(x + w, y, x + m, y + h);
100                break;
101            case DESCENDING:
102                g.setColor(shade);
103                g.drawLine(x + m, y, x, y + h);
104                g.setColor(light);
105                g.drawLine(x, y + h, x + w, y + h);
106                g.drawLine(x + m, y, x + w, y + h);
107                break;
108        }
109    }
110}
Note: See TracBrowser for help on using the repository browser.