5
5
import fi .helsinki .cs .tmc .core .domain .ProgressObserver ;
6
6
import fi .helsinki .cs .tmc .coreimpl .BridgingProgressObserver ;
7
7
import fi .helsinki .cs .tmc .data .ResultCollector ;
8
+ import fi .helsinki .cs .tmc .exerciseSubmitter .ExerciseSubmitter ;
8
9
import fi .helsinki .cs .tmc .langs .abstraction .ValidationResult ;
9
10
import fi .helsinki .cs .tmc .langs .domain .RunResult ;
10
11
import fi .helsinki .cs .tmc .model .CourseDb ;
11
12
import fi .helsinki .cs .tmc .model .ProjectMediator ;
12
13
import fi .helsinki .cs .tmc .model .SourceFileLookup ;
14
+ import fi .helsinki .cs .tmc .ui .TestResultDisplayer ;
13
15
import fi .helsinki .cs .tmc .utilities .BgTask ;
14
16
import fi .helsinki .cs .tmc .utilities .BgTaskListener ;
15
17
@@ -30,10 +32,14 @@ public class RunTestsLocallyAction extends AbstractExerciseSensitiveAction imple
30
32
private CourseDb courseDb ;
31
33
private ProjectMediator projectMediator ;
32
34
private Project project ;
35
+ private TestResultDisplayer resultDisplayer ;
36
+ private ExerciseSubmitter exerciseSubmitter ;
33
37
34
38
public RunTestsLocallyAction () {
35
39
this .courseDb = CourseDb .getInstance ();
36
40
this .projectMediator = ProjectMediator .getInstance ();
41
+ this .resultDisplayer = TestResultDisplayer .getInstance ();
42
+ this .exerciseSubmitter = new ExerciseSubmitter ();
37
43
38
44
putValue ("noIconInMenu" , Boolean .TRUE );
39
45
}
@@ -77,7 +83,7 @@ protected boolean enabledFor(Exercise exercise) {
77
83
78
84
@ Override
79
85
public void run () {
80
- Exercise exercise = exerciseForProject (project );
86
+ final Exercise exercise = exerciseForProject (project );
81
87
82
88
projectMediator .saveAllFiles ();
83
89
final ResultCollector resultCollector = new ResultCollector (exercise );
@@ -89,7 +95,14 @@ public void run() {
89
95
@ Override
90
96
public void bgTaskReady (RunResult result ) {
91
97
log .log (Level .INFO , "Got test results: {0}" , result );
92
- resultCollector .setLocalTestResults (result );
98
+
99
+ boolean canSubmitExercise = exercise .isReturnable ();
100
+ resultDisplayer .showLocalRunResult (result , canSubmitExercise , new Runnable () {
101
+ @ Override
102
+ public void run () {
103
+ exerciseSubmitter .performAction (project );
104
+ }
105
+ }, resultCollector );
93
106
}
94
107
95
108
@ Override
0 commit comments