Projects STRLCPY autorize Commits cd74b0d1
🤬
  • ■ ■ ■ ■ ■
    gui/table.py
    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
  • ■ ■ ■ ■ ■ ■
    gui/tabs.py
    skipped 22 lines
    23 23   
    24 24  from thread import start_new_thread
    25 25   
    26  -from table import Table, LogEntry, TableRowFilter
     26 +from table import Table, LogEntry, TableRowFilter, UpdateTableEDT
    27 27  from helpers.filters import expand, collapse
    28 28  from javax.swing import KeyStroke
    29 29  from javax.swing import JTable
    30 30  from javax.swing import AbstractAction
    31 31  from java.awt.event import KeyEvent
    32 32  from java.awt.event import InputEvent
     33 +from javax.swing import SwingUtilities
     34 +from javax.swing import ListSelectionModel
     35 +from javax.swing.ListSelectionModel import MULTIPLE_INTERVAL_SELECTION
    33 36   
    34 37   
    35 38  class ITabImpl(ITab):
    skipped 88 lines
    124 127   self._extender.menu.add(copyURLitem)
    125 128   self._extender.menu.add(retestSelecteditem)
    126 129   self._extender.menu.add(retestAllitem)
    127  - # self.menu.add(deleteSelectedItem) disabling this feature until bug will be fixed.
     130 + self._extender.menu.add(deleteSelectedItem) # disabling this feature until bug will be fixed.
    128 131   message_editor = MessageEditor(self._extender)
    129 132   
    130 133   self._extender.tabs = JTabbedPane()
    skipped 87 lines
    218 221   start_new_thread(retestAllRequests, (self._extender,))
    219 222   
    220 223   
    221  -class DeleteSelectedRequest(ActionListener):
     224 +class DeleteSelectedRequest(AbstractAction):
    222 225   def __init__(self, extender):
    223 226   self._extender = extender
    224 227   
    225 228   def actionPerformed(self, e):
    226  - # TODO: Implement this function.
    227  - pass
     229 + # Its ready to delete multiple rows at a time once we can figure out how to select multiple row.
     230 + rows = self._extender.logTable.getSelectedRows()
     231 + if len(rows) != 0:
     232 + rows = [self._extender.logTable.convertRowIndexToModel(row) for row in rows]
     233 + SwingUtilities.invokeLater(lambda: self._extender.tableModel.removeRows(rows))
    228 234   
    229 235  class CopySelectedURL(ActionListener):
    230 236   def __init__(self, extender):
    skipped 71 lines
Please wait...
Page is in error, reload to recover