55import fi .helsinki .cs .tmc .core .domain .ProgressObserver ;
66import fi .helsinki .cs .tmc .coreimpl .BridgingProgressObserver ;
77import fi .helsinki .cs .tmc .data .ResultCollector ;
8+ import fi .helsinki .cs .tmc .exerciseSubmitter .ExerciseSubmitter ;
89import fi .helsinki .cs .tmc .langs .abstraction .ValidationResult ;
910import fi .helsinki .cs .tmc .langs .domain .RunResult ;
1011import fi .helsinki .cs .tmc .model .CourseDb ;
1112import fi .helsinki .cs .tmc .model .ProjectMediator ;
1213import fi .helsinki .cs .tmc .model .SourceFileLookup ;
14+ import fi .helsinki .cs .tmc .ui .TestResultDisplayer ;
1315import fi .helsinki .cs .tmc .utilities .BgTask ;
1416import fi .helsinki .cs .tmc .utilities .BgTaskListener ;
1517
@@ -30,10 +32,14 @@ public class RunTestsLocallyAction extends AbstractExerciseSensitiveAction imple
3032 private CourseDb courseDb ;
3133 private ProjectMediator projectMediator ;
3234 private Project project ;
35+ private TestResultDisplayer resultDisplayer ;
36+ private ExerciseSubmitter exerciseSubmitter ;
3337
3438 public RunTestsLocallyAction () {
3539 this .courseDb = CourseDb .getInstance ();
3640 this .projectMediator = ProjectMediator .getInstance ();
41+ this .resultDisplayer = TestResultDisplayer .getInstance ();
42+ this .exerciseSubmitter = new ExerciseSubmitter ();
3743
3844 putValue ("noIconInMenu" , Boolean .TRUE );
3945 }
@@ -77,7 +83,7 @@ protected boolean enabledFor(Exercise exercise) {
7783
7884 @ Override
7985 public void run () {
80- Exercise exercise = exerciseForProject (project );
86+ final Exercise exercise = exerciseForProject (project );
8187
8288 projectMediator .saveAllFiles ();
8389 final ResultCollector resultCollector = new ResultCollector (exercise );
@@ -89,7 +95,14 @@ public void run() {
8995 @ Override
9096 public void bgTaskReady (RunResult result ) {
9197 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 );
93106 }
94107
95108 @ Override
0 commit comments