source: josm/trunk/src/org/openstreetmap/josm/gui/correction/CorrectionTable.java@ 14206

Last change on this file since 14206 was 10125, checked in by Don-vip, 8 years ago

refactor classes from corrector package, add javadoc

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.correction;
3
4import java.awt.Component;
5import java.awt.Dimension;
6import java.awt.Font;
7
8import javax.swing.JLabel;
9import javax.swing.JTable;
10import javax.swing.table.TableCellRenderer;
11
12/**
13 * Abstract correction table.
14 * @param <T> type of table model
15 */
16public abstract class CorrectionTable<T extends CorrectionTableModel<?>> extends JTable {
17
18 private static final int MAX_VISIBLE_LINES = 10;
19
20 /**
21 * Renders text in bold.
22 */
23 public static class BoldRenderer extends JLabel implements TableCellRenderer {
24
25 @Override
26 public Component getTableCellRendererComponent(JTable table,
27 Object value, boolean isSelected, boolean hasFocus, int row, int column) {
28 Font f = getFont();
29 setFont(new Font(f.getName(), f.getStyle() | Font.BOLD, f.getSize()));
30 setText((String) value);
31 return this;
32 }
33 }
34
35 private static volatile BoldRenderer boldRenderer;
36
37 protected CorrectionTable(T correctionTableModel) {
38 super(correctionTableModel);
39
40 final int correctionsSize = correctionTableModel.getCorrections().size();
41 final int lines = correctionsSize > MAX_VISIBLE_LINES ? MAX_VISIBLE_LINES : correctionsSize;
42 setPreferredScrollableViewportSize(new Dimension(400, lines * getRowHeight()));
43 getColumnModel().getColumn(correctionTableModel.getApplyColumn()).setPreferredWidth(40);
44 setRowSelectionAllowed(false);
45 }
46
47 @Override
48 public TableCellRenderer getCellRenderer(int row, int column) {
49 if (getCorrectionTableModel().isBoldCell(row, column)) {
50 if (boldRenderer == null)
51 boldRenderer = new BoldRenderer();
52 return boldRenderer;
53 }
54 return super.getCellRenderer(row, column);
55 }
56
57 /**
58 * Returns correction table model.
59 * @return correction table model
60 */
61 @SuppressWarnings("unchecked")
62 public T getCorrectionTableModel() {
63 return (T) getModel();
64 }
65}
Note: See TracBrowser for help on using the repository browser.