Skip to content

Commit a9d7ef6

Browse files
committed
Merge branch 'core_integration' into submit-new
2 parents 7690008 + 84ad692 commit a9d7ef6

File tree

7 files changed

+42
-38
lines changed

7 files changed

+42
-38
lines changed

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,17 @@
88
import fi.helsinki.cs.tmc.model.CourseDb;
99
import fi.helsinki.cs.tmc.model.NBTmcSettings;
1010
import fi.helsinki.cs.tmc.model.ReviewDb;
11-
import fi.helsinki.cs.tmc.model.ServerAccess;
1211
import fi.helsinki.cs.tmc.model.TmcCoreSingleton;
1312
import fi.helsinki.cs.tmc.ui.ConvenientDialogDisplayer;
14-
import fi.helsinki.cs.tmc.utilities.BgTask;
15-
import fi.helsinki.cs.tmc.utilities.BgTaskListener;
1613
import hy.tmc.core.exceptions.TmcCoreException;
1714
import java.awt.event.ActionEvent;
1815
import java.awt.event.ActionListener;
1916
import java.util.List;
2017
import java.util.logging.Level;
2118
import java.util.logging.Logger;
2219
import javax.swing.SwingUtilities;
20+
import org.netbeans.api.progress.ProgressHandle;
21+
import org.netbeans.api.progress.ProgressHandleFactory;
2322
import org.openide.awt.ActionID;
2423
import org.openide.awt.ActionReference;
2524
import org.openide.awt.ActionReferences;
@@ -53,7 +52,6 @@ public static void startTimer() {
5352
}
5453
}
5554

56-
private ServerAccess serverAccess;
5755
private CourseDb courseDb;
5856
private ReviewDb reviewDb;
5957
private ConvenientDialogDisplayer dialogs;
@@ -66,7 +64,6 @@ public static void startTimer() {
6664
}
6765

6866
CheckForNewReviews(boolean beQuiet, boolean resetNotifications, boolean notifyAboutNoNewReviews) {
69-
this.serverAccess = new ServerAccess();
7067
this.courseDb = CourseDb.getInstance();
7168
this.reviewDb = ReviewDb.getInstance();
7269
this.dialogs = ConvenientDialogDisplayer.getDefault();
@@ -101,22 +98,30 @@ public void run() {
10198
}
10299

103100
private void getReviews(Course course){
101+
final ProgressHandle progress = ProgressHandleFactory.createHandle("Checking for code reviews");
102+
progress.start();
104103
try {
105-
ListenableFuture<List<Review>> reviews = TmcCoreSingleton.getInstance().getNewReviews(course, NBTmcSettings.getDefault());
104+
ListenableFuture<List<Review>> reviews = TmcCoreSingleton.getInstance().getNewReviews(
105+
course, NBTmcSettings.getDefault()
106+
);
106107
Futures.addCallback(reviews, new FutureCallback<List<Review>>() {
107108

108109
@Override
109110
public void onSuccess(List<Review> v) {
110111
success(v);
112+
progress.finish();
113+
111114
}
112115

113116
@Override
114117
public void onFailure(Throwable thrwbl) {
115118
fail(thrwbl);
119+
progress.finish();
116120
}
117121

118122
});
119123
} catch (TmcCoreException ex) {
124+
progress.finish();
120125
Exceptions.printStackTrace(ex);
121126
}
122127
}

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,17 @@
66
import hy.tmc.core.domain.Exercise;
77
import fi.helsinki.cs.tmc.model.CourseDb;
88
import fi.helsinki.cs.tmc.model.ProjectMediator;
9-
import fi.helsinki.cs.tmc.model.ServerAccess;
109
import fi.helsinki.cs.tmc.model.TmcProjectInfo;
1110
import fi.helsinki.cs.tmc.model.NBTmcSettings;
1211
import fi.helsinki.cs.tmc.model.TmcCoreSingleton;
1312
import fi.helsinki.cs.tmc.ui.ConvenientDialogDisplayer;
1413
import fi.helsinki.cs.tmc.ui.PastebinDialog;
1514
import fi.helsinki.cs.tmc.ui.PastebinResponseDialog;
16-
import fi.helsinki.cs.tmc.utilities.BgTask;
17-
import fi.helsinki.cs.tmc.utilities.BgTaskListener;
18-
import fi.helsinki.cs.tmc.utilities.CancellableCallable;
19-
import fi.helsinki.cs.tmc.utilities.zip.RecursiveZipper;
2015
import hy.tmc.core.exceptions.TmcCoreException;
2116
import java.awt.event.ActionEvent;
2217
import java.awt.event.ActionListener;
2318
import java.net.URI;
24-
import java.util.HashMap;
2519
import java.util.List;
26-
import java.util.Map;
27-
import java.util.concurrent.Callable;
2820
import java.util.logging.Level;
2921
import java.util.logging.Logger;
3022
import org.netbeans.api.project.Project;

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

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

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

94102
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/spyware/EventSendBuffer.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,9 +245,6 @@ private String pickDestinationUrl() {
245245

246246
/**
247247
* Converts events to data[] and sends it to defined url.
248-
*
249-
* @param eventsToSend
250-
* @param url
251248
*/
252249
private void doSend(final ArrayList<LoggableEvent> eventsToSend, final String url) {
253250
NBTmcSettings settings = NBTmcSettings.getDefault();

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)