1 package org.wcb.gui.renderer;
2
3 import org.wcb.gui.forms.AircraftTableDisplayForm;
4 import org.wcb.gui.forms.AirportTableDisplayForm;
5 import org.wcb.gui.forms.AircraftTypeTableDisplayForm;
6 import org.wcb.resources.MessageResourceRegister;
7 import org.wcb.resources.MessageKey;
8 import org.wcb.model.vo.hibernate.AircraftBO;
9 import org.wcb.model.vo.hibernate.AirportBO;
10 import org.wcb.model.vo.hibernate.AircraftTypeBO;
11
12 import javax.swing.*;
13 import javax.swing.table.TableCellRenderer;
14 import javax.swing.table.TableCellEditor;
15 import javax.swing.table.TableColumnModel;
16 import java.awt.event.ActionListener;
17 import java.awt.event.ActionEvent;
18 import java.awt.*;
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 public class SelectButtonTableCellEditor extends AbstractCellEditor
48 implements TableCellRenderer, TableCellEditor, ActionListener
49 {
50 private JButton renderButton;
51 private JButton editButton;
52 private Object oLineObject;
53 private JComponent parentComponent;
54
55 public SelectButtonTableCellEditor(JTable table, int column, JComponent parent)
56 {
57 super();
58 renderButton = new JButton(MessageResourceRegister.getInstance().getValue(MessageKey.BUTTON_SELECT));
59
60 editButton = new JButton(MessageResourceRegister.getInstance().getValue(MessageKey.BUTTON_SELECT));
61 editButton.setFocusPainted( false );
62 editButton.addActionListener( this );
63
64 TableColumnModel columnModel = table.getColumnModel();
65 columnModel.getColumn(column).setCellRenderer( this );
66 columnModel.getColumn(column).setCellEditor( this );
67 parentComponent = parent;
68 }
69
70 public Component getTableCellRendererComponent(
71 JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
72 {
73 if (hasFocus)
74 {
75 renderButton.setForeground(table.getForeground());
76 renderButton.setBackground(UIManager.getColor("Button.background"));
77 }
78 else if (isSelected)
79 {
80 renderButton.setForeground(table.getSelectionForeground());
81 renderButton.setBackground(table.getSelectionBackground());
82 }
83 else
84 {
85 renderButton.setForeground(table.getForeground());
86 renderButton.setBackground(UIManager.getColor("Button.background"));
87 }
88 oLineObject = value;
89 return renderButton;
90 }
91
92 public Component getTableCellEditorComponent(
93 JTable table, Object value, boolean isSelected, int row, int column)
94 {
95 oLineObject = value;
96 return editButton;
97 }
98
99 public Object getCellEditorValue()
100 {
101 return oLineObject;
102 }
103
104 public void actionPerformed(ActionEvent e)
105 {
106 if(parentComponent instanceof AircraftTableDisplayForm){
107 ((AircraftTableDisplayForm)parentComponent).setSelectedRow((AircraftBO) oLineObject);
108 }
109 if(parentComponent instanceof AirportTableDisplayForm){
110 ((AirportTableDisplayForm)parentComponent).setSelectedRow((AirportBO) oLineObject);
111 }
112 if(parentComponent instanceof AircraftTypeTableDisplayForm) {
113 ((AircraftTypeTableDisplayForm)parentComponent).setSelectedRow((AircraftTypeBO) oLineObject);
114 }
115 }
116 }