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:
parent
fcec66de70
commit
ec690f8a98
@ -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()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user