Resolves issues 0013, 0022, and 0019.

0013: Hide a new issue after a delay if does not match the viewing criteria.
0022: New 'Bugs' created are not correctly categorized.
0019: Add the ability to change the Issue text size.
This commit is contained in:
Jonathan Bernard 2010-04-20 14:02:08 -05:00
parent 591fb91d17
commit e65e2bbe47
32 changed files with 166 additions and 70 deletions

View File

@ -1,2 +1,7 @@
Hide a new issue after a delay if does not match the viewing criteria.
======================================================================
Solution
--------
The issue is not hidden after a delay, it is immediately hidden.

View File

@ -1,24 +0,0 @@
Add the ability to change the Issue text size.
=====
Description
-----------
Type a description of the feature here.
Implementation Notes
--------------------
Optionally, describe any specific implementation notes.
Solution
--------
How was the feature realized?
Resolution
----------
Date Created: YYYY-MM-DD
Date Resolved: YYYY-MM-DD
Delivery: ####

View File

@ -0,0 +1,28 @@
Add the ability to change the Issue text size.
==============================================
Description
-----------
It would be good to be able to choose the size of the text for issue display.
Implementation Notes
--------------------
This is a shared value between all project panels, so this needs to be on the
enclosing PIT mvc, not the individual *ProjectPanel* mvcs. The ideal
implementation is to bind the ``issueDetailTextArea.font`` property from the
*ProjectPanel* view to the main mvc ``model.issueDetailFont``, but this fails
and I cannot determine why.
Solution
--------
The ``ProjectPanelController.displayIssue`` method checks the value of
``issueDetailTextArea.font`` against the main mvc ``model.issueDetailFont`` and
updates it if it differs before actually displaying the issue selected.
Resolution
----------
Delivery: 0019

View File

@ -0,0 +1,23 @@
Icons not displaying in the project tree.
=========================================
Description
-----------
There should be icons in the list to the left to decorate it a bit.
Implementation Notes
--------------------
Solution
--------
How was the bug fixed?
Resolution
----------
Date Created: 2010-04-20
Date Resolved: YYYY-MM-DD
Delivery: 0021

View File

@ -0,0 +1,35 @@
New 'Bugs' created are not correctly categorized.
=================================================
Description
-----------
If the user clicks *New Issue* and does not manually select *Bug* from the drop-down
list, but instead leaves the default *Bug* selected, the actual issue bypasses the
template generation phase and gets its category defaulted to *Task*.
Implementation Notes
--------------------
It looks like this is related to the default value of the category list in the
*New Task* dialog.
Solution
--------
The values from the *NewIssueDialog* are publicly visible via fields on the
model. The view has bound properties to update the model's fields whenever the
appropriate gui field is updated. But when the dialog is shown initially, the
view is reset programatically, not triggering the update to the model values.
In the case of the first new issue since launching the program, the fields on
the model are ``null`` or have their default initialized values. In subsequent
issues, they hold whatever was there before. If the user never changed those
values, they held their old values. The solution was to update the model as
well as the view when showing the dialog.
Resolution
----------
Date Created: 2010-04-20
Date Resolved: 2010-04-20
Delivery: 0022

View File

@ -0,0 +1,27 @@
New 'Bugs' created are not correctly categorized.
=================================================
Description
-----------
If the user clicks *New Issue* and does not manually select *Bug* from the drop-down
list, but instead leaves the default *Bug* selected, the actual issue bypasses the
template generation phase and gets its category defaulted to *Task*.
Implementation Notes
--------------------
It looks like this is related to the default value of the category list in the
*New Task* dialog.
Solution
--------
How was the bug fixed?
Resolution
----------
Date Created: 2010-04-20
Date Resolved: YYYY-MM-DD
Delivery: 0022

View File

@ -1,10 +1,11 @@
#Tue, 20 Apr 2010 13:49:35 -0500
#Fri Feb 26 23:58:36 CST 2010
build.dir=build
src.dir=src
lib.shared.dir=../shared-libs
test.dir=test
build.number=2
expected.application.version=2.1.0
expected.application.version=2.2.0
lib.dir=lib
release.dir=release
release.jar=pit-${application.version}.jar

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,8 @@
#Do not edit app.griffon.* properties, they may change automatically. DO NOT put application configuration in here, it is not the right place!
#Tue, 20 Apr 2010 11:38:07 -0500
#utf-8
#Wed Mar 10 12:10:54 CST 2010
app.version=2.1.0
app.version=2.2.0
plugins.fest=0.3
app.griffon.version=0.2.1
app.griffon.version=0.3
app.name=pit-swing

View File

@ -14,9 +14,13 @@ class NewIssueDialogController {
def show = {
view.titleTextField.text = ""
model.text = ""
view.categoryComboBox.selectedItem = Category.BUG
model.category = Category.BUG
view.statusComboBox.selectedItem = Status.NEW
model.status = Status.NEW
view.prioritySpinner.setValue(5)
model.priority = 5
view.dialog.visible = true
}
}

View File

@ -40,6 +40,12 @@ class ProjectPanelController {
void displayIssue(Issue issue) {
if (!issue) return
// hack because binding view.issueTextArea.font to
// mainMVC.mode.issueDetailFont causes problems
if (view.issueTextArea.font != model.mainMVC.model.issueDetailFont)
view.issueTextArea.font = model.mainMVC.model.issueDetailFont
view.issueTextArea.text = issue.text
view.issueTextArea.caretPosition = 0
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@ -117,13 +117,13 @@ frame = application(title:'Personal Issue Tracker',
def newSize = JOptionPane.showInputDialog(frame,
'New text size: ', 'Change Issue Detail Text Size...',
JOptionPane.QUESTION_MESSAGE)
if (!newSize.isInteger())
if (newSize == null || !newSize.isFloat())
JOptionPane.showMessageDialog(frame,
"$newSize is not a valid size.",
'Change Issue Detail Text Size...',
JOptionPane.ERROR_MESSAGE)
model.issueDetailFont = model.issueDetailFont.deriveFont(
newSize.toInteger())
else model.issueDetailFont = model.issueDetailFont
.deriveFont(newSize.toFloat())
})
}

