Color invisible parts of Library Tree view gray. GitHub issue #65

auto-update
Zlatin Balevsky 2022-02-06 13:54:42 +00:00
parent d1cdc3efe3
commit ff0f721731
No known key found for this signature in database
GPG Key ID: A72832072D525E41
3 changed files with 16 additions and 7 deletions

View File

@ -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 |

View File

@ -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)

View File

@ -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