Skip to content

Commit b8dd7a4

Browse files
committed
Fix the schedule feature
1 parent 4589e07 commit b8dd7a4

1 file changed

Lines changed: 23 additions & 4 deletions

File tree

  • src/main/java/com/junichi11/netbeans/modules/github/issues/issue

src/main/java/com/junichi11/netbeans/modules/github/issues/issue/GitHubIssue.java

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import java.beans.PropertyChangeListener;
4848
import java.beans.PropertyChangeSupport;
4949
import java.io.File;
50+
import java.util.Calendar;
5051
import java.util.Collection;
5152
import java.util.Collections;
5253
import java.util.Date;
@@ -64,6 +65,7 @@
6465
import org.netbeans.modules.bugtracking.spi.IssueController;
6566
import org.netbeans.modules.bugtracking.spi.IssueProvider;
6667
import org.netbeans.modules.bugtracking.spi.IssueScheduleInfo;
68+
import org.netbeans.modules.bugtracking.spi.IssueScheduleProvider;
6769
import org.netbeans.modules.bugtracking.spi.IssueStatusProvider;
6870
import org.openide.util.NbBundle;
6971
import org.pegdown.Extensions;
@@ -294,15 +296,28 @@ public void setSchedule(IssueScheduleInfo scheduleInfo) {
294296
if (scheduleInfo == null) {
295297
// remove schedule
296298
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());
298302
}
299-
GitHubIssuesConfig.getInstance().setScheduleDueDate(repository, this, scheduleInfo.getDate());
300-
GitHubIssuesConfig.getInstance().setScheduleInterval(repository, this, scheduleInfo.getInterval());
303+
fireDataChange();
304+
fireScheduleChange();
301305
}
302306

303307
public Date getDueDate() {
304308
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();
306321
}
307322

308323
public IssueScheduleInfo getSchedule() {
@@ -396,4 +411,8 @@ void fireStatusChange() {
396411
propertyChangeSupport.firePropertyChange(IssueStatusProvider.EVENT_STATUS_CHANGED, null, null);
397412
}
398413

414+
void fireScheduleChange() {
415+
propertyChangeSupport.firePropertyChange(IssueScheduleProvider.EVENT_ISSUE_SCHEDULE_CHANGED, null, null);
416+
}
417+
399418
}

0 commit comments

Comments
 (0)