View File

@ -83,8 +83,7 @@ issuePopupMenu = popupMenu() {
enabled: bind { model.popupIssue != null },
actionPerformed: {
model.popupIssue.category = category
issueList.invalidate()
issueList.repaint()
controller.refreshIssues()
})
}
}
@ -96,8 +95,7 @@ issuePopupMenu = popupMenu() {
enabled: bind { model.popupIssue != null },
actionPerformed: {
model.popupIssue.status = status
issueList.invalidate()
issueList.repaint()
controller.refreshIssues()
})
}
}
@ -115,8 +113,7 @@ issuePopupMenu = popupMenu() {
'Change Priority...', JOptionPane.ERROR_MESSAGE)
return
}
issueList.invalidate()
issueList.repaint()
controller.refreshIssues()
})
}
@ -217,7 +214,6 @@ panel = splitPane(orientation: JSplitPane.HORIZONTAL_SPLIT,
}
println model.mainMVC?.model?.issueDetailFont
scrollPane(constraints: "bottom") {
issueTextArea = textArea(
wrapStyleWord: true,
@ -225,8 +221,7 @@ panel = splitPane(orientation: JSplitPane.HORIZONTAL_SPLIT,
sourceProperty: 'selected'),
editable: bind( source: issueList, sourceEvent: 'valueChanged',
sourceValue: { issueList.selectedValue != null }),
font: bind(source: model.mainMVC.model,
property: 'issueDetailFont'),
font: model.mainMVC.model.issueDetailFont,
focusGained: {},
focusLost: {
if (!issueList?.selectedValue) return

View File

@ -28,7 +28,7 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Griffon 0.2.1" level="project" />
<orderEntry type="library" name="Griffon 0.3" level="project" />
<orderEntry type="module-library">
<library name="Griffon User Library">
<CLASSES>

View File

@ -10,53 +10,47 @@
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="libraryTable">
<library name="Griffon 0.2.1">
<library name="Griffon 0.3">
<CLASSES>
<root url="jar:///usr/share/griffon/lib/commons-cli-1.0.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/log4j-1.2.15.jar!/" />
<root url="jar:///usr/share/griffon/lib/asm-2.2.3.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/spring-2.5.6.jar!/" />
<root url="jar:///usr/share/griffon/lib/ant-nodeps-1.7.1.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/ant-trax-1.8.0.jar!/" />
<root url="jar:///usr/share/griffon/lib/MultipleGradientPaint.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/gant_groovy1.6-1.6.0.jar!/" />
<root url="jar:///usr/share/griffon/lib/junit-3.8.2.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/svnkit-1.2.0.jar!/" />
<root url="jar:///usr/share/griffon/lib/jline-0.9.94.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/junit-4.8.1.jar!/" />
<root url="jar:///usr/share/griffon/lib/ant-junit-1.7.1.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/commons-cli-1.2.jar!/" />
<root url="jar:///usr/share/griffon/lib/swingxbuilder-0.1.6-SNAPSHOT.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/ant-nodeps-1.8.0.jar!/" />
<root url="jar:///usr/share/griffon/lib/swingx-0.9.3.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/groovy-all-1.7.1.jar!/" />
<root url="jar:///usr/share/griffon/lib/groovy-all-1.6.4.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/commons-lang-2.4.jar!/" />
<root url="jar:///usr/share/griffon/lib/svnkit-1.2.0.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/ant-junit-1.8.0.jar!/" />
<root url="jar:///usr/share/griffon/lib/ant-trax-1.7.1.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/jline-0.9.94.jar!/" />
<root url="jar:///usr/share/griffon/lib/spring-2.5.6.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/ant-launcher-1.8.0.jar!/" />
<root url="jar:///usr/share/griffon/lib/commons-lang-2.4.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/commons-logging-1.1.1.jar!/" />
<root url="jar:///usr/share/griffon/lib/swing-worker.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/asm-3.2.jar!/" />
<root url="jar:///usr/share/griffon/lib/ant-1.7.1.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/lib/ant-1.8.0.jar!/" />
<root url="jar:///usr/share/griffon/lib/ant-launcher-1.7.1.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/dist/griffon-resources-0.3.jar!/" />
<root url="jar:///usr/share/griffon/lib/gant_groovy1.6-1.6.0.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/dist/griffon-cli-0.3.jar!/" />
<root url="jar:///usr/share/griffon/lib/commons-logging-1.1.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/dist/griffon-rt-0.3.jar!/" />
<root url="jar:///usr/share/griffon/lib/log4j-1.2.15.jar!/" />
<root url="jar:///usr/share/griffon/dist/griffon-resources-0.2.1.jar!/" />
<root url="jar:///usr/share/griffon/dist/griffon-rt-0.2.1.jar!/" />
<root url="jar:///usr/share/griffon/dist/griffon-cli-0.2.1.jar!/" />
<root url="jar:///home/jdbernard/programs/griffon/dist/griffon-scripts-0.3.jar!/" />
</CLASSES>

Binary file not shown.

BIN
release/lib/pit-2.2.0.jar Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
application.version=2.1.0
application.version=2.2.0