mirror of https://github.com/zlatinb/muwire
result tree renderer and selection code
parent
1007fe9f47
commit
d69143a107
|
@ -140,7 +140,7 @@ class BrowseModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
def fileNode = new DefaultMutableTreeNode()
|
def fileNode = new DefaultMutableTreeNode()
|
||||||
fileNode.setUserObject(event.name)
|
fileNode.setUserObject(event)
|
||||||
node.add(fileNode)
|
node.add(fileNode)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -114,6 +114,7 @@ class BrowseView {
|
||||||
// results tree
|
// results tree
|
||||||
JTree resultsTree = builder.getVariable("results-tree")
|
JTree resultsTree = builder.getVariable("results-tree")
|
||||||
resultsTree.addTreeExpansionListener(treeExpansions)
|
resultsTree.addTreeExpansionListener(treeExpansions)
|
||||||
|
resultsTree.setCellRenderer(new ResultTreeRenderer())
|
||||||
|
|
||||||
// results table
|
// results table
|
||||||
def centerRenderer = new DefaultTableCellRenderer()
|
def centerRenderer = new DefaultTableCellRenderer()
|
||||||
|
@ -292,6 +293,14 @@ class BrowseView {
|
||||||
}
|
}
|
||||||
|
|
||||||
def selectedResults() {
|
def selectedResults() {
|
||||||
|
if (model.treeVisible) {
|
||||||
|
JTree tree = builder.getVariable("results-tree")
|
||||||
|
List<UIResultEvent> rv = new ArrayList<>()
|
||||||
|
for (TreePath path : tree.getSelectionPaths()) {
|
||||||
|
TreeUtil.getLeafs(path.getLastPathComponent(), rv)
|
||||||
|
return rv
|
||||||
|
}
|
||||||
|
} else {
|
||||||
int[] rows = resultsTable.getSelectedRows()
|
int[] rows = resultsTable.getSelectedRows()
|
||||||
if (rows.length == 0)
|
if (rows.length == 0)
|
||||||
return null
|
return null
|
||||||
|
@ -306,6 +315,7 @@ class BrowseView {
|
||||||
rv << model.results[i]
|
rv << model.results[i]
|
||||||
rv
|
rv
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
def showTree = {
|
def showTree = {
|
||||||
model.treeVisible = true
|
model.treeVisible = true
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
package com.muwire.gui
|
||||||
|
|
||||||
|
import com.muwire.core.search.UIResultEvent
|
||||||
|
import com.muwire.core.util.DataUtil
|
||||||
|
|
||||||
|
import static com.muwire.gui.Translator.trans
|
||||||
|
|
||||||
|
import javax.swing.ImageIcon
|
||||||
|
import javax.swing.JTree
|
||||||
|
import javax.swing.tree.DefaultTreeCellRenderer
|
||||||
|
import java.awt.Component
|
||||||
|
|
||||||
|
class ResultTreeRenderer extends DefaultTreeCellRenderer {
|
||||||
|
private final ImageIcon commentIcon
|
||||||
|
private final String bShort
|
||||||
|
private final StringBuffer sb = new StringBuffer()
|
||||||
|
|
||||||
|
ResultTreeRenderer() {
|
||||||
|
commentIcon = new ImageIcon((URL) PathTreeRenderer.class.getResource("/comment.png"))
|
||||||
|
bShort = trans("BYTES_SHORT")
|
||||||
|
}
|
||||||
|
|
||||||
|
Component getTreeCellRendererComponent(JTree tree, Object value,
|
||||||
|
boolean sel, boolean expanded,
|
||||||
|
boolean leaf, int row, boolean hasFocus) {
|
||||||
|
def userObject = value.getUserObject()
|
||||||
|
|
||||||
|
def defaultRenderer = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus)
|
||||||
|
if (userObject == null || userObject instanceof String) {
|
||||||
|
userObject = HTMLSanitizer.sanitize(userObject)
|
||||||
|
defaultRenderer.setText(userObject)
|
||||||
|
return defaultRenderer
|
||||||
|
}
|
||||||
|
|
||||||
|
UIResultEvent result = (UIResultEvent) userObject
|
||||||
|
SizeFormatter.format(result.size, sb)
|
||||||
|
sb.append(bShort)
|
||||||
|
setText(HTMLSanitizer.sanitize("$result.name (${sb.toString()})"))
|
||||||
|
setEnabled(true)
|
||||||
|
|
||||||
|
if (result.comment)
|
||||||
|
setIcon(commentIcon)
|
||||||
|
|
||||||
|
this
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue