Skip to content

Commit 43522b7

Browse files
committed
Add color icons to label list #21
1 parent c0a43e3 commit 43522b7

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

src/main/java/com/junichi11/netbeans/modules/github/issues/ui/AttributesListCellRenderer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public Component getListCellRendererComponent(JList<?> list, Object value, int i
9494
} else if (value instanceof Label) {
9595
Label label = (Label) value;
9696
text = label.getName();
97+
icon = new ColorIcon(String.format("#%s", label.getColor())); // NOI18N
9798
}
9899
if (text == null) {
99100
text = " "; // NOI18N
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
/*
2+
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3+
*
4+
* Copyright 2015 Oracle and/or its affiliates. All rights reserved.
5+
*
6+
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7+
* Other names may be trademarks of their respective owners.
8+
*
9+
* The contents of this file are subject to the terms of either the GNU
10+
* General Public License Version 2 only ("GPL") or the Common
11+
* Development and Distribution License("CDDL") (collectively, the
12+
* "License"). You may not use this file except in compliance with the
13+
* License. You can obtain a copy of the License at
14+
* http://www.netbeans.org/cddl-gplv2.html
15+
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16+
* specific language governing permissions and limitations under the
17+
* License. When distributing the software, include this License Header
18+
* Notice in each file and include the License file at
19+
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
20+
* particular file as subject to the "Classpath" exception as provided
21+
* by Oracle in the GPL Version 2 section of the License file that
22+
* accompanied this code. If applicable, add the following below the
23+
* License Header, with the fields enclosed by brackets [] replaced by
24+
* your own identifying information:
25+
* "Portions Copyrighted [year] [name of copyright owner]"
26+
*
27+
* If you wish your version of this file to be governed by only the CDDL
28+
* or only the GPL Version 2, indicate your decision by adding
29+
* "[Contributor] elects to include this software in this distribution
30+
* under the [CDDL or GPL Version 2] license." If you do not indicate a
31+
* single choice of license, a recipient has the option to distribute
32+
* your version of this file under either the CDDL, the GPL Version 2 or
33+
* to extend the choice of license to its licensees as provided above.
34+
* However, if you add GPL Version 2 code and therefore, elected the GPL
35+
* Version 2 license, then the option applies only if the new code is
36+
* made subject to such option by the copyright holder.
37+
*
38+
* Contributor(s):
39+
*
40+
* Portions Copyrighted 2015 Sun Microsystems, Inc.
41+
*/
42+
package com.junichi11.netbeans.modules.github.issues.ui;
43+
44+
import java.awt.Color;
45+
import java.awt.Component;
46+
import java.awt.Graphics;
47+
import java.awt.Graphics2D;
48+
import javax.swing.Icon;
49+
50+
/**
51+
*
52+
* @author junichi11
53+
*/
54+
final class ColorIcon implements Icon {
55+
56+
private final int width;
57+
private final int height;
58+
59+
private final String color;
60+
61+
public ColorIcon(String color) {
62+
this(16, 16, color);
63+
}
64+
65+
public ColorIcon(int width, int height, String color) {
66+
this.width = width;
67+
this.height = height;
68+
this.color = color;
69+
}
70+
71+
@Override
72+
public void paintIcon(Component component, Graphics g, int x, int y) {
73+
int h = component.getHeight();
74+
int defaultSize = h - y * 2;
75+
Graphics2D g2d = (Graphics2D) g.create();
76+
g2d.setColor(Color.decode(color));
77+
if (defaultSize < height) {
78+
g2d.fillRect(x, y, width, height);
79+
} else {
80+
g2d.fillRect(x, y, defaultSize, defaultSize);
81+
}
82+
g2d.dispose();
83+
}
84+
85+
@Override
86+
public int getIconWidth() {
87+
return width;
88+
}
89+
90+
@Override
91+
public int getIconHeight() {
92+
return height;
93+
}
94+
95+
}

0 commit comments

Comments
 (0)