source: trunk/gli/src/org/greenstone/gatherer/gui/MetadataValueTableCellRenderer.java@ 8257

Last change on this file since 8257 was 8240, checked in by mdewsnip, 20 years ago

Removed unnecessary imports of org.greenstone.gatherer.Gatherer.

  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1package org.greenstone.gatherer.gui;
2
3
4import java.awt.*;
5import java.io.*;
6import javax.swing.*;
7import javax.swing.table.DefaultTableCellRenderer;
8import org.greenstone.gatherer.Configuration;
9import org.greenstone.gatherer.metadata.MetadataElement;
10import org.greenstone.gatherer.metadata.MetadataTools;
11import org.greenstone.gatherer.metadata.MetadataValueTableModel;
12import org.greenstone.gatherer.util.Utility;
13
14
15public class MetadataValueTableCellRenderer
16 extends DefaultTableCellRenderer
17{
18 private MetadataValueTableModel metadata_value_table_model = null;
19
20
21 public MetadataValueTableCellRenderer(MetadataValueTableModel metadata_value_table_model)
22 {
23 super();
24 this.metadata_value_table_model = metadata_value_table_model;
25 }
26
27
28 /** Returns the default table cell renderer.
29 * @param table The <strong>JTable</strong>.
30 * @param value The value to assign to the cell at [row, column] as an <strong>Object</strong>.
31 * @param isSelected <i>true</i> if cell is selected.
32 * @param hasFocus <i>true</i> if cell has focus.
33 * @param row The row of the cell to render as an <i>int</i>.
34 * @param column The column of the cell to render as an <i>int</i>.
35 * @return The default table cell renderer <strong>Component</strong>.
36 */
37 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
38 {
39 JLabel renderer = null;
40
41 // First column: inherited metadata icon
42 if (column == 0 && value != null) {
43 renderer = new JLabel(Utility.getImage("upfolder.gif"));
44 }
45 else {
46 renderer = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
47 }
48
49 // Set up the component
50 renderer.setOpaque(true);
51
52 // Foreground
53 if (metadata_value_table_model.isCommon(row)) {
54 renderer.setForeground(Color.black);
55 }
56 else {
57 renderer.setForeground(Color.gray);
58 }
59
60 // Background
61 if (isSelected) {
62 renderer.setBackground(Configuration.getColor("coloring.workspace_heading_background", true));
63 }
64 else {
65 if (column <= 1) {
66 renderer.setBackground(Configuration.getColor("coloring.collection_heading_background", true));
67 }
68 else {
69 renderer.setBackground(Configuration.getColor("coloring.collection_tree_background", true));
70 }
71 }
72
73 // Finally the 3rd column of cells never paint focus.
74 if (column == 2) {
75 renderer.setBorder(BorderFactory.createEmptyBorder(0,0,0,0));
76 }
77
78 // We set a tooltip over the element column containing the definition of the element
79 if (value instanceof MetadataElement) {
80 String interface_language_code = Configuration.getLanguage();
81 String metadata_element_definition = MetadataTools.getMetadataElementAttribute((MetadataElement) value, "definition", interface_language_code, "en");
82 if (metadata_element_definition != null) {
83 renderer.setToolTipText(Utility.formatHTMLWidth(metadata_element_definition, 60));
84 }
85 }
86
87 return renderer;
88 }
89}
Note: See TracBrowser for help on using the repository browser.