|
47 | 47 | import java.beans.PropertyChangeListener; |
48 | 48 | import java.beans.PropertyChangeSupport; |
49 | 49 | import java.io.File; |
| 50 | +import java.util.Calendar; |
50 | 51 | import java.util.Collection; |
51 | 52 | import java.util.Collections; |
52 | 53 | import java.util.Date; |
|
64 | 65 | import org.netbeans.modules.bugtracking.spi.IssueController; |
65 | 66 | import org.netbeans.modules.bugtracking.spi.IssueProvider; |
66 | 67 | import org.netbeans.modules.bugtracking.spi.IssueScheduleInfo; |
| 68 | +import org.netbeans.modules.bugtracking.spi.IssueScheduleProvider; |
67 | 69 | import org.netbeans.modules.bugtracking.spi.IssueStatusProvider; |
68 | 70 | import org.openide.util.NbBundle; |
69 | 71 | import org.pegdown.Extensions; |
@@ -294,15 +296,28 @@ public void setSchedule(IssueScheduleInfo scheduleInfo) { |
294 | 296 | if (scheduleInfo == null) { |
295 | 297 | // remove schedule |
296 | 298 | GitHubIssuesConfig.getInstance().removeSchedule(repository, this); |
297 | | - return; |
| 299 | + } else { |
| 300 | + GitHubIssuesConfig.getInstance().setScheduleDueDate(repository, this, scheduleInfo.getDate()); |
| 301 | + GitHubIssuesConfig.getInstance().setScheduleInterval(repository, this, scheduleInfo.getInterval()); |
298 | 302 | } |
299 | | - GitHubIssuesConfig.getInstance().setScheduleDueDate(repository, this, scheduleInfo.getDate()); |
300 | | - GitHubIssuesConfig.getInstance().setScheduleInterval(repository, this, scheduleInfo.getInterval()); |
| 303 | + fireDataChange(); |
| 304 | + fireScheduleChange(); |
301 | 305 | } |
302 | 306 |
|
303 | 307 | public Date getDueDate() { |
304 | 308 | IssueScheduleInfo info = getSchedule(); |
305 | | - return info != null ? info.getDate() : null; |
| 309 | + if (info == null) { |
| 310 | + return null; |
| 311 | + } |
| 312 | + Calendar calendar = Calendar.getInstance(); |
| 313 | + Date date = info.getDate(); |
| 314 | + int interval = info.getInterval(); |
| 315 | + if (interval < 1) { |
| 316 | + return null; |
| 317 | + } |
| 318 | + calendar.setTime(date); |
| 319 | + calendar.add(Calendar.DATE, interval - 1); |
| 320 | + return calendar.getTime(); |
306 | 321 | } |
307 | 322 |
|
308 | 323 | public IssueScheduleInfo getSchedule() { |
@@ -396,4 +411,8 @@ void fireStatusChange() { |
396 | 411 | propertyChangeSupport.firePropertyChange(IssueStatusProvider.EVENT_STATUS_CHANGED, null, null); |
397 | 412 | } |
398 | 413 |
|
| 414 | + void fireScheduleChange() { |
| 415 | + propertyChangeSupport.firePropertyChange(IssueScheduleProvider.EVENT_ISSUE_SCHEDULE_CHANGED, null, null); |
| 416 | + } |
| 417 | + |
399 | 418 | } |
0 commit comments