mirror of https://github.com/zlatinb/muwire
Color invisible parts of Library Tree view gray. GitHub issue #65
parent
d1cdc3efe3
commit
ff0f721731
1
TODO.md
1
TODO.md
|
@ -61,4 +61,3 @@
|
|||
|Rewrite H2HostCache to not use H2| N/A | Core | Optional|
|
||||
|I18n - convert all pluralizable strings to a pattern | N/A | GUI | Medium |
|
||||
|Regex queries| N/A | Core, Network, GUI, Plugin | High |
|
||||
|Color invisible part of Library path gray | 65 | GUI | Medium |
|
||||
|
|
|
@ -16,6 +16,7 @@ import javax.swing.event.ChangeEvent
|
|||
import javax.swing.event.ChangeListener
|
||||
import javax.swing.tree.DefaultMutableTreeNode
|
||||
import java.awt.GridBagConstraints
|
||||
import java.util.function.Predicate
|
||||
|
||||
import static com.muwire.gui.Translator.trans
|
||||
import griffon.core.artifact.GriffonView
|
||||
|
@ -355,7 +356,7 @@ class MainFrameView {
|
|||
scrollPane(constraints : BorderLayout.CENTER) {
|
||||
def jtree = new JTree(model.sharedTree)
|
||||
jtree.setRowHeight(rowHeight)
|
||||
jtree.setCellRenderer(new SharedTreeRenderer())
|
||||
jtree.setCellRenderer(new SharedTreeRenderer({model.core.getWatchedDirectoryManager().isWatched(it)} as Predicate))
|
||||
jtree.setDragEnabled(true)
|
||||
jtree.setTransferHandler(transferHandler)
|
||||
tree(id : "shared-files-tree", rowHeight : rowHeight, rootVisible : false, expandsSelectedPaths: true, largeModel : true, jtree)
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.muwire.gui
|
||||
|
||||
import java.awt.Color
|
||||
import java.awt.Component
|
||||
import java.util.function.Predicate
|
||||
|
||||
import static com.muwire.gui.Translator.trans
|
||||
|
||||
|
@ -10,25 +12,32 @@ import javax.swing.tree.DefaultTreeCellRenderer
|
|||
|
||||
import com.muwire.core.SharedFile
|
||||
|
||||
import net.i2p.data.DataHelper
|
||||
|
||||
class SharedTreeRenderer extends DefaultTreeCellRenderer {
|
||||
private final String bShort;
|
||||
private final ImageIcon commentIcon
|
||||
private final StringBuffer sb = new StringBuffer(32)
|
||||
private final Predicate<File> isDirSharedPredicate
|
||||
|
||||
SharedTreeRenderer() {
|
||||
SharedTreeRenderer(Predicate<File> isDirSharedPredicate) {
|
||||
commentIcon = new ImageIcon((URL) SharedTreeRenderer.class.getResource("/comment.png"))
|
||||
bShort = trans("BYTES_SHORT")
|
||||
this.isDirSharedPredicate = isDirSharedPredicate
|
||||
}
|
||||
|
||||
public 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 instanceof InterimTreeNode || userObject == null)
|
||||
Component defaultRenderer = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus)
|
||||
if (userObject == null)
|
||||
return defaultRenderer
|
||||
if (userObject instanceof InterimTreeNode) {
|
||||
InterimTreeNode node = (InterimTreeNode) userObject
|
||||
boolean shared = isDirSharedPredicate.test(node.getFile())
|
||||
if (!shared)
|
||||
defaultRenderer.setForeground(Color.GRAY)
|
||||
return defaultRenderer
|
||||
}
|
||||
|
||||
|
||||
SharedFile sf = (SharedFile) userObject
|
||||
|
|
Loading…
Reference in New Issue