Skip to content

Commit

Permalink
Merge pull request #105 from terminalJunki3/delete_feature
Browse files Browse the repository at this point in the history
Delete feature
  • Loading branch information
Quitten authored Jan 21, 2023
2 parents 03a5e9f + 1eb4d01 commit cd74b0d
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 11 deletions.
27 changes: 22 additions & 5 deletions gui/table.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
from java.lang import Integer
from java.lang import String
from java.awt import Color
from javax.swing import ListSelectionModel
from javax.swing.event import ListSelectionListener

from helpers.filters import expand, collapse

Expand Down Expand Up @@ -91,7 +93,13 @@ def itemStateChanged(self, e):
class TableModel(AbstractTableModel):
def __init__(self, extender):
self._extender = extender


def removeRows(self, rows):
rows.sort(reverse=True)
for row in rows:
self._extender._log.pop(row)
self.fireTableDataChanged()

def getRowCount(self):
try:
return self._extender._log.size()
Expand Down Expand Up @@ -142,6 +150,15 @@ def getValueAt(self, rowIndex, columnIndex):
return logEntry._enfocementStatusUnauthorized
return ""

class TableSelectionListener(ListSelectionListener):
"""Class Responsible for the multi-row deletion"""
def __init__(self, extender):
self._extender = extender

def valueChanged(self, e):
rows = [i for i in self._table.getSelectedRows()]
self._extender.tableModel.removeRows(rows)

class Table(JTable):
def __init__(self, extender):
self._extender = extender
Expand All @@ -150,11 +167,12 @@ def __init__(self, extender):
self.addMouseListener(Mouseclick(self._extender))
self.getColumnModel().getColumn(0).setPreferredWidth(450)
self.setRowSelectionAllowed(True)
# Enables multi-row selection
self.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)

def prepareRenderer(self, renderer, row, col):
comp = JTable.prepareRenderer(self, renderer, row, col)
value = self._extender.tableModel.getValueAt(self._extender.logTable.convertRowIndexToModel(row), col)

if col == 6 or col == 7:
if value == self._extender.BYPASSSED_STR:
comp.setBackground(Color(255, 153, 153))
Expand All @@ -169,12 +187,11 @@ def prepareRenderer(self, renderer, row, col):
comp.setForeground(Color.BLACK)
comp.setBackground(Color.WHITE)

selectedRow = self._extender.logTable.getSelectedRow()
if selectedRow == row:
selectedRows = self._extender.logTable.getSelectedRows()
if row in selectedRows:
comp.setBackground(Color(201, 215, 255))
comp.setForeground(Color.BLACK)


return comp

def changeSelection(self, row, col, toggle, extend):
Expand Down
18 changes: 12 additions & 6 deletions gui/tabs.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,16 @@

from thread import start_new_thread

from table import Table, LogEntry, TableRowFilter
from table import Table, LogEntry, TableRowFilter, UpdateTableEDT
from helpers.filters import expand, collapse
from javax.swing import KeyStroke
from javax.swing import JTable
from javax.swing import AbstractAction
from java.awt.event import KeyEvent
from java.awt.event import InputEvent
from javax.swing import SwingUtilities
from javax.swing import ListSelectionModel
from javax.swing.ListSelectionModel import MULTIPLE_INTERVAL_SELECTION


class ITabImpl(ITab):
Expand All @@ -52,7 +55,7 @@ def draw(self):

self._extender.logTable = Table(self._extender)

tableWidth = self._extender.logTable.getPreferredSize().width
tableWidth = self._extender.logTable.getPreferredSize().width
self._extender.logTable.getColumn("ID").setPreferredWidth(Math.round(tableWidth / 50 * 2))
self._extender.logTable.getColumn("Method").setPreferredWidth(Math.round(tableWidth / 50 * 3))
self._extender.logTable.getColumn("URL").setPreferredWidth(Math.round(tableWidth / 50 * 25))
Expand Down Expand Up @@ -124,7 +127,7 @@ def draw(self):
self._extender.menu.add(copyURLitem)
self._extender.menu.add(retestSelecteditem)
self._extender.menu.add(retestAllitem)
# self.menu.add(deleteSelectedItem) disabling this feature until bug will be fixed.
self._extender.menu.add(deleteSelectedItem) # disabling this feature until bug will be fixed.
message_editor = MessageEditor(self._extender)

self._extender.tabs = JTabbedPane()
Expand Down Expand Up @@ -218,13 +221,16 @@ def actionPerformed(self, e):
start_new_thread(retestAllRequests, (self._extender,))


class DeleteSelectedRequest(ActionListener):
class DeleteSelectedRequest(AbstractAction):
def __init__(self, extender):
self._extender = extender

def actionPerformed(self, e):
# TODO: Implement this function.
pass
# Its ready to delete multiple rows at a time once we can figure out how to select multiple row.
rows = self._extender.logTable.getSelectedRows()
if len(rows) != 0:
rows = [self._extender.logTable.convertRowIndexToModel(row) for row in rows]
SwingUtilities.invokeLater(lambda: self._extender.tableModel.removeRows(rows))

class CopySelectedURL(ActionListener):
def __init__(self, extender):
Expand Down

0 comments on commit cd74b0d

Please sign in to comment.