PageRenderTime 81ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/fin_val/src/production/artem/finance/gui/CountsCatalog.java

http://finval.googlecode.com/
Java | 705 lines | 506 code | 79 blank | 120 comment | 49 complexity | d2105cd53e79fd1d383683ad608ee479 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, IPL-1.0, Apache-2.0, LGPL-2.1, LGPL-2.0, BSD-3-Clause
  1. package artem.finance.gui;
  2. import javax.swing.JPanel;
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.Rectangle;
  6. import javax.swing.DefaultCellEditor;
  7. import javax.swing.DefaultComboBoxModel;
  8. import javax.swing.JButton;
  9. import javax.swing.JCheckBox;
  10. import javax.swing.JInternalFrame;
  11. import javax.swing.JOptionPane;
  12. import javax.swing.JRadioButton;
  13. import javax.swing.JTextField;
  14. import javax.swing.JScrollPane;
  15. import javax.swing.JTable;
  16. import javax.swing.ListSelectionModel;
  17. import javax.swing.event.ListSelectionEvent;
  18. import javax.swing.event.ListSelectionListener;
  19. import javax.swing.table.DefaultTableColumnModel;
  20. import javax.swing.table.TableCellRenderer;
  21. import javax.swing.table.TableColumn;
  22. import java.awt.event.ItemEvent;
  23. import java.awt.event.ItemListener;
  24. import java.lang.reflect.InvocationTargetException;
  25. import java.rmi.RemoteException;
  26. import java.util.ArrayList;
  27. import java.util.List;
  28. import java.util.Properties;
  29. import javax.swing.JLabel;
  30. import javax.swing.JComboBox;
  31. import artem.finance.gui.db.BeansFactory;
  32. import artem.finance.server.persist.Bank;
  33. import artem.finance.server.persist.Schet;
  34. import artem.finance.server.persist.Valuta;
  35. import artem.finance.server.persist.beans.BankBean;
  36. import artem.finance.server.persist.beans.SchetBean;
  37. import artem.finance.server.persist.beans.ValutaBean;
  38. /**
  39. *
  40. * @author Ivan Burtsev
  41. *
  42. */
  43. public class CountsCatalog extends JInternalFrame {
  44. private static final long serialVersionUID = 1L;
  45. private JPanel jContentPane = null;
  46. private JButton addButton = null;
  47. private JTextField countTextField = null;
  48. private JTextField countNameTextField = null;
  49. private JScrollPane jScrollPane = null;
  50. private JTable jTable = null;
  51. private JButton cancelButton = null;
  52. private JLabel countLabel = null;
  53. private JLabel countNameLabel = null;
  54. private JButton editButton = null;
  55. private JLabel ClosedLabel = null;
  56. private JLabel valLabel = null;
  57. private JLabel bankLabel = null;
  58. private JCheckBox closedCheckBox = null;
  59. private JComboBox bankComboBox = null;
  60. private JComboBox valComboBox = null;
  61. private JButton delButton = null;
  62. private BeansFactory factory;
  63. private Schet selectedCount;
  64. private Properties properties;
  65. /**
  66. * This is the default constructor
  67. */
  68. public CountsCatalog(Properties properties) {
  69. super("",
  70. false, //resizable
  71. true, //closable
  72. false, //maximizable
  73. true);//iconifiable
  74. this.properties = properties;
  75. this.factory = BeansFactory.getInstance();
  76. initialize();
  77. }
  78. public Properties getLanguageLabelsProperties(){
  79. return properties;
  80. }
  81. /**
  82. * This method initializes this
  83. *
  84. * @return void
  85. */
  86. private void initialize() {
  87. this.setSize(675, 535);
  88. this.setContentPane(getJContentPane());
  89. this.setTitle(properties.getProperty("counts"));
  90. }
  91. /**
  92. * This method initializes jContentPane
  93. *
  94. * @return javax.swing.JPanel
  95. */
  96. private JPanel getJContentPane() {
  97. if (jContentPane == null) {
  98. bankLabel = new JLabel();
  99. bankLabel.setBounds(new Rectangle(15, 505, 50, 16));
  100. bankLabel.setText(properties.getProperty("bank"));
  101. valLabel = new JLabel();
  102. valLabel.setBounds(new Rectangle(150, 505, 50, 16));
  103. valLabel.setText(properties.getProperty("currency"));
  104. ClosedLabel = new JLabel();
  105. ClosedLabel.setBounds(new Rectangle(600, 505, 51, 16));
  106. ClosedLabel.setText(properties.getProperty("closed"));
  107. countNameLabel = new JLabel();
  108. countNameLabel.setBounds(new Rectangle(400, 505, 130, 16));
  109. countNameLabel.setText(properties.getProperty("countName"));
  110. countLabel = new JLabel();
  111. countLabel.setBounds(new Rectangle(225, 505, 38, 16));
  112. countLabel.setText(properties.getProperty("count"));
  113. jContentPane = new JPanel();
  114. jContentPane.setLayout(null);
  115. jContentPane.setSize(new Dimension(690, 230));
  116. jContentPane.add(getAddButton(), null);
  117. jContentPane.add(getCountTextField(), null);
  118. jContentPane.add(getCountNameTextField(), null);
  119. jContentPane.add(getJScrollPane(), null);
  120. jContentPane.setOpaque(true);
  121. jContentPane.add(getCancelButton(), null);
  122. jContentPane.add(countLabel, null);
  123. jContentPane.add(countNameLabel, null);
  124. jContentPane.add(getEditButton(), null);
  125. jContentPane.add(ClosedLabel, null);
  126. jContentPane.add(valLabel, null);
  127. jContentPane.add(bankLabel, null);
  128. jContentPane.add(getClosedCheckBox(), null);
  129. jContentPane.add(getBankComboBox(), null);
  130. jContentPane.add(getValComboBox(), null);
  131. jContentPane.add(getDelButton(), null);
  132. }
  133. return jContentPane;
  134. }
  135. /**
  136. * This method initializes addButton
  137. *
  138. * @return javax.swing.JButton
  139. */
  140. private JButton getAddButton()
  141. {
  142. if (addButton == null)
  143. {
  144. addButton = new JButton();
  145. addButton.setBounds(new Rectangle(15, 466, 140, 26));
  146. addButton.setText(properties.getProperty("add"));
  147. addButton.setEnabled(false);
  148. addButton.setVisible(false);
  149. addButton.addActionListener(new java.awt.event.ActionListener() {
  150. public void actionPerformed(java.awt.event.ActionEvent e) {
  151. //add new field or update current
  152. if(getCountTextField().getText().equals("") || getCountTextField().getText() == null){
  153. JOptionPane.showMessageDialog(getJTable(), properties.getProperty("countNumMissing"));
  154. return;
  155. }
  156. if(getCountNameTextField().getText().equals("") || getCountNameTextField().getText() == null){
  157. JOptionPane.showMessageDialog(getJTable(), properties.getProperty("countNameMissing"));
  158. return;
  159. }
  160. if(selectedCount == null ){
  161. try{
  162. selectedCount = new Schet();
  163. selectedCount.setSchet(getCountTextField().getText());
  164. selectedCount.setNaimenovanie(getCountNameTextField().getText());
  165. selectedCount.setBank((Bank)getBankComboBox().getSelectedItem());
  166. selectedCount.setValuta((Valuta)getValComboBox().getSelectedItem());
  167. selectedCount.setClosed(getClosedCheckBox().isSelected());
  168. factory.getSchetServiceSLSB().saveOrUpdate(new SchetBean(selectedCount));
  169. JOptionPane.showMessageDialog(getJTable(), properties.getProperty("count")+" "+selectedCount.getSchet()+properties.getProperty("savedSuccessfully"));
  170. cleanTextFields();
  171. //update jTable
  172. getDatabaseTableModel().setData(getDataFromDb());
  173. getDatabaseTableModel().fireTableRowsInserted(getJTable().getRowCount()-1, getJTable().getRowCount());
  174. selectedCount = null;
  175. }catch(Exception ex){
  176. JOptionPane.showMessageDialog(getJTable(), properties.getProperty("count")+properties.getProperty("notSaved")+ex.getMessage());
  177. selectedCount = null;
  178. }
  179. }else{
  180. try{
  181. selectedCount.setSchet(getCountTextField().getText());
  182. selectedCount.setNaimenovanie(getCountNameTextField().getText());
  183. selectedCount.setBank((Bank)getBankComboBox().getSelectedItem());
  184. selectedCount.setValuta((Valuta)getValComboBox().getSelectedItem());
  185. selectedCount.setClosed(getClosedCheckBox().isSelected());
  186. factory.getSchetServiceSLSB().saveOrUpdate(new SchetBean(selectedCount));
  187. JOptionPane.showMessageDialog(getJTable(), properties.getProperty("count")+" "+selectedCount.getSchet()+properties.getProperty("updatedSuccessfully"));
  188. cleanTextFields();
  189. //update jTable
  190. getDatabaseTableModel().setData(getDataFromDb());
  191. getDatabaseTableModel().fireTableRowsInserted(getJTable().getRowCount()-1, getJTable().getRowCount());
  192. selectedCount = null;
  193. }catch(Exception ex){
  194. JOptionPane.showMessageDialog(getJTable(), properties.getProperty("count")+properties.getProperty("notUpdated")+ex.getMessage());
  195. selectedCount = null;
  196. }
  197. }
  198. }
  199. });
  200. }
  201. return addButton;
  202. }
  203. private void cleanTextFields()
  204. {
  205. getCountTextField().setText("");
  206. getCountNameTextField().setText("");
  207. }
  208. /**
  209. * This method initializes countTextField
  210. *
  211. * @return javax.swing.JTextField
  212. */
  213. private JTextField getCountTextField()
  214. {
  215. if (countTextField == null)
  216. {
  217. countTextField = new JTextField();
  218. countTextField.setBounds(new Rectangle(225, 530, 160, 20));
  219. }
  220. return countTextField;
  221. }
  222. /**
  223. * This method initializes countNameTextField
  224. *
  225. * @return javax.swing.JTextField
  226. */
  227. private JTextField getCountNameTextField()
  228. {
  229. if (countNameTextField == null)
  230. {
  231. countNameTextField = new JTextField();
  232. countNameTextField.setBounds(new Rectangle(400, 530, 190, 20));
  233. }
  234. return countNameTextField;
  235. }
  236. /**
  237. * This method initializes jScrollPane
  238. *
  239. * @return javax.swing.JScrollPane
  240. */
  241. private JScrollPane getJScrollPane()
  242. {
  243. if (jScrollPane == null)
  244. {
  245. jScrollPane = new JScrollPane();
  246. jScrollPane.setBounds(new Rectangle(13, 15, 640, 445));
  247. jScrollPane.setViewportView(getJTable());
  248. }
  249. return jScrollPane;
  250. }
  251. private List<Object> getDataFromDb()
  252. {
  253. List<Object> data = new ArrayList<Object>();
  254. List<SchetBean> counts;
  255. try {
  256. counts = factory.getSchetServiceSLSB().findAll();
  257. for (int i = 0; i < counts.size(); i++) {
  258. SchetBean count = counts.get(i);
  259. List<Object> raw = new ArrayList<Object>();
  260. raw.add(count.getSchet().getId());
  261. raw.add(count.getSchet().getBank());
  262. raw.add(count.getSchet().getValuta());
  263. raw.add(count.getSchet().getSchet());
  264. raw.add(count.getSchet().getNaimenovanie());
  265. raw.add(count.getSchet().getClosed());
  266. data.add(raw);
  267. }
  268. } catch (RemoteException e) {
  269. // TODO Auto-generated catch block
  270. e.printStackTrace();
  271. }
  272. return data;
  273. }
  274. /**
  275. * Used for lazy data loading to the table. Fills the data only after first frame shoving
  276. */
  277. public void fillCountsTable()
  278. {
  279. getDatabaseTableModel().setData(getDataFromDb());
  280. getDatabaseTableModel().fireTableDataChanged();
  281. }
  282. /**
  283. * This method initializes jTable
  284. *
  285. * @return javax.swing.JTable
  286. */
  287. private JTable getJTable() {
  288. if (jTable == null) {
  289. //?????? ?????? ??????.
  290. DatabaseTableModel tableModel = new DatabaseTableModel(true);
  291. final List<String> names = new ArrayList<String>();
  292. names.add("");
  293. names.add(properties.getProperty("bank"));
  294. names.add(properties.getProperty("currency"));
  295. names.add(properties.getProperty("count"));
  296. names.add(properties.getProperty("countName"));
  297. names.add(properties.getProperty("closed"));
  298. tableModel.setColumnNames(names);
  299. final List<Class> types = new ArrayList<Class>(0);
  300. types.add(Long.class);
  301. types.add(Long.class);
  302. types.add(Long.class);
  303. types.add(String.class);
  304. types.add(String.class);
  305. types.add(JCheckBox.class);
  306. tableModel.setColumnTypes(types);
  307. //Gets all the counts during loading!
  308. //tableModel.setData(getDataFromDb());
  309. jTable = new JTable(tableModel);
  310. DefaultTableColumnModel columns = (DefaultTableColumnModel) jTable.getColumnModel();
  311. TableColumn tc = columns.getColumn(0);
  312. tc.setPreferredWidth(0);
  313. tc = columns.getColumn(1);
  314. tc.setPreferredWidth(200);
  315. tc = columns.getColumn(2);
  316. tc.setPreferredWidth(100);
  317. tc = columns.getColumn(3);
  318. tc.setPreferredWidth(500);
  319. tc = columns.getColumn(4);
  320. tc.setPreferredWidth(400);
  321. tc = columns.getColumn(5);
  322. tc.setPreferredWidth(100);
  323. jTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
  324. jTable.setBounds(new Rectangle(15, 15, 455, 420));
  325. jTable.setFillsViewportHeight(true);
  326. //User can select only one row.
  327. jTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  328. jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
  329. @Override
  330. public void valueChanged(ListSelectionEvent e) {
  331. int selectedRow = getJTable().getSelectionModel().getLeadSelectionIndex();
  332. Long id = (Long)getJTable().getModel().getValueAt(selectedRow, 0);
  333. Bank bank = (Bank)getJTable().getModel().getValueAt(selectedRow, 1);
  334. Valuta valuta = (Valuta)getJTable().getModel().getValueAt(selectedRow, 2);
  335. String count = (String)getJTable().getModel().getValueAt(selectedRow, 3);
  336. String naimenovanie = (String)getJTable().getModel().getValueAt(selectedRow, 4);
  337. Boolean closed = (Boolean)getJTable().getModel().getValueAt(selectedRow, 5);
  338. selectedCount = new Schet();
  339. selectedCount.setId(id);
  340. selectedCount.setBank(bank);
  341. selectedCount.setValuta(valuta);
  342. selectedCount.setSchet(count);
  343. selectedCount.setNaimenovanie(naimenovanie);
  344. selectedCount.setClosed(closed);
  345. getBankComboBox().setSelectedItem(bank);
  346. getValComboBox().setSelectedItem(valuta);
  347. getCountTextField().setText( count );
  348. getCountNameTextField().setText( naimenovanie );
  349. getClosedCheckBox().setSelected(closed);
  350. }
  351. });
  352. }
  353. return jTable;
  354. }
  355. private DatabaseTableModel getDatabaseTableModel(){
  356. DatabaseTableModel model = (DatabaseTableModel)jTable.getModel();
  357. return model;
  358. }
  359. /**
  360. * This method initializes cancelButton
  361. *
  362. * @return javax.swing.JButton
  363. */
  364. private JButton getCancelButton() {
  365. if (cancelButton == null) {
  366. cancelButton = new JButton();
  367. cancelButton.setBounds(new Rectangle(315, 466, 140, 26));
  368. cancelButton.setText(properties.getProperty("cancel"));
  369. cancelButton.setEnabled(false);
  370. cancelButton.setVisible(false);
  371. cancelButton.addActionListener(new java.awt.event.ActionListener() {
  372. public void actionPerformed(java.awt.event.ActionEvent e) {
  373. //active
  374. editButton.setEnabled(true);
  375. editButton.setVisible(true);
  376. //not active
  377. delButton.setVisible(false);
  378. delButton.setEnabled(false);
  379. addButton.setVisible(false);
  380. addButton.setEnabled(false);
  381. cancelButton.setVisible(false);
  382. cancelButton.setEnabled(false);
  383. //change frame size
  384. setSize(675, 535);
  385. //clear fields
  386. countTextField.setText(null);
  387. countNameTextField.setText(null);
  388. bankComboBox.removeAllItems();
  389. valComboBox.removeAllItems();
  390. //Clear highlighting the selected row in the table.
  391. int leadSelectionInd = getJTable().getSelectionModel().getLeadSelectionIndex();
  392. getJTable().getSelectionModel().removeSelectionInterval(leadSelectionInd, leadSelectionInd);
  393. }
  394. });
  395. }
  396. return cancelButton;
  397. }
  398. /**
  399. * This method initializes editButton1
  400. *
  401. * @return javax.swing.JButton
  402. */
  403. private JButton getEditButton() {
  404. if (editButton == null) {
  405. editButton = new JButton();
  406. editButton.setBounds(new Rectangle(15, 466, 140, 26));
  407. editButton.setText(properties.getProperty("edit"));
  408. editButton.addActionListener(new java.awt.event.ActionListener() {
  409. public void actionPerformed(java.awt.event.ActionEvent e) {
  410. //not active
  411. editButton.setEnabled(false);
  412. editButton.setVisible(false);
  413. //active
  414. addButton.setVisible(true);
  415. addButton.setEnabled(true);
  416. delButton.setVisible(true);
  417. delButton.setEnabled(true);
  418. cancelButton.setVisible(true);
  419. cancelButton.setEnabled(true);
  420. //change frame size
  421. setSize(675, 600);
  422. }
  423. });
  424. }
  425. return editButton;
  426. }
  427. /**
  428. * This method initializes closedCheckBox
  429. *
  430. * @return javax.swing.JCheckBox
  431. */
  432. private JCheckBox getClosedCheckBox() {
  433. if (closedCheckBox == null) {
  434. closedCheckBox = new JCheckBox();
  435. closedCheckBox.setBounds(new Rectangle(612, 530, 21, 21));
  436. }
  437. return closedCheckBox;
  438. }
  439. /**
  440. * This method initializes bankComboBox
  441. *
  442. * @return javax.swing.JComboBox
  443. * @throws InvocationTargetException
  444. * @throws IllegalAccessException
  445. * @throws NoSuchMethodException
  446. * @throws IllegalArgumentException
  447. * @throws SecurityException
  448. */
  449. private JComboBox getBankComboBox() {
  450. if (bankComboBox == null) {
  451. bankComboBox = new JComboBox();
  452. bankComboBox.setBounds(new Rectangle(15, 530, 120, 20));
  453. List<Bank> unpacked = new ArrayList<Bank>();
  454. try {
  455. List<BankBean> banksList = factory.getBankServiceSLSB().findAll();
  456. for(BankBean bean: banksList){
  457. unpacked.add(bean.getBank());
  458. }
  459. Object[] banks = unpacked.toArray();
  460. DefaultComboBoxModel model = new DefaultComboBoxModel(banks);
  461. bankComboBox.setModel(model);
  462. } catch (RemoteException e) {
  463. JOptionPane.showMessageDialog(null, e.getCause());
  464. e.printStackTrace();
  465. }
  466. }
  467. return bankComboBox;
  468. }
  469. /**
  470. * This method initializes valComboBox
  471. *
  472. * @return javax.swing.JComboBox
  473. */
  474. private JComboBox getValComboBox() {
  475. if (valComboBox == null) {
  476. valComboBox = new JComboBox();
  477. valComboBox.setBounds(new Rectangle(150, 530, 60, 20));
  478. List<Valuta> unpacked = new ArrayList<Valuta>();
  479. try {
  480. List<ValutaBean> currencies = factory.getValutaServiceSLSB().findAll();
  481. for(ValutaBean bean: currencies){
  482. unpacked.add(bean.getValuta());
  483. }
  484. Object[] curr = unpacked.toArray();
  485. DefaultComboBoxModel model = new DefaultComboBoxModel(curr);
  486. valComboBox.setModel(model);
  487. } catch (RemoteException e) {
  488. JOptionPane.showMessageDialog(null, e.getCause());
  489. e.printStackTrace();
  490. }
  491. }
  492. return valComboBox;
  493. }
  494. /**
  495. * This method initializes delButton
  496. *
  497. * @return javax.swing.JButton
  498. */
  499. private JButton getDelButton() {
  500. if (delButton == null) {
  501. delButton = new JButton();
  502. delButton.setBounds(new Rectangle(165, 466, 140, 26));
  503. delButton.setEnabled(false);
  504. delButton.setText(properties.getProperty("delete"));
  505. delButton.setVisible(false);
  506. delButton.addActionListener(new java.awt.event.ActionListener() {
  507. public void actionPerformed(java.awt.event.ActionEvent e) {
  508. //delete selected field
  509. getCountTextField().setText( "" );
  510. getCountNameTextField().setText( "" );
  511. if(selectedCount == null ){
  512. JOptionPane.showMessageDialog(getJTable(), properties.getProperty("countNotSelectedToDelete"));
  513. }else{
  514. try{
  515. factory.getSchetServiceSLSB().delete(new SchetBean(selectedCount));
  516. JOptionPane.showMessageDialog(getJTable(), properties.getProperty("count")+" "+selectedCount.getSchet()+properties.getProperty("deleted"));
  517. selectedCount = null;
  518. //TODO repaint the table.
  519. }catch(Exception ex){
  520. JOptionPane.showMessageDialog(getJTable(), properties.getProperty("count")+" "+selectedCount.getSchet()+properties.getProperty("notDeleted"));
  521. }
  522. }
  523. //update jTable
  524. getDatabaseTableModel().setData(getDataFromDb());
  525. int selectedRow = getJTable().getSelectionModel().getLeadSelectionIndex();
  526. getDatabaseTableModel().fireTableRowsDeleted(selectedRow, selectedRow);
  527. }
  528. });
  529. }
  530. return delButton;
  531. }
  532. /**
  533. * This class used to render RadioButtons in the cells of jTable
  534. *
  535. * @author Ivan Burtsev
  536. */
  537. class RadioButtonRenderer implements TableCellRenderer
  538. {
  539. public Component getTableCellRendererComponent(JTable table,
  540. Object value, boolean isSelected, boolean hasFocus, int row,
  541. int column) {
  542. if (value == null)
  543. {
  544. return null;
  545. }
  546. if (hasFocus)
  547. {
  548. countTextField.setText(table.getValueAt(row, 2).toString());
  549. countNameTextField.setText(table.getValueAt(row, 3).toString());
  550. if (bankComboBox.getItemAt(0) == null)
  551. {
  552. bankComboBox.addItem(table.getValueAt(row, 0));
  553. }else {
  554. bankComboBox.removeAllItems();
  555. bankComboBox.addItem(table.getValueAt(row, 0));
  556. }
  557. if (valComboBox.getItemAt(0) == null)
  558. {
  559. valComboBox.addItem(table.getValueAt(row, 1));
  560. }
  561. else {
  562. valComboBox.removeAllItems();
  563. valComboBox.addItem(table.getValueAt(row, 1));
  564. }
  565. delButton.setEnabled(true);
  566. }
  567. return (Component) value;
  568. }
  569. }
  570. /**
  571. * This class used to edit RadioButtons in the cells of jTable
  572. *
  573. * @author Andrey Sirak
  574. */
  575. class RadioButtonEditor extends DefaultCellEditor implements ItemListener {
  576. /**
  577. *
  578. */
  579. private static final long serialVersionUID = 1L;
  580. private JRadioButton button;
  581. public RadioButtonEditor(JCheckBox checkBox) {
  582. super(checkBox);
  583. }
  584. @Override
  585. public Component getTableCellEditorComponent(JTable table, Object value,
  586. boolean isSelected, int row, int column) {
  587. if (value == null)
  588. return null;
  589. button = (JRadioButton) value;
  590. button.addItemListener(this);
  591. return (Component) value;
  592. }
  593. @Override
  594. public Object getCellEditorValue() {
  595. button.removeItemListener(this);
  596. return button;
  597. }
  598. public void itemStateChanged(ItemEvent e) {
  599. super.fireEditingStopped();
  600. }
  601. }
  602. /**
  603. * This class used to render checkboxes in jTable
  604. *
  605. * @author Ivan Burtsev
  606. */
  607. public class CheckBoxRenderer extends JCheckBox implements TableCellRenderer
  608. {
  609. private static final long serialVersionUID = 1L;
  610. public CheckBoxRenderer() {
  611. super();
  612. }
  613. public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
  614. if (isSelected) {
  615. setForeground(table.getSelectionForeground());
  616. super.setBackground(table.getSelectionBackground() );
  617. } else {
  618. setForeground(table.getForeground());
  619. setBackground(table.getBackground());
  620. }
  621. //setSelected(((Boolean)value).booleanValue() ? false : true);
  622. return this;
  623. }
  624. }
  625. }
  626. // @jve:decl-index=0:visual-constraint="8,-87"