Skip to content

Commit 38a30f6

Browse files
committed
NbTmcSettings
1 parent 051580c commit 38a30f6

19 files changed

+110
-78
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import fi.helsinki.cs.tmc.model.LocalExerciseStatus;
77
import fi.helsinki.cs.tmc.model.ObsoleteClientException;
88
import fi.helsinki.cs.tmc.model.ServerAccess;
9-
import fi.helsinki.cs.tmc.model.TmcSettings;
9+
import fi.helsinki.cs.tmc.model.NBTmcSettings;
1010
import fi.helsinki.cs.tmc.ui.DownloadOrUpdateExercisesDialog;
1111
import fi.helsinki.cs.tmc.ui.ConvenientDialogDisplayer;
1212
import fi.helsinki.cs.tmc.ui.TmcNotificationDisplayer;
@@ -74,7 +74,7 @@ public void actionPerformed(ActionEvent e) {
7474
public void run() {
7575
final Course currentCourseBeforeUpdate = courseDb.getCurrentCourse();
7676

77-
if (backgroundCheck && !TmcSettings.getDefault().isCheckingForUpdatesInTheBackground()) {
77+
if (backgroundCheck && !NBTmcSettings.getDefault().isCheckingForUpdatesInTheBackground()) {
7878
return;
7979
}
8080

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import fi.helsinki.cs.tmc.model.CourseDb;
55
import fi.helsinki.cs.tmc.model.ProjectMediator;
66
import fi.helsinki.cs.tmc.model.TmcProjectInfo;
7-
import fi.helsinki.cs.tmc.model.TmcSettings;
7+
import fi.helsinki.cs.tmc.model.NBTmcSettings;
88
import fi.helsinki.cs.tmc.ui.TmcNotificationDisplayer;
99
import java.awt.event.ActionEvent;
1010
import java.awt.event.ActionListener;
@@ -16,7 +16,7 @@
1616

1717
public class CheckForUnopenedExercises implements ActionListener {
1818
public static boolean shouldRunOnStartup() {
19-
return TmcSettings.getDefault().isCheckingForUnopenedAtStartup();
19+
return NBTmcSettings.getDefault().isCheckingForUnopenedAtStartup();
2020
}
2121

2222
private static final TmcNotificationDisplayer.SingletonToken notifierToken = TmcNotificationDisplayer.createSingletonToken();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import fi.helsinki.cs.tmc.model.ProjectMediator;
77
import fi.helsinki.cs.tmc.model.ServerAccess;
88
import fi.helsinki.cs.tmc.model.TmcProjectInfo;
9-
import fi.helsinki.cs.tmc.model.TmcSettings;
9+
import fi.helsinki.cs.tmc.model.NBTmcSettings;
1010
import fi.helsinki.cs.tmc.ui.ConvenientDialogDisplayer;
1111
import fi.helsinki.cs.tmc.utilities.BgTask;
1212
import fi.helsinki.cs.tmc.utilities.BgTaskListener;
@@ -119,7 +119,7 @@ public Void apply(Boolean yes) {
119119
}
120120

121121
private void downloadSolution(final Exercise ex, final TmcProjectInfo proj) {
122-
ServerAccess serverAccess = new ServerAccess(TmcSettings.getDefault());
122+
ServerAccess serverAccess = new ServerAccess(NBTmcSettings.getDefault());
123123
CancellableCallable<byte[]> downloadTask = serverAccess.getDownloadingExerciseSolutionZipTask(ex);
124124
BgTask.start("Downloading solution for " + ex.getName(), downloadTask, new BgTaskListener<byte[]>() {
125125
@Override

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import fi.helsinki.cs.tmc.model.ProjectMediator;
66
import fi.helsinki.cs.tmc.model.ServerAccess;
77
import fi.helsinki.cs.tmc.model.TmcProjectInfo;
8-
import fi.helsinki.cs.tmc.model.TmcSettings;
8+
import fi.helsinki.cs.tmc.model.NBTmcSettings;
99
import fi.helsinki.cs.tmc.ui.ConvenientDialogDisplayer;
1010
import fi.helsinki.cs.tmc.ui.PastebinDialog;
1111
import fi.helsinki.cs.tmc.ui.PastebinResponseDialog;
@@ -46,13 +46,13 @@
4646
public final class PastebinAction extends AbstractExerciseSensitiveAction {
4747

4848
private static final Logger log = Logger.getLogger(RequestReviewAction.class.getName());
49-
private TmcSettings settings;
49+
private NBTmcSettings settings;
5050
private CourseDb courseDb;
5151
private ProjectMediator projectMediator;
5252
private ConvenientDialogDisplayer dialogs;
5353

5454
public PastebinAction() {
55-
this.settings = TmcSettings.getDefault();
55+
this.settings = NBTmcSettings.getDefault();
5656
this.courseDb = CourseDb.getInstance();
5757
this.projectMediator = ProjectMediator.getInstance();
5858
this.dialogs = ConvenientDialogDisplayer.getDefault();

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import fi.helsinki.cs.tmc.model.CourseDb;
99
import fi.helsinki.cs.tmc.model.ServerAccess;
1010
import fi.helsinki.cs.tmc.model.TmcCoreSingleton;
11-
import fi.helsinki.cs.tmc.model.TmcSettings;
11+
import fi.helsinki.cs.tmc.model.NBTmcSettings;
1212
import fi.helsinki.cs.tmc.utilities.BgTaskListener;
1313
import fi.helsinki.cs.tmc.ui.ConvenientDialogDisplayer;
1414
import fi.helsinki.cs.tmc.utilities.BgTask;
@@ -35,13 +35,13 @@ public final class RefreshCoursesAction {
3535

3636
private BgTaskListenerList<List<Course>> listeners;
3737
private final TmcCore tmcCore;
38-
private final TmcSettings tmcSettings;
38+
private final NBTmcSettings tmcSettings;
3939

4040
public RefreshCoursesAction() {
41-
this(TmcSettings.getDefault());
41+
this(NBTmcSettings.getDefault());
4242
}
4343

44-
public RefreshCoursesAction(TmcSettings settings) {
44+
public RefreshCoursesAction(NBTmcSettings settings) {
4545
this.tmcSettings = settings;
4646
this.serverAccess = new ServerAccess(settings);
4747
this.serverAccess.setSettings(settings);
@@ -62,7 +62,7 @@ public RefreshCoursesAction addListener(BgTaskListener<List<Course>> listener) {
6262
return this;
6363
}
6464

65-
public void run() {
65+
/*public void run() {
6666
try {
6767
Credentials credentials = new Credentials(this.tmcSettings.getUsername(),
6868
this.tmcSettings.getPassword()) {};
@@ -83,9 +83,9 @@ public void onFailure(Throwable thrwbl) {
8383
} catch (TmcCoreException ex) {
8484
Exceptions.printStackTrace(ex);
8585
}
86-
}
86+
}*/
8787

88-
public void oldRun() {
88+
public void run() {
8989

9090
CancellableCallable<List<Course>> courseListTask = serverAccess.getDownloadingCourseListTask();
9191
BgTask.start("Refreshing course list", courseListTask, new BgTaskListener<List<Course>>() {

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import fi.helsinki.cs.tmc.model.ProjectMediator;
88
import fi.helsinki.cs.tmc.model.ServerAccess;
99
import fi.helsinki.cs.tmc.model.TmcProjectInfo;
10-
import fi.helsinki.cs.tmc.model.TmcSettings;
10+
import fi.helsinki.cs.tmc.model.NBTmcSettings;
1111
import fi.helsinki.cs.tmc.spyware.LoggableEvent;
1212
import fi.helsinki.cs.tmc.ui.CodeReviewRequestDialog;
1313
import fi.helsinki.cs.tmc.ui.ConvenientDialogDisplayer;
@@ -44,14 +44,14 @@
4444
public class RequestReviewAction extends AbstractExerciseSensitiveAction {
4545

4646
private static final Logger log = Logger.getLogger(RequestReviewAction.class.getName());
47-
private TmcSettings settings;
47+
private NBTmcSettings settings;
4848
private CourseDb courseDb;
4949
private ProjectMediator projectMediator;
5050
private ConvenientDialogDisplayer dialogs;
5151
private TmcEventBus eventBus;
5252

5353
public RequestReviewAction() {
54-
this.settings = TmcSettings.getDefault();
54+
this.settings = NBTmcSettings.getDefault();
5555
this.courseDb = CourseDb.getInstance();
5656
this.projectMediator = ProjectMediator.getInstance();
5757
this.dialogs = ConvenientDialogDisplayer.getDefault();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import hy.tmc.core.domain.Course;
44
import fi.helsinki.cs.tmc.model.CourseDb;
55
import fi.helsinki.cs.tmc.model.LocalExerciseStatus;
6-
import fi.helsinki.cs.tmc.model.TmcSettings;
6+
import fi.helsinki.cs.tmc.model.NBTmcSettings;
77
import fi.helsinki.cs.tmc.ui.PreferencesUI;
88
import fi.helsinki.cs.tmc.ui.DownloadOrUpdateExercisesDialog;
99
import fi.helsinki.cs.tmc.utilities.BgTaskListener;
@@ -32,7 +32,7 @@ public void actionPerformed(ActionEvent e) {
3232

3333
PreferencesUI prefUi = (PreferencesUI) e.getSource();
3434

35-
TmcSettings settings = TmcSettings.getDefault();
35+
NBTmcSettings settings = NBTmcSettings.getDefault();
3636
settings.setUsername(prefUi.getUsername());
3737
settings.setPassword(prefUi.getPassword());
3838
settings.setSavingPassword(prefUi.getShouldSavePassword());

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

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

33
import fi.helsinki.cs.tmc.model.CourseDb;
4-
import fi.helsinki.cs.tmc.model.TmcSettings;
4+
import fi.helsinki.cs.tmc.model.NBTmcSettings;
55
import fi.helsinki.cs.tmc.tailoring.SelectedTailoring;
66
import fi.helsinki.cs.tmc.tailoring.Tailoring;
77
import fi.helsinki.cs.tmc.ui.PreferencesUI;
@@ -50,11 +50,11 @@ public void run() {
5050

5151
final PreferencesUI prefUI = prefUiFactory.createCurrentPreferencesUI();
5252

53-
TmcSettings settings = TmcSettings.getDefault();
53+
NBTmcSettings settings = NBTmcSettings.getDefault();
5454
prefUI.setUsername(settings.getUsername());
5555
prefUI.setPassword(settings.getPassword());
5656
prefUI.setShouldSavePassword(settings.isSavingPassword());
57-
prefUI.setServerBaseUrl(settings.getServerBaseUrl());
57+
prefUI.setServerBaseUrl(settings.getServerAddress());
5858
prefUI.setProjectDir(settings.getProjectRootDir());
5959
prefUI.setCheckForUpdatesInTheBackground(settings.isCheckingForUpdatesInTheBackground());
6060
prefUI.setCheckForUnopenedExercisesAtStartup(settings.isCheckingForUnopenedAtStartup());

tmc-plugin/src/fi/helsinki/cs/tmc/exerciseSubmitter/ExerciseSubmitter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import fi.helsinki.cs.tmc.model.ServerAccess;
1414
import fi.helsinki.cs.tmc.model.SubmissionResultWaiter;
1515
import fi.helsinki.cs.tmc.model.TmcProjectInfo;
16-
import fi.helsinki.cs.tmc.model.TmcSettings;
16+
import fi.helsinki.cs.tmc.model.NBTmcSettings;
1717
import fi.helsinki.cs.tmc.ui.ConvenientDialogDisplayer;
1818
import fi.helsinki.cs.tmc.ui.SubmissionResultWaitingDialog;
1919
import fi.helsinki.cs.tmc.ui.TestResultDisplayer;
@@ -41,7 +41,7 @@ public InvokedEvent(TmcProjectInfo projectInfo) {
4141
}
4242
}
4343

44-
private TmcSettings settings;
44+
private NBTmcSettings settings;
4545
private ServerAccess serverAccess;
4646
private CourseDb courseDb;
4747
private ProjectMediator projectMediator;
@@ -50,7 +50,7 @@ public InvokedEvent(TmcProjectInfo projectInfo) {
5050
private TmcEventBus eventBus;
5151

5252
public ExerciseSubmitter() {
53-
this.settings = TmcSettings.getDefault();
53+
this.settings = NBTmcSettings.getDefault();
5454
this.serverAccess = new ServerAccess();
5555
this.courseDb = CourseDb.getInstance();
5656
this.projectMediator = ProjectMediator.getInstance();

tmc-plugin/src/fi/helsinki/cs/tmc/model/TmcSettings.java renamed to tmc-plugin/src/fi/helsinki/cs/tmc/model/NBTmcSettings.java

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package fi.helsinki.cs.tmc.model;
22

3+
import com.google.common.base.Optional;
34
import fi.helsinki.cs.tmc.events.TmcEvent;
45
import fi.helsinki.cs.tmc.events.TmcEventBus;
56
import fi.helsinki.cs.tmc.tailoring.SelectedTailoring;
67
import fi.helsinki.cs.tmc.tailoring.Tailoring;
8+
import hy.tmc.core.configuration.TmcSettings;
9+
import hy.tmc.core.domain.Course;
710
import java.util.Locale;
811

912
/**
1013
* A transient saveable collection of all settings of the TMC plugin.
1114
*/
12-
public class TmcSettings {
15+
public class NBTmcSettings implements TmcSettings {
1316
private static final String PREF_BASE_URL = "baseUrl";
1417
private static final String PREF_USERNAME = "username";
1518
private static final String PREF_PASSWORD = "password";
@@ -20,34 +23,59 @@ public class TmcSettings {
2023
private static final String PREF_DETAILED_SPYWARE_ENABLED = "detailedSpywareEnabled";
2124
private static final String PREF_ERROR_MSG_LOCALE = "errorMsgLocale";
2225

23-
private static final TmcSettings defaultInstance =
24-
new TmcSettings(
25-
PersistableSettings.forModule(TmcSettings.class),
26+
private static final NBTmcSettings defaultInstance =
27+
new NBTmcSettings(
28+
PersistableSettings.forModule(NBTmcSettings.class),
2629
SelectedTailoring.get(),
2730
TmcEventBus.getDefault()
2831
);
2932

3033
private PersistableSettings settings;
3134
private Tailoring tailoring;
3235
private TmcEventBus eventBus;
36+
private final String api_version = "7";
3337

3438
private String unsavedPassword;
39+
40+
@Override
41+
public boolean userDataExists() {
42+
return !(this.getUsername().isEmpty() || this.getPassword().isEmpty());
43+
}
44+
45+
@Override
46+
public Optional<Course> getCurrentCourse() {
47+
if(CourseDb.getInstance().getCurrentCourse() == null){
48+
return Optional.absent();
49+
} else {
50+
return Optional.of(CourseDb.getInstance().getCurrentCourse());
51+
}
52+
}
53+
54+
@Override
55+
public String apiVersion() {
56+
return this.api_version;
57+
}
58+
59+
@Override
60+
public String getFormattedUserData() {
61+
return this.getUsername() + ":" + this.getPassword();
62+
}
3563

3664
public static class SavedEvent implements TmcEvent {}
3765

38-
public static TmcSettings getDefault() {
66+
public static NBTmcSettings getDefault() {
3967
return defaultInstance;
4068
}
4169

42-
public static TmcSettings getTransient() {
43-
return new TmcSettings(
44-
PersistableSettings.forModule(TmcSettings.class),
70+
public static NBTmcSettings getTransient() {
71+
return new NBTmcSettings(
72+
PersistableSettings.forModule(NBTmcSettings.class),
4573
SelectedTailoring.get(),
4674
TmcEventBus.getDefault()
4775
);
4876
}
4977

50-
/*package*/ TmcSettings(PersistableSettings settings, Tailoring tailoring, TmcEventBus eventBus) {
78+
/*package*/ NBTmcSettings(PersistableSettings settings, Tailoring tailoring, TmcEventBus eventBus) {
5179
this.settings = settings;
5280
this.tailoring = tailoring;
5381
this.eventBus = eventBus;
@@ -64,7 +92,8 @@ public void save() {
6492

6593
}
6694

67-
public String getServerBaseUrl() {
95+
@Override
96+
public String getServerAddress() {
6897
return settings.get(PREF_BASE_URL, tailoring.getDefaultServerUrl());
6998
}
7099

@@ -80,6 +109,7 @@ private String stripTrailingSlashes(String s) {
80109
return s;
81110
}
82111

112+
@Override
83113
public String getUsername() {
84114
return settings.get(PREF_USERNAME, tailoring.getDefaultUsername());
85115
}
@@ -88,6 +118,7 @@ public void setUsername(String username) {
88118
settings.put(PREF_USERNAME, username);
89119
}
90120

121+
@Override
91122
public String getPassword() {
92123
return unsavedPassword;
93124
}
@@ -182,3 +213,4 @@ private Locale parseLocale(String s, Locale dflt) {
182213
}
183214

184215
}
216+

0 commit comments

Comments
 (0)