01: /*
02: * Copyright (C) 2005 - 2008 JasperSoft Corporation. All rights reserved.
03: * http://www.jaspersoft.com.
04: *
05: * Unless you have purchased a commercial license agreement from JasperSoft,
06: * the following license terms apply:
07: *
08: * This program is free software; you can redistribute it and/or modify
09: * it under the terms of the GNU General Public License version 2 as published by
10: * the Free Software Foundation.
11: *
12: * This program is distributed WITHOUT ANY WARRANTY; and without the
13: * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14: * See the GNU General Public License for more details.
15: *
16: * You should have received a copy of the GNU General Public License
17: * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18: * or write to:
19: *
20: * Free Software Foundation, Inc.,
21: * 59 Temple Place - Suite 330,
22: * Boston, MA USA 02111-1307
23: *
24: *
25: *
26: *
27: * TextAreaCellRenderer.java
28: *
29: * Created on September 21, 2006, 12:35 AM
30: *
31: */
32:
33: package it.businesslogic.ireport.gui;
34:
35: import java.awt.Color;
36: import java.awt.Component;
37: import javax.swing.JList;
38: import javax.swing.JTextPane;
39: import javax.swing.ListCellRenderer;
40: import javax.swing.text.Style;
41: import javax.swing.text.StyleConstants;
42: import javax.swing.text.StyledDocument;
43: import javax.swing.text.DefaultStyledDocument;
44:
45: public class TextAreaCellRenderer extends JTextPane implements
46: ListCellRenderer {
47: private Color selectionBackground;
48: private Color background;
49:
50: // Create a style object and then set the style attributes
51: Style methodStyle = null;
52: Style returnTypeStyle = null;
53:
54: public TextAreaCellRenderer(JList list) {
55: super ();
56: selectionBackground = list.getSelectionBackground();
57: background = list.getBackground();
58: StyledDocument doc = new DefaultStyledDocument();
59: this .setDocument(doc);
60: methodStyle = doc.addStyle("methodStyle", null);
61: StyleConstants.setBold(methodStyle, true);
62: returnTypeStyle = doc.addStyle("returnType", null);
63: StyleConstants.setForeground(returnTypeStyle, Color.gray);
64: }
65:
66: public Component getListCellRendererComponent(JList list,
67: Object object, int index, boolean isSelected,
68: boolean cellHasFocus) {
69:
70: String s = (String) object;
71: this .setText("");
72: StyledDocument doc = (StyledDocument) this .getDocument();
73: try {
74: doc.insertString(doc.getLength(), s.substring(0, s
75: .indexOf("(")), methodStyle);
76: doc.insertString(doc.getLength(), s.substring(s
77: .indexOf("("), s.lastIndexOf(")") + 1), null);
78: doc.insertString(doc.getLength(), s.substring(s
79: .lastIndexOf(")") + 1), returnTypeStyle);
80: } catch (Exception ex) {
81: }
82: setBackground(isSelected ? selectionBackground : background);
83: return this;
84: }
85: }
|