1 package fr.ifremer.quadrige3.ui.swing.table.action;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import fr.ifremer.quadrige3.core.dao.technical.Assert;
25 import fr.ifremer.quadrige3.ui.swing.table.AbstractTableUIHandler;
26 import fr.ifremer.quadrige3.ui.swing.table.RowNumberColumn;
27 import org.jdesktop.swingx.action.AbstractActionExt;
28 import org.nuiton.i18n.I18n;
29
30 import java.awt.event.ActionEvent;
31
32
33
34
35 public class RowNumberColumnAction extends AbstractActionExt {
36
37 private final AbstractTableUIHandler tableUIHandler;
38 private RowNumberColumn rowNumberColumn;
39
40 public RowNumberColumnAction(AbstractTableUIHandler tableUIHandler) {
41 super(I18n.t("quadrige3.table.rowNumberColumn"));
42 this.tableUIHandler = tableUIHandler;
43 setSelected(tableUIHandler.hasRowNumberColumn());
44 setStateAction();
45 }
46
47 @Override
48 public void actionPerformed(ActionEvent e) {
49 if (isSelected()) {
50 addRowNumbers();
51 } else {
52 removeRowNumbers();
53 }
54 }
55
56
57
58
59 private void addRowNumbers() {
60 if (!tableUIHandler.hasRowNumberColumn())
61 rowNumberColumn = (RowNumberColumn) tableUIHandler.addFixedColumn(RowNumberColumn.class);
62 }
63
64 private void removeRowNumbers() {
65 Assert.notNull(rowNumberColumn);
66 tableUIHandler.removeFixedColumn(rowNumberColumn);
67 }
68
69 }