Split pit-swing into multiple MVC components. Added the ability to open

multiple issue repos simultaneously.

Seperated the main split pane into its own MVC.
Seperated out the new issue dialog into its own MVC

Need to write testing code.
This commit is contained in:
Jonathan Bernard committed 2010-03-09 10:17:26 -06:00
1 parent fcec66de70
commit ec690f8a98
4 files changed
+30 -17

No files matched your search

File renamed without changes.
@@ -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
@@ -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)
@@ -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()
})
}
}