diff --git a/src/main/java/hae/HaE.java b/src/main/java/hae/HaE.java index 832fc35..ecc9e36 100644 --- a/src/main/java/hae/HaE.java +++ b/src/main/java/hae/HaE.java @@ -20,7 +20,7 @@ public class HaE implements BurpExtension { public void initialize(MontoyaApi api) { // 设置扩展名称 api.extension().setName("HaE - Highlighter and Extractor"); - String version = "4.0.2"; + String version = "4.0.3"; // 加载扩展后输出的项目信息 Logging logging = api.logging(); diff --git a/src/main/java/hae/component/board/table/Datatable.java b/src/main/java/hae/component/board/table/Datatable.java index 53cc373..5ac693b 100644 --- a/src/main/java/hae/component/board/table/Datatable.java +++ b/src/main/java/hae/component/board/table/Datatable.java @@ -51,6 +51,8 @@ public class Datatable extends JPanel { } private void initComponents(List dataList) { + dataTable.setRowSorter(sorter); + // 设置ID排序 sorter.setComparator(0, new Comparator() { @Override @@ -107,7 +109,6 @@ public class Datatable extends JPanel { JScrollPane scrollPane = new JScrollPane(dataTable); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - dataTable.setRowSorter(sorter); TableColumn idColumn = dataTable.getColumnModel().getColumn(0); idColumn.setPreferredWidth(50); idColumn.setMaxWidth(100); @@ -162,8 +163,8 @@ public class Datatable extends JPanel { } private void performSearch() { - RowFilter firstRowFilter = applyFirstSearchFilter(); - RowFilter secondRowFilter = applySecondFilter(); + RowFilter firstRowFilter = getObjectObjectRowFilter(searchField); + RowFilter secondRowFilter = getObjectObjectRowFilter(secondSearchField); if (searchField.getForeground().equals(Color.BLACK)) { sorter.setRowFilter(firstRowFilter); if (secondSearchField.getForeground().equals(Color.BLACK)) { @@ -175,7 +176,7 @@ public class Datatable extends JPanel { } } - private RowFilter applyFirstSearchFilter() { + private RowFilter getObjectObjectRowFilter(JTextField searchField) { return new RowFilter() { public boolean include(Entry entry) { String searchFieldTextText = searchField.getText(); @@ -187,32 +188,12 @@ public class Datatable extends JPanel { String entryValue = ((String) entry.getValue(1)).toLowerCase(); searchFieldTextText = searchFieldTextText.toLowerCase(); + boolean filterReturn = searchFieldTextText.isEmpty(); if (pattern != null) { - return searchFieldTextText.isEmpty() || pattern.matcher(entryValue).find() != searchMode.isSelected(); - } else { - return searchFieldTextText.isEmpty() || entryValue.contains(searchFieldTextText) != searchMode.isSelected(); - } - } - }; - } - - private RowFilter applySecondFilter() { - return new RowFilter() { - public boolean include(Entry entry) { - String searchFieldTextText = secondSearchField.getText(); - Pattern pattern = null; - try { - pattern = Pattern.compile(searchFieldTextText, Pattern.CASE_INSENSITIVE); - } catch (Exception ignored) { + filterReturn = filterReturn || pattern.matcher(entryValue).find() != searchMode.isSelected(); } - String entryValue = ((String) entry.getValue(1)).toLowerCase(); - searchFieldTextText = searchFieldTextText.toLowerCase(); - if (pattern != null) { - return searchFieldTextText.isEmpty() || pattern.matcher(entryValue).find(); - } else { - return searchFieldTextText.isEmpty() || entryValue.contains(searchFieldTextText); - } + return filterReturn || entryValue.contains(searchFieldTextText) != searchMode.isSelected(); } }; } @@ -248,22 +229,6 @@ public class Datatable extends JPanel { }); } - private String getTableData(JTable table) { - StringBuilder selectData = new StringBuilder(); - int rowCount = table.getRowCount(); - for (int i = 0; i < rowCount; i++) { - selectData.append(table.getValueAt(i, 1).toString()).append("\r\n"); - } - - if (!selectData.isEmpty()) { - selectData.delete(selectData.length() - 2, selectData.length()); - } else { - return ""; - } - - return selectData.toString(); - } - public String getSelectedDataAtTable(JTable table) { int[] selectRows = table.getSelectedRows(); StringBuilder selectData = new StringBuilder();