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