Skip to content

Commit 1d409fb

Browse files
committed
Refactored RefreshCoursesAction
1 parent 89ae934 commit 1d409fb

File tree

1 file changed

+29
-24
lines changed

1 file changed

+29
-24
lines changed

tmc-plugin/src/fi/helsinki/cs/tmc/actions/RefreshCoursesAction.java

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -71,29 +71,8 @@ public void onSuccess(final List<Course> courses) {
7171
Course currentCourse = CourseListUtils.getCourseByName(courses, courseDb.getCurrentCourseName());
7272
if (currentCourse != null) {
7373
try {
74-
System.out.println("DETAILS URL: " + currentCourse.getDetailsUrl());
7574
ListenableFuture<Course> courseFuture = tmcCore.getCourse(tmcSettings, currentCourse.getDetailsUrl());
76-
Futures.addCallback(courseFuture, new FutureCallback<Course>() {
77-
@Override
78-
public void onSuccess(Course detailedCourse) {
79-
detailedCourse.setExercisesLoaded(true);
80-
ArrayList<Course> finalCourses = new ArrayList<Course>();
81-
for(Course course: courses){
82-
if(course.getName().equals(detailedCourse.getName())) {
83-
finalCourses.add(detailedCourse);
84-
} else {
85-
finalCourses.add(course);
86-
}
87-
}
88-
callbacks.onSuccess(finalCourses);
89-
}
90-
91-
@Override
92-
public void onFailure(Throwable ex) {
93-
log.log(Level.INFO, "Failed to download current course info.", ex);
94-
callbacks.onFailure(ex);
95-
}
96-
});
75+
Futures.addCallback(courseFuture, new UpdateCourse(courses));
9776
} catch (TmcCoreException ex) {
9877
Exceptions.printStackTrace(ex);
9978
callbacks.onFailure(ex);
@@ -116,6 +95,34 @@ public void onFailure(Throwable ex) {
11695
}
11796
}
11897

98+
class UpdateCourse implements FutureCallback<Course> {
99+
100+
List<Course> courses;
101+
public UpdateCourse(List<Course> courses){
102+
this.courses = courses;
103+
}
104+
105+
@Override
106+
public void onSuccess(Course detailedCourse) {
107+
detailedCourse.setExercisesLoaded(true);
108+
ArrayList<Course> finalCourses = new ArrayList<Course>();
109+
for (Course course : courses) {
110+
if (course.getName().equals(detailedCourse.getName())) {
111+
finalCourses.add(detailedCourse);
112+
} else {
113+
finalCourses.add(course);
114+
}
115+
}
116+
callbacks.onSuccess(finalCourses);
117+
}
118+
119+
@Override
120+
public void onFailure(Throwable ex) {
121+
log.log(Level.INFO, "Failed to download current course info.", ex);
122+
callbacks.onFailure(ex);
123+
}
124+
}
125+
119126
// public void run() {
120127
// CancellableCallable<List<Course>> courseListTask = serverAccess.getDownloadingCourseListTask();
121128
// BgTask.start("Refreshing course list", courseListTask, new BgTaskListener<List<Course>>() {
@@ -172,7 +179,6 @@ public void onFailure(Throwable ex) {
172179
// }
173180
// });
174181
// }
175-
176182
private class DefaultListener implements FutureCallback<List<Course>> {
177183

178184
private final boolean showDialogOnError;
@@ -200,7 +206,6 @@ public DefaultListener(boolean showDialogOnError, boolean updateCourseDb) {
200206
// dialogs.displayError("Course refresh failed.\n" + ServerErrorHelper.getServerExceptionMsg(ex));
201207
// }
202208
// }
203-
204209
@Override
205210
public void onSuccess(List<Course> result) {
206211
if (updateCourseDb) {

0 commit comments

Comments
 (0)