When I leave unchecked the "End Date" checkbox of a
task, it becomes checked
again and shown overdue in the future dates.. However
it is not overdue, its
end date is just unknown.
just a quick fix i found for this, which works for me now, but not sure if this will last for long, so the fix needs to be tested (btw: are there some junit tests?):
Logged In: YES
user_id=127110
Originator: NO
hi,
just a quick fix i found for this, which works for me now, but not sure if this will last for long, so the fix needs to be tested (btw: are there some junit tests?):
### Eclipse Workspace Patch 1.0
#P memoranda
Index: src/net/sf/memoranda/TaskImpl.java
===================================================================
RCS file: /cvsroot/memoranda/memoranda/src/net/sf/memoranda/TaskImpl.java,v
retrieving revision 1.15
diff -u -r1.15 TaskImpl.java
--- src/net/sf/memoranda/TaskImpl.java 1 Dec 2005 08:12:26 -0000 1.15
+++ src/net/sf/memoranda/TaskImpl.java 30 Dec 2007 23:28:07 -0000
@@ -58,14 +58,16 @@
Project pr = this._tl.getProject();
if (pr.getEndDate() != null)
return pr.getEndDate();
- return this.getStartDate();
+ return null;
+ // return this.getStartDate();
}
public void setEndDate(CalendarDate date) {
if (date == null)
setAttr("endDate", "");
- setAttr("endDate", date.toString());
+ else
+ setAttr("endDate", date.toString());
}
public long getEffort() {
@@ -305,6 +307,9 @@
*/
private long calcTaskRate(CalendarDate d) {
+ if (getEndDate() == null)
+ return (100-getProgress());
+
Calendar endDateCal = getEndDate().getCalendar();
Calendar dateCal = d.getCalendar();
int numOfDays = (endDateCal.get(Calendar.YEAR)*365 + endDateCal.get(Calendar.DAY_OF_YEAR)) -
Index: src/net/sf/memoranda/util/AgendaGenerator.java
===================================================================
RCS file: /cvsroot/memoranda/memoranda/src/net/sf/memoranda/util/AgendaGenerator.java,v
retrieving revision 1.13
diff -u -r1.13 AgendaGenerator.java
--- src/net/sf/memoranda/util/AgendaGenerator.java 14 Nov 2007 08:17:41 -0000 1.13
+++ src/net/sf/memoranda/util/AgendaGenerator.java 30 Dec 2007 23:28:11 -0000
@@ -197,7 +197,12 @@
}
}
=======*/
- if (t.getEndDate().equals(date))
+ if (t.getEndDate() == null) {
+ // no deadline
+ s += "<p>"
+ + Local.getString("No Deadline")
+ + "</p>";
+ } else if (t.getEndDate().equals(date))
s += "<p><font color=\"#FF9900\"><b>"
+ Local.getString("Should be done today")
+ ".</b></font></p>";
Index: src/net/sf/memoranda/ui/TaskPanel.java
===================================================================
RCS file: /cvsroot/memoranda/memoranda/src/net/sf/memoranda/ui/TaskPanel.java,v
retrieving revision 1.27
diff -u -r1.27 TaskPanel.java
--- src/net/sf/memoranda/ui/TaskPanel.java 17 Jan 2007 20:49:12 -0000 1.27
+++ src/net/sf/memoranda/ui/TaskPanel.java 30 Dec 2007 23:35:56 -0000
@@ -453,13 +453,16 @@
dlg.todoField.setText(t.getText());
dlg.descriptionField.setText(t.getDescription());
dlg.startDate.getModel().setValue(t.getStartDate().getDate());
- dlg.endDate.getModel().setValue(t.getEndDate().getDate());
+ if (t.getEndDate() != null)
+ dlg.endDate.getModel().setValue(t.getEndDate().getDate());
dlg.priorityCB.setSelectedIndex(t.getPriority());
dlg.effortField.setText(Util.getHoursFromMillis(t.getEffort()));
+ if (t.getEndDate() != null) {
if((t.getStartDate().getDate()).after(t.getEndDate().getDate()))
dlg.chkEndDate.setSelected(false);
else
dlg.chkEndDate.setSelected(true);
+ }
dlg.progress.setValue(new Integer(t.getProgress()));
dlg.chkEndDate_actionPerformed(null);
dlg.setVisible(true);
Logged In: YES
user_id=571786
Originator: YES
The patch is applied to CVS.
Thanks!