Skip to content

Commit 84ad692

Browse files
committed
Refactoring.
1 parent 05102da commit 84ad692

File tree

4 files changed

+31
-21
lines changed

4 files changed

+31
-21
lines changed

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,25 @@ public RefreshCoursesAction addListener(FutureCallback<List<Course>> callback) {
7777
*/
7878
public void run() {
7979
try {
80-
ProgressHandle courseRefresh = ProgressHandleFactory.createSystemHandle(
80+
if (settingsAreSet()) {
81+
ProgressHandle courseRefresh = ProgressHandleFactory.createSystemHandle(
8182
"Refreshing course list");
82-
courseRefresh.start();
83-
ListenableFuture<List<Course>> listCourses = this.tmcCore.listCourses(tmcSettings);
84-
Futures.addCallback(listCourses, new LoadCourses(courseRefresh));
83+
courseRefresh.start();
84+
ListenableFuture<List<Course>> listCourses = this.tmcCore.listCourses(tmcSettings);
85+
Futures.addCallback(listCourses, new LoadCourses(courseRefresh));
86+
}
8587
} catch (TmcCoreException ex) {
8688
Exceptions.printStackTrace(ex);
8789
callbacks.onFailure(ex);
8890
}
8991
}
9092

93+
private boolean settingsAreSet() {
94+
return tmcSettings.userDataExists()
95+
&& tmcSettings.getServerAddress() != null
96+
&& !tmcSettings.getServerAddress().trim().isEmpty();
97+
}
98+
9199
class LoadCourses implements FutureCallback<List<Course>> {
92100

93101
private ProgressHandle lastAction;

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.google.common.util.concurrent.FutureCallback;
44
import hy.tmc.core.domain.Course;
55
import fi.helsinki.cs.tmc.model.CourseDb;
6+
import fi.helsinki.cs.tmc.model.NBTmcSettings;
67
import fi.helsinki.cs.tmc.model.PushEventListener;
78
import fi.helsinki.cs.tmc.model.ServerAccess;
89
import fi.helsinki.cs.tmc.spyware.SpywareFacade;
@@ -62,7 +63,12 @@ public void run() {
6263
} else if (new ServerAccess().needsOnlyPassword() && CourseDb.getInstance().getCurrentCourse() != null) {
6364
LoginDialog.display(new CheckForNewExercisesOrUpdates(false, false));
6465
} else {
65-
// Do full refresh.
66+
refreshCourses();
67+
}
68+
}
69+
70+
private void refreshCourses() {
71+
// Do full refresh.
6672
new RefreshCoursesAction().addDefaultListener(false, true).addListener(new FutureCallback<List<Course>>() {
6773
@Override
6874
public void onSuccess(List<Course> result) {
@@ -76,7 +82,6 @@ public void onSuccess(List<Course> result) {
7682
public void onFailure(Throwable thrwbl) {
7783
}
7884
}).run();
79-
}
8085
}
8186
});
8287
}

tmc-plugin/src/fi/helsinki/cs/tmc/runners/TestRunHandler.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package fi.helsinki.cs.tmc.runners;
22

