| skipped 13 lines |
14 | 14 | | from java.lang import Integer |
15 | 15 | | from java.lang import String |
16 | 16 | | from java.awt import Color |
| 17 | + | from javax.swing import ListSelectionModel |
| 18 | + | from javax.swing.event import ListSelectionListener |
17 | 19 | | |
18 | 20 | | from helpers.filters import expand, collapse |
19 | 21 | | |
| skipped 72 lines |
92 | 94 | | def __init__(self, extender): |
93 | 95 | | self._extender = extender |
94 | 96 | | |
| 97 | + | def removeRows(self, rows): |
| 98 | + | rows.sort(reverse=True) |
| 99 | + | for row in rows: |
| 100 | + | self._extender._log.pop(row) |
| 101 | + | self.fireTableDataChanged() |
| 102 | + | |
95 | 103 | | def getRowCount(self): |
96 | 104 | | try: |
97 | 105 | | return self._extender._log.size() |
| skipped 44 lines |
142 | 150 | | return logEntry._enfocementStatusUnauthorized |
143 | 151 | | return "" |
144 | 152 | | |
| 153 | + | class TableSelectionListener(ListSelectionListener): |
| 154 | + | """Class Responsible for the multi-row deletion""" |
| 155 | + | def __init__(self, extender): |
| 156 | + | self._extender = extender |
| 157 | + | |
| 158 | + | def valueChanged(self, e): |
| 159 | + | rows = [i for i in self._table.getSelectedRows()] |
| 160 | + | self._extender.tableModel.removeRows(rows) |
| 161 | + | |
145 | 162 | | class Table(JTable): |
146 | 163 | | def __init__(self, extender): |
147 | 164 | | self._extender = extender |
| skipped 2 lines |
150 | 167 | | self.addMouseListener(Mouseclick(self._extender)) |
151 | 168 | | self.getColumnModel().getColumn(0).setPreferredWidth(450) |
152 | 169 | | self.setRowSelectionAllowed(True) |
| 170 | + | # Enables multi-row selection |
| 171 | + | self.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) |
153 | 172 | | |
154 | 173 | | def prepareRenderer(self, renderer, row, col): |
155 | 174 | | comp = JTable.prepareRenderer(self, renderer, row, col) |
156 | 175 | | value = self._extender.tableModel.getValueAt(self._extender.logTable.convertRowIndexToModel(row), col) |
157 | | - | |
158 | 176 | | if col == 6 or col == 7: |
159 | 177 | | if value == self._extender.BYPASSSED_STR: |
160 | 178 | | comp.setBackground(Color(255, 153, 153)) |
| skipped 8 lines |
169 | 187 | | comp.setForeground(Color.BLACK) |
170 | 188 | | comp.setBackground(Color.WHITE) |
171 | 189 | | |
172 | | - | selectedRow = self._extender.logTable.getSelectedRow() |
173 | | - | if selectedRow == row: |
| 190 | + | selectedRows = self._extender.logTable.getSelectedRows() |
| 191 | + | if row in selectedRows: |
174 | 192 | | comp.setBackground(Color(201, 215, 255)) |
175 | 193 | | comp.setForeground(Color.BLACK) |
176 | | - | |
177 | 194 | | |
178 | 195 | | return comp |
179 | 196 | | |
| skipped 97 lines |