populate hits table

This commit is contained in:
Zlatin Balevsky
2019-07-09 21:05:49 +01:00
parent ce660cefe9
commit 1390983732
3 changed files with 37 additions and 2 deletions

View File

@@ -60,6 +60,21 @@ class ContentPanelController {
model.regex = true model.regex = true
} }
@ControllerAction
void refresh() {
model.refresh()
}
@ControllerAction
void trust() {
}
@ControllerAction
void distrust() {
}
void saveMuWireSettings() { void saveMuWireSettings() {
File f = new File(core.home, "MuWire.properties") File f = new File(core.home, "MuWire.properties")
f.withOutputStream { f.withOutputStream {

View File

@@ -27,6 +27,7 @@ class ContentPanelModel {
@Observable boolean regex @Observable boolean regex
@Observable boolean deleteButtonEnabled @Observable boolean deleteButtonEnabled
@Observable boolean trustButtonsEnabled
void mvcGroupInit(Map<String,String> args) { void mvcGroupInit(Map<String,String> args) {
contentManager = application.context.get("core").contentManager contentManager = application.context.get("core").contentManager

View File

@@ -8,6 +8,7 @@ import javax.swing.JDialog
import javax.swing.ListSelectionModel import javax.swing.ListSelectionModel
import javax.swing.SwingConstants import javax.swing.SwingConstants
import com.muwire.core.content.Matcher
import com.muwire.core.content.RegexMatcher import com.muwire.core.content.RegexMatcher
import java.awt.BorderLayout import java.awt.BorderLayout
@@ -30,6 +31,7 @@ class ContentPanelView {
def rulesTable def rulesTable
def ruleTextField def ruleTextField
def lastRulesSortEvent def lastRulesSortEvent
def hitsTable
void initUI() { void initUI() {
mainFrame = application.windowManager.findWindow("main-frame") mainFrame = application.windowManager.findWindow("main-frame")
@@ -61,7 +63,21 @@ class ContentPanelView {
} }
} }
panel { panel {
// TODO: hits table borderLayout()
scrollPane(constraints : BorderLayout.CENTER) {
hitsTable = table(id : "hits-table", autoCreateRowSorter : true) {
tableModel(list : model.hits) {
closureColumn(header : "Searcher", type : String, read : {row -> row.persona.getHumanReadableName()})
closureColumn(header : "Keywords", type : String, read : {row -> row.keywords.join(" ")})
closureColumn(header : "Date", type : String, read : {row -> String.valueOf(new Date(row.timestamp))})
}
}
}
panel (constraints : BorderLayout.SOUTH) {
button(text : "Refresh", refreshAction)
button(text : "Trust", enabled : bind {model.trustButtonsEnabled}, trustAction)
button(text : "Distrust", enabled : bind {model.trustButtonsEnabled}, distrustAction)
}
} }
} }
} }
@@ -88,7 +104,10 @@ class ContentPanelView {
return return
} else { } else {
model.deleteButtonEnabled = true model.deleteButtonEnabled = true
// TODO: populate hits table model.hits.clear()
Matcher matcher = model.rules[selectedRow]
model.hits.addAll(matcher.matches)
hitsTable.model.fireTableDataChanged()
} }
}) })