Skip to content

Commit

Permalink
定义数据看板表格排序器,根据颜色字段等级排序
Browse files Browse the repository at this point in the history
  • Loading branch information
vaycore committed May 7, 2024
1 parent fe76181 commit a4c9376
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions src/main/java/burp/vaycore/onescan/ui/widget/TaskTable.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

Expand Down Expand Up @@ -90,6 +91,12 @@ public TaskTable() {
setModel(mTaskTableModel);
setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
mTableRowSorter = new TableRowSorter<>(mTaskTableModel);
// 颜色字段等级排序
mTableRowSorter.setComparator(11, (Comparator<String>) (left, right) -> {
int leftLevel = findColorLevelByName(left);
int rightLevel = findColorLevelByName(right);
return Integer.compare(leftLevel, rightLevel);
});
setRowSorter(mTableRowSorter);
// 不可拖动表头
getTableHeader().setReorderingAllowed(false);
Expand Down Expand Up @@ -407,7 +414,7 @@ public interface OnTaskTableEventListener {
public static class TaskTableModel extends AbstractTableModel {

public static final String[] COLUMN_NAMES = new String[]{
"#", "From", "Method", "Host", "Url", "Title", "IP", "Status", "Length", "Fingerprint", "Comment", "Color-level"};
"#", "From", "Method", "Host", "Url", "Title", "IP", "Status", "Length", "Fingerprint", "Comment", "Color"};
private final ArrayList<TaskData> mData;
private final AtomicInteger mCounter;

Expand Down Expand Up @@ -460,15 +467,6 @@ public int getColumnCount() {
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
TaskData data = mData.get(rowIndex);
String fieldName = ClassUtils.getNameByFieldId(TaskData.class, columnIndex);
if ("highlight".equals(fieldName)) {
int level = findColorLevelByName(data.getHighlight());
String levelStr = String.valueOf(level == 0 ? "" : level);
if (StringUtils.isNotEmpty(levelStr)) {
return String.format("%s(%s)", levelStr, data.getHighlight());
}
return levelStr;
}
return ClassUtils.getValueByFieldId(data, columnIndex);
}

Expand Down

0 comments on commit a4c9376

Please sign in to comment.