From 568255140fce990bbe839f5db16fb64f370740b0 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Sat, 2 Nov 2019 12:54:43 +0000 Subject: [PATCH] visualize the negative tree as well --- .../com/muwire/core/files/FileTree.groovy | 2 +- .../muwire/gui/AdvancedSharingModel.groovy | 21 ++++++++++++++++++- .../com/muwire/gui/AdvancedSharingView.groovy | 4 +++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/core/src/main/groovy/com/muwire/core/files/FileTree.groovy b/core/src/main/groovy/com/muwire/core/files/FileTree.groovy index 180d4088..9f2194f0 100644 --- a/core/src/main/groovy/com/muwire/core/files/FileTree.groovy +++ b/core/src/main/groovy/com/muwire/core/files/FileTree.groovy @@ -45,7 +45,7 @@ class FileTree { true } - private static class TreeNode { + public static class TreeNode { TreeNode parent File file final Set children = new HashSet<>() diff --git a/gui/griffon-app/models/com/muwire/gui/AdvancedSharingModel.groovy b/gui/griffon-app/models/com/muwire/gui/AdvancedSharingModel.groovy index ecb73f90..4006892b 100644 --- a/gui/griffon-app/models/com/muwire/gui/AdvancedSharingModel.groovy +++ b/gui/griffon-app/models/com/muwire/gui/AdvancedSharingModel.groovy @@ -1,6 +1,11 @@ package com.muwire.gui +import javax.swing.tree.DefaultMutableTreeNode +import javax.swing.tree.DefaultTreeModel +import javax.swing.tree.MutableTreeNode + import com.muwire.core.Core +import com.muwire.core.files.FileTree import griffon.core.artifact.GriffonModel import griffon.transform.Observable @@ -9,12 +14,26 @@ import griffon.metadata.ArtifactProviderFor @ArtifactProviderFor(GriffonModel) class AdvancedSharingModel { def watchedDirectories = [] + def treeRoot + def negativeTree Core core void mvcGroupInit(Map args) { watchedDirectories.addAll(core.muOptions.watchedDirectories) -// view.watchedDirsTable.model.fireTableDataChanged() + + treeRoot = new DefaultMutableTreeNode() + negativeTree = new DefaultTreeModel(treeRoot) + copyTree(treeRoot, core.fileManager.negativeTree.root) + } + + private void copyTree(DefaultMutableTreeNode jtreeNode, FileTree.TreeNode fileTreeNode) { + jtreeNode.setUserObject(fileTreeNode.file?.getName()) + fileTreeNode.children.each { + MutableTreeNode newChild = new DefaultMutableTreeNode() + jtreeNode.add(newChild) + copyTree(newChild, it) + } } } \ No newline at end of file diff --git a/gui/griffon-app/views/com/muwire/gui/AdvancedSharingView.groovy b/gui/griffon-app/views/com/muwire/gui/AdvancedSharingView.groovy index 51dbd946..c5362676 100644 --- a/gui/griffon-app/views/com/muwire/gui/AdvancedSharingView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/AdvancedSharingView.groovy @@ -6,6 +6,7 @@ import griffon.metadata.ArtifactProviderFor import javax.swing.JDialog import javax.swing.JTabbedPane +import javax.swing.JTree import javax.swing.SwingConstants import java.awt.BorderLayout @@ -53,7 +54,8 @@ class AdvancedSharingView { label(text : "Files which are explicitly not shared") } scrollPane( constraints : BorderLayout.CENTER ) { - // add tree here + def jtree = new JTree(model.negativeTree) + tree(rootVisible : false, jtree) } } }