50 |
import java.awt.event.KeyListener; |
import java.awt.event.KeyListener; |
51 |
import java.awt.event.MouseEvent; |
import java.awt.event.MouseEvent; |
52 |
|
|
53 |
|
import javax.swing.BorderFactory; |
54 |
import javax.swing.CellRendererPane; |
import javax.swing.CellRendererPane; |
55 |
import javax.swing.JComponent; |
import javax.swing.JComponent; |
56 |
import javax.swing.JTable; |
import javax.swing.JTable; |
57 |
import javax.swing.ListSelectionModel; |
import javax.swing.ListSelectionModel; |
58 |
import javax.swing.UIDefaults; |
import javax.swing.UIDefaults; |
59 |
import javax.swing.UIManager; |
import javax.swing.UIManager; |
60 |
|
import javax.swing.border.Border; |
61 |
import javax.swing.event.MouseInputListener; |
import javax.swing.event.MouseInputListener; |
62 |
import javax.swing.plaf.ComponentUI; |
import javax.swing.plaf.ComponentUI; |
63 |
import javax.swing.plaf.TableUI; |
import javax.swing.plaf.TableUI; |
79 |
protected CellRendererPane rendererPane; |
protected CellRendererPane rendererPane; |
80 |
protected JTable table; |
protected JTable table; |
81 |
|
|
82 |
|
/** The normal cell border. */ |
83 |
|
Border cellBorder; |
84 |
|
|
85 |
|
/** The cell border for selected/highlighted cells. */ |
86 |
|
Border highlightCellBorder; |
87 |
|
|
88 |
class FocusHandler implements FocusListener |
class FocusHandler implements FocusListener |
89 |
{ |
{ |
90 |
public void focusGained(FocusEvent e) |
public void focusGained(FocusEvent e) |
229 |
table.setSelectionForeground(defaults.getColor("Table.selectionForeground")); |
table.setSelectionForeground(defaults.getColor("Table.selectionForeground")); |
230 |
table.setSelectionBackground(defaults.getColor("Table.selectionBackground")); |
table.setSelectionBackground(defaults.getColor("Table.selectionBackground")); |
231 |
table.setOpaque(true); |
table.setOpaque(true); |
232 |
|
|
233 |
|
highlightCellBorder = defaults.getBorder("Table.focusCellHighlightBorder"); |
234 |
|
cellBorder = BorderFactory.createEmptyBorder(1, 1, 1, 1); |
235 |
} |
} |
236 |
protected void installKeyboardActions() |
protected void installKeyboardActions() |
237 |
{ |
{ |
331 |
Component comp = table.prepareRenderer(rend, r, c); |
Component comp = table.prepareRenderer(rend, r, c); |
332 |
gfx.translate(x, y); |
gfx.translate(x, y); |
333 |
comp.setBounds(new Rectangle(0, 0, width, height)); |
comp.setBounds(new Rectangle(0, 0, width, height)); |
334 |
|
// Set correct border on cell renderer. |
335 |
|
if (comp instanceof JComponent) |
336 |
|
{ |
337 |
|
if (table.isCellSelected(r, c)) |
338 |
|
((JComponent) comp).setBorder(highlightCellBorder); |
339 |
|
else |
340 |
|
((JComponent) comp).setBorder(cellBorder); |
341 |
|
} |
342 |
comp.paint(gfx); |
comp.paint(gfx); |
343 |
gfx.translate(-x, -y); |
gfx.translate(-x, -y); |
344 |
} |
} |