diff --git a/issues/pit-swing/0017fn4.rst b/issues/pit-swing/0017fs4.rst similarity index 100% rename from issues/pit-swing/0017fn4.rst rename to issues/pit-swing/0017fs4.rst diff --git a/pit-swing/griffon-app/controllers/com/jdbernard/pit/swing/PITController.groovy b/pit-swing/griffon-app/controllers/com/jdbernard/pit/swing/PITController.groovy index aa603ff..8c1f995 100644 --- a/pit-swing/griffon-app/controllers/com/jdbernard/pit/swing/PITController.groovy +++ b/pit-swing/griffon-app/controllers/com/jdbernard/pit/swing/PITController.groovy @@ -44,6 +44,12 @@ class PITController { model.newIssueDialogMVC = buildMVCGroup('NewIssueDialog') } + void refreshIssues() { + model.projectPanelMVCs.each { title, mvc -> + mvc.controller.refreshIssues() + } + } + def openProject = { evt = null -> def projectDir def newMVC diff --git a/pit-swing/griffon-app/controllers/com/jdbernard/pit/swing/ProjectPanelController.groovy b/pit-swing/griffon-app/controllers/com/jdbernard/pit/swing/ProjectPanelController.groovy index 803be7c..df67e7c 100644 --- a/pit-swing/griffon-app/controllers/com/jdbernard/pit/swing/ProjectPanelController.groovy +++ b/pit-swing/griffon-app/controllers/com/jdbernard/pit/swing/ProjectPanelController.groovy @@ -16,9 +16,7 @@ class ProjectPanelController { def view void mvcGroupInit(Map args) { - //model.rootProject = args.rootProject - view.projectTree.model = new DefaultTreeModel( - makeNodes(model.rootProject)) + refreshProject() } /** @@ -56,6 +54,22 @@ class ProjectPanelController { view.issuePopupMenu.show(view.issueList, x, y) } + void refreshProject() { + if (model.rootProject) { + view.projectTree.rootVisible = model.rootProject.issues.size() + view.projectTree.model = new DefaultTreeModel( + makeNodes(model.rootProject)) + } else { + projectTree.rootVisible = false + view.projectTree.model = new DefaultTreeModel( + new DefaultMutableTreeNode()) + } + } + + void refreshIssues() { + model.projectListModels.clear() + displayProject(model.selectedProject) + } def makeNodes(Project project) { def rootNode = new DefaultMutableTreeNode(project) diff --git a/pit-swing/griffon-app/views/com/jdbernard/pit/swing/PITView.groovy b/pit-swing/griffon-app/views/com/jdbernard/pit/swing/PITView.groovy index fc27bbd..fefe423 100644 --- a/pit-swing/griffon-app/views/com/jdbernard/pit/swing/PITView.groovy +++ b/pit-swing/griffon-app/views/com/jdbernard/pit/swing/PITView.groovy @@ -87,8 +87,7 @@ frame = application(title:'Personal Issue Tracker', model.filter.categories.add(cat) evt.source.selected = true } - model.projectListModels.clear() - controller.displayProject(model.selectedProject) + controller.refreshIssues() }) } } @@ -105,8 +104,7 @@ frame = application(title:'Personal Issue Tracker', model.filter.status.add(st) evt.source.selected = true } - model.projectListModels.clear() - controller.displayProject(model.selectedProject) + controller.refreshIssues() }) } } @@ -119,36 +117,31 @@ frame = application(title:'Personal Issue Tracker', buttonGroup: sortMenuButtonGroup, actionPerformed: { model.filter.issueSorter = { it.id } - model.projectListModels.clear() - controller.displayProject(selectedProject) + controller.refreshIssues() }) checkBoxMenuItem('By Category', buttonGroup: sortMenuButtonGroup, actionPerformed: { model.filter.issueSorter = { it.category } - model.projectListModels.clear() - controller.displayProject(selectedProject) + controller.refreshIssues() }) checkBoxMenuItem('By Status', buttonGroup: sortMenuButtonGroup, actionPerformed: { model.filter.issueSorter = { it.status } - model.projectListModels.clear() - controller.displayProject(selectedProject) + controller.refreshIssues() }) checkBoxMenuItem('By Priority', buttonGroup: sortMenuButtonGroup, actionPerformed: { model.filter.issueSorter = { it.priority } - model.projectListModels.clear() - controller.displayProject(selectedProject) + controller.refreshIssues() }) checkBoxMenuItem('By Title', buttonGroup: sortMenuButtonGroup, actionPerformed: { model.filter.issueSorter = { it.title } - model.projectListModels.clear() - controller.displayProject(selectedProject) + controller.refreshIssues() }) } }