mirror of https://github.com/zlatinb/muwire
display an icon if a file is available locally in tree views GitHub issue #72
parent
491da9ff3a
commit
d39f184a44
|
@ -14,8 +14,6 @@ import com.muwire.core.search.BrowseStatus
|
|||
import javax.annotation.Nonnull
|
||||
import javax.swing.SwingWorker
|
||||
import javax.swing.tree.DefaultMutableTreeNode
|
||||
import javax.swing.tree.DefaultTreeModel
|
||||
import javax.swing.tree.TreeModel
|
||||
|
||||
@ArtifactProviderFor(GriffonModel)
|
||||
class BrowseModel {
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 278 B |
|
@ -122,6 +122,7 @@ class BrowseView {
|
|||
}
|
||||
|
||||
// results tree
|
||||
resultsTree.setSharedPredicate(controller.core.fileManager::isShared)
|
||||
resultsTree.addTreeExpansionListener(treeExpansions)
|
||||
resultsTree.addMouseListener(mouseListener)
|
||||
resultsTree.addTreeSelectionListener({
|
||||
|
|
|
@ -345,6 +345,7 @@ class SearchTabView {
|
|||
}
|
||||
|
||||
// results tree
|
||||
resultTree.setSharedPredicate(model.core.fileManager::isShared)
|
||||
resultTree.addMouseListener(resultsMouseListener)
|
||||
resultTree.addTreeSelectionListener {
|
||||
model.downloadActionEnabled = false
|
||||
|
|
|
@ -1,21 +1,26 @@
|
|||
package com.muwire.gui
|
||||
|
||||
import com.muwire.core.InfoHash
|
||||
import com.muwire.core.search.UIResultEvent
|
||||
|
||||
import javax.swing.JTree
|
||||
import javax.swing.tree.TreeModel
|
||||
import javax.swing.tree.TreePath
|
||||
import java.util.function.Predicate
|
||||
|
||||
class ResultTree extends JTree{
|
||||
|
||||
ResultTree(TreeModel model) {
|
||||
super(model)
|
||||
setCellRenderer(new ResultTreeRenderer())
|
||||
setRootVisible(false)
|
||||
setLargeModel(true)
|
||||
setExpandsSelectedPaths(true)
|
||||
}
|
||||
|
||||
void setSharedPredicate(Predicate<InfoHash> predicate) {
|
||||
setCellRenderer(new ResultTreeRenderer(predicate))
|
||||
}
|
||||
|
||||
List<ResultAndTargets> decorateResults(List<UIResultEvent> results) {
|
||||
List<ResultAndTargets> rv = new ArrayList<>()
|
||||
TreePath[] paths = getSelectionPaths()
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package com.muwire.gui
|
||||
|
||||
import com.muwire.core.InfoHash
|
||||
import com.muwire.core.search.UIResultEvent
|
||||
import com.muwire.core.util.DataUtil
|
||||
|
||||
import java.util.function.Predicate
|
||||
|
||||
import static com.muwire.gui.Translator.trans
|
||||
|
||||
import javax.swing.ImageIcon
|
||||
|
@ -11,13 +14,16 @@ import javax.swing.tree.DefaultTreeCellRenderer
|
|||
import java.awt.Component
|
||||
|
||||
class ResultTreeRenderer extends DefaultTreeCellRenderer {
|
||||
private final ImageIcon commentIcon
|
||||
private final ImageIcon commentIcon, sharedIcon
|
||||
private final String bShort
|
||||
private final StringBuffer sb = new StringBuffer()
|
||||
private final Predicate<InfoHash> sharedPredicate
|
||||
|
||||
ResultTreeRenderer() {
|
||||
ResultTreeRenderer(Predicate<InfoHash> sharedPredicate) {
|
||||
commentIcon = new ImageIcon((URL) PathTreeRenderer.class.getResource("/comment.png"))
|
||||
sharedIcon = new ImageIcon((URL) PathTreeRenderer.class.getResource("/yes.png"))
|
||||
bShort = trans("BYTES_SHORT")
|
||||
this.sharedPredicate = sharedPredicate
|
||||
}
|
||||
|
||||
Component getTreeCellRendererComponent(JTree tree, Object value,
|
||||
|
@ -38,7 +44,9 @@ class ResultTreeRenderer extends DefaultTreeCellRenderer {
|
|||
setText(HTMLSanitizer.sanitize("$result.name (${sb.toString()})"))
|
||||
setEnabled(true)
|
||||
|
||||
if (result.comment)
|
||||
if (sharedPredicate.test(result.infohash))
|
||||
setIcon(sharedIcon)
|
||||
else if (result.comment)
|
||||
setIcon(commentIcon)
|
||||
|
||||
this
|
||||
|
|
Loading…
Reference in New Issue