3-
import com.google.common.base.Optional;
3+
import static fi.helsinki.cs.tmc.langs.RunResult.Status.COMPILE_FAILED;
4+
45
import com.google.common.base.Throwables;
56
import com.google.common.collect.ImmutableList;
67
import com.google.common.util.concurrent.FutureCallback;
@@ -9,28 +10,20 @@
910
import hy.tmc.core.domain.Exercise;
1011
import fi.helsinki.cs.tmc.data.ResultCollector;
1112
import fi.helsinki.cs.tmc.data.TestCaseResult;
12-
import fi.helsinki.cs.tmc.data.TestRunResult;
1313
import fi.helsinki.cs.tmc.events.TmcEvent;
1414
import fi.helsinki.cs.tmc.events.TmcEventBus;
1515
import fi.helsinki.cs.tmc.exerciseSubmitter.ExerciseSubmitter;
1616
import fi.helsinki.cs.tmc.langs.RunResult;
17-
import static fi.helsinki.cs.tmc.langs.RunResult.Status.COMPILE_FAILED;
1817
import fi.helsinki.cs.tmc.langs.TestResult;
1918
import fi.helsinki.cs.tmc.model.CourseDb;
2019
import fi.helsinki.cs.tmc.model.NBTmcSettings;
2120
import fi.helsinki.cs.tmc.model.ProjectMediator;
2221
import fi.helsinki.cs.tmc.model.TmcCoreSingleton;
2322
import fi.helsinki.cs.tmc.model.TmcProjectInfo;
24-
import static fi.helsinki.cs.tmc.model.TmcProjectType.JAVA_MAVEN;
25-
import static fi.helsinki.cs.tmc.model.TmcProjectType.JAVA_SIMPLE;
26-
import static fi.helsinki.cs.tmc.model.TmcProjectType.MAKEFILE;
2723
import fi.helsinki.cs.tmc.ui.ConvenientDialogDisplayer;
2824
import fi.helsinki.cs.tmc.ui.TestResultDisplayer;
29-
import fi.helsinki.cs.tmc.utilities.BgTask;
30-
import fi.helsinki.cs.tmc.utilities.BgTaskListener;
3125
import hy.tmc.core.exceptions.TmcCoreException;
3226
import java.util.ArrayList;
33-
import java.util.Arrays;
3427
import java.util.List;
3528
import static java.util.logging.Level.INFO;
3629
import java.util.logging.Logger;
@@ -82,14 +75,14 @@ public void performAction(final ResultCollector resultCollector, Project... proj
8275
Futures.addCallback(result, new FutureCallback<RunResult>() {
8376
@Override
8477
public void onSuccess(final RunResult result) {
85-
runningTestsLocally.finish();
8678
explainResults(result, projectInfo, resultCollector);
79+
runningTestsLocally.finish();
8780
}
8881

8982
@Override
9083
public void onFailure(final Throwable ex) {
91-
runningTestsLocally.finish();
9284
explainFailure(ex);
85+
runningTestsLocally.finish();
9386
}
9487

9588
});
@@ -113,7 +106,6 @@ public void run() {
113106

114107
private void explainResults(final RunResult result, final TmcProjectInfo projectInfo, final ResultCollector resultCollector) {
115108
SwingUtilities.invokeLater(new Runnable() {
116-
117109
@Override
118110
public void run() {
119111
if (result.status == COMPILE_FAILED) {

tmc-plugin/src/fi/helsinki/cs/tmc/ui/PreferencesPanel.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ public RefreshSettings(String username, String password, String baseUrl) {
5252
public boolean isAllSet() {
5353
return username != null && password != null && baseUrl != null;
5454
}
55+
56+
public boolean noneIsEmpty() {
57+
return !username.trim().isEmpty() && !password.trim().isEmpty() && !baseUrl.trim().isEmpty();
58+
}
5559

5660
@Override
5761
public boolean equals(Object obj) {
@@ -409,7 +413,7 @@ private String joinWithCommasAndAnd(List<String> strings) {
409413
}
410414

411415
private boolean canProbablyRefreshCourseList() {
412-
return getRefreshSettings().isAllSet();
416+
return getRefreshSettings().isAllSet() && getRefreshSettings().noneIsEmpty();
413417
}
414418

415419
private boolean alreadyRefreshingCourseList() {
@@ -702,10 +706,11 @@ private void folderChooserBtnActionPerformed(java.awt.event.ActionEvent evt) {//
702706

703707
private void refreshCoursesBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refreshCoursesBtnActionPerformed
704708
NBTmcSettings settings = getTransientSettingsForRefresh();
705-
if (settings.getServerAddress() == null || settings.getServerAddress().trim().isEmpty()) {
709+
if (!canProbablyRefreshCourseList()) {
706710
dialogs.displayError("Please set the server address first");
711+
} else {
712+
startRefreshingCourseList(false, false);
707713
}
708-
startRefreshingCourseList(false, false);
709714
}//GEN-LAST:event_refreshCoursesBtnActionPerformed
710715

711716
private void serverAddressTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_serverAddressTextFieldActionPerformed

0 commit comments

Comments
 (0)