Skip to content

Commit aeea40a

Browse files
committed
Implement table renderers the proper way.
1 parent 70992ea commit aeea40a

File tree

2 files changed

+19
-25
lines changed

2 files changed

+19
-25
lines changed

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/heatmap/table/HeatMapCellRenderer.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
import org.baderlab.csplugins.enrichmentmap.model.EMDataSet;
2121
import org.baderlab.csplugins.enrichmentmap.model.Transform;
2222

23-
public class HeatMapCellRenderer implements TableCellRenderer {
23+
@SuppressWarnings("serial")
24+
public class HeatMapCellRenderer extends JLabel implements TableCellRenderer {
2425

2526
private final Map<Pair<EMDataSet,Transform>,Optional<DataSetColorRange>> colorRanges = new HashMap<>();
2627
private final static DecimalFormat format = new DecimalFormat("###.##");
@@ -29,29 +30,30 @@ public class HeatMapCellRenderer implements TableCellRenderer {
2930

3031
@Override
3132
public JLabel getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {
32-
JLabel label = new JLabel();
33-
label.setOpaque(true); //MUST do this for background to show up.
33+
setOpaque(true); //MUST do this for background to show up.
3434

3535
if(value instanceof Number) {
3636
double d = ((Number)value).doubleValue();
3737

3838
HeatMapTableModel model = (HeatMapTableModel) table.getModel();
3939
Color color = getColorFor(model, col, d);
40-
label.setBackground(color);
40+
setBackground(color);
4141
Border border = BorderFactory.createMatteBorder(1, 1, 1, 1, isSelected ? table.getSelectionForeground() : color);
42-
label.setBorder(border);
42+
setBorder(border);
4343

4444
String text = getText(d);
45-
label.setToolTipText(text);
45+
setToolTipText(text);
4646

4747
if(showValue && Double.isFinite(d)) {
48-
label.setText(text);
49-
label.setFont(new Font((UIManager.getFont("TableHeader.font")).getName(), Font.PLAIN, (UIManager.getFont("TableHeader.font")).getSize()-2));
50-
label.setHorizontalAlignment(SwingConstants.RIGHT);
48+
setText(text);
49+
setFont(new Font((UIManager.getFont("TableHeader.font")).getName(), Font.PLAIN, (UIManager.getFont("TableHeader.font")).getSize()-2));
50+
setHorizontalAlignment(SwingConstants.RIGHT);
5151
}
52+
} else {
53+
setText("");
5254
}
5355

54-
return label;
56+
return this;
5557
}
5658

5759

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/heatmap/table/RankValueRenderer.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
import java.awt.Component;
55
import java.text.DecimalFormat;
66

7-
import javax.swing.JLabel;
87
import javax.swing.JTable;
9-
import javax.swing.UIManager;
108
import javax.swing.table.DefaultTableCellRenderer;
119

1210
import org.baderlab.csplugins.enrichmentmap.view.heatmap.ExportTXTTask;
@@ -19,25 +17,19 @@ public class RankValueRenderer extends DefaultTableCellRenderer {
1917

2018
@Override
2119
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {
20+
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
21+
2222
if(value instanceof RankValue) {
2323
RankValue rankValue = (RankValue) value;
24-
25-
JLabel label = new JLabel(ExportTXTTask.getRankText(format, rankValue));
24+
setText(ExportTXTTask.getRankText(format, rankValue));
2625

2726
if (rankValue.isSignificant()) {
28-
label.setBackground(SIGNIFICANT_COLOR);
29-
label.setOpaque(true);
30-
// label.setFont(new Font((UIManager.getFont("TableHeader.font")).getName(), Font.BOLD, (UIManager.getFont("TableHeader.font")).getSize() + 2));
31-
label.setFont(UIManager.getFont("TableHeader.font"));
32-
} else {
33-
label.setBackground(this.getBackground());
34-
label.setForeground(UIManager.getColor("TableHeader.foreground"));
35-
label.setFont(UIManager.getFont("TableHeader.font"));
27+
setBackground(SIGNIFICANT_COLOR);
28+
setOpaque(true);
3629
}
37-
38-
return label;
3930
}
40-
return new JLabel();
31+
32+
return this;
4133
}
4234

4335
}

0 commit comments

Comments
 (0)