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()
|
||||
fileNode.setUserObject(event.name)
|
||||
fileNode.setUserObject(event)
|
||||
node.add(fileNode)
|
||||
}
|
||||
}
|
|
@ -114,6 +114,7 @@ class BrowseView {
|
|||
// results tree
|
||||
JTree resultsTree = builder.getVariable("results-tree")
|
||||
resultsTree.addTreeExpansionListener(treeExpansions)
|
||||
resultsTree.setCellRenderer(new ResultTreeRenderer())
|
||||
|
||||
// results table
|
||||
def centerRenderer = new DefaultTableCellRenderer()
|
||||
|
@ -292,6 +293,14 @@ class BrowseView {
|
|||
}
|
||||
|
||||
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()
|
||||
if (rows.length == 0)
|
||||
return null
|
||||
|
@ -306,6 +315,7 @@ class BrowseView {
|
|||
rv << model.results[i]
|
||||
rv
|
||||
}
|
||||
}
|
||||
|
||||
def showTree = {
|
||||
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