2
2
3
3
import fi .helsinki .cs .tmc .core .configuration .TmcSettings ;
4
4
import fi .helsinki .cs .tmc .core .domain .Course ;
5
+ import fi .helsinki .cs .tmc .core .domain .OauthCredentials ;
5
6
import fi .helsinki .cs .tmc .core .events .TmcEvent ;
6
7
import fi .helsinki .cs .tmc .core .events .TmcEventBus ;
7
8
import fi .helsinki .cs .tmc .model .CourseDb ;
24
25
25
26
public class TmcCoreSettingsImpl implements TmcSettings {
26
27
27
-
28
+
28
29
private static final String PREF_BASE_URL = "baseUrl" ;
29
30
private static final String PREF_USERNAME = "username" ;
30
31
private static final String PREF_PASSWORD = "password" ;
@@ -37,19 +38,25 @@ public class TmcCoreSettingsImpl implements TmcSettings {
37
38
private static final String PREF_RESOLVE_DEPENDENCIES = "resolveDependencies" ;
38
39
private static final String PREF_SEND_DIAGNOSTICS = "sendDiagnostics" ;
39
40
private static final String PREF_OAUTH_TOKEN = "oauthToken" ;
40
-
41
+ private static final String PREF_OAUTH_APPLICATION_ID = "oauthApplicationId" ;
42
+ private static final String PREF_OAUTH_SECRET = "oauthSecret" ;
43
+ private static final String PREF_ORGANIZATION = "organization" ;
44
+
41
45
private static PersistableSettings settings = PersistableSettings .forModule (TmcCoreSettingsImpl .class );
42
46
43
47
private Tailoring tailoring = SelectedTailoring .get ();
44
48
private TmcEventBus eventBus = TmcEventBus .getDefault ();
45
-
46
- private String unsavedPassword = settings .get (PREF_PASSWORD , "" );
47
49
48
50
@ Override
49
51
public String getServerAddress () {
50
52
return settings .get (PREF_BASE_URL , tailoring .getDefaultServerUrl ());
51
53
}
52
54
55
+ @ Override
56
+ public void setServerAddress (String address ) {
57
+ settings .put (PREF_BASE_URL , address );
58
+ }
59
+
53
60
@ Override
54
61
public boolean userDataExists () {
55
62
return true ;
@@ -60,11 +67,6 @@ public Optional<Course> getCurrentCourse() {
60
67
return Optional .of (CourseDb .getInstance ().getCurrentCourse ());
61
68
}
62
69
63
- @ Override
64
- public String apiVersion () {
65
- return "7" ;
66
- }
67
-
68
70
@ Override
69
71
public String clientName () {
70
72
return "netbeans_plugin" ;
@@ -119,7 +121,7 @@ public Path getConfigRoot() {
119
121
throw new RuntimeException (ex );
120
122
}
121
123
}
122
-
124
+
123
125
return FileUtil .toFile (tmcRoot ).toPath ();
124
126
}
125
127
@@ -142,42 +144,61 @@ public String hostProgramVersion() {
142
144
}
143
145
return "unknown" ;
144
146
}
145
-
147
+
148
+ @ Override
149
+ public OauthCredentials getOauthCredentials () {
150
+ return new OauthCredentials (settings .get (PREF_OAUTH_APPLICATION_ID , null ), settings .get (PREF_OAUTH_SECRET , null ));
151
+ }
152
+
153
+ @ Override
154
+ public void setOauthCredentials (OauthCredentials credentials ) {
155
+ settings .put (PREF_OAUTH_APPLICATION_ID , credentials .getOauthApplicationId ());
156
+ settings .put (PREF_OAUTH_SECRET , credentials .getOauthSecret ());
157
+ }
158
+
159
+ @ Override
160
+ public void setOrganization (String organization ) {
161
+ settings .put (PREF_ORGANIZATION , organization );
162
+ }
163
+
164
+ @ Override
165
+ public String getOrganization () {
166
+ return settings .get (PREF_ORGANIZATION , null );
167
+ }
168
+
146
169
public static class SavedEvent implements TmcEvent {}
147
-
170
+
148
171
public TmcCoreSettingsImpl () {
149
172
// NOP
150
173
}
151
-
174
+
152
175
/*package*/ TmcCoreSettingsImpl (PersistableSettings settings , Tailoring tailoring , TmcEventBus eventBus ) {
153
176
this .settings = settings ;
154
177
this .tailoring = tailoring ;
155
178
this .eventBus = eventBus ;
156
-
157
- this .unsavedPassword = settings .get (PREF_PASSWORD , "" );
158
179
}
159
-
180
+
160
181
public void save () {
161
182
settings .saveAll ();
162
- eventBus .post (new SavedEvent ());
183
+ eventBus .post (new SavedEvent ());
163
184
}
164
185
165
186
public String getServerBaseUrl () {
166
187
return settings .get (PREF_BASE_URL , tailoring .getDefaultServerUrl ());
167
188
}
168
-
189
+
169
190
public void setServerBaseUrl (String baseUrl ) {
170
191
baseUrl = stripTrailingSlashes (baseUrl );
171
192
settings .put (PREF_BASE_URL , baseUrl );
172
193
}
173
-
194
+
174
195
private String stripTrailingSlashes (String s ) {
175
196
while (s .endsWith ("/" )) {
176
197
s = s .substring (0 , s .length () - 1 );
177
198
}
178
199
return s ;
179
200
}
180
-
201
+
181
202
@ Override
182
203
public String getUsername () {
183
204
return settings .get (PREF_USERNAME , tailoring .getDefaultUsername ());
@@ -186,31 +207,21 @@ public String getUsername() {
186
207
public void setUsername (String username ) {
187
208
settings .put (PREF_USERNAME , username );
188
209
}
189
-
210
+
190
211
@ Override
191
212
public Optional <String > getPassword () {
192
- return Optional .fromNullable (unsavedPassword );
213
+ return Optional .fromNullable (settings . get ( PREF_PASSWORD , null ) );
193
214
}
194
-
195
- public void setPassword (String password ) {
196
- unsavedPassword = password ;
197
- if (isSavingPassword ()) {
198
- settings .put (PREF_PASSWORD , password );
199
- }
200
- }
201
-
202
- public void setSavingPassword (boolean shouldSave ) {
203
- if (shouldSave ) {
204
- settings .put (PREF_PASSWORD , unsavedPassword );
215
+
216
+ @ Override
217
+ public void setPassword (Optional <String > password ) {
218
+ if (password .isPresent ()) {
219
+ settings .put (PREF_PASSWORD , password .get ());
205
220
} else {
206
221
settings .remove (PREF_PASSWORD );
207
222
}
208
223
}
209
-
210
- public boolean isSavingPassword () {
211
- return settings .get (PREF_PASSWORD , null ) != null ;
212
- }
213
-
224
+
214
225
public String getProjectRootDir () {
215
226
String path = settings .get (PREF_PROJECT_ROOT_DIR , null );
216
227
if (path != null ) {
@@ -220,23 +231,23 @@ public String getProjectRootDir() {
220
231
return ProjectMediator .getDefaultProjectRootDir ();
221
232
}
222
233
}
223
-
234
+
224
235
public void setProjectRootDir (String value ) {
225
236
settings .put (PREF_PROJECT_ROOT_DIR , value );
226
237
}
227
-
238
+
228
239
public boolean isCheckingForUpdatesInTheBackground () {
229
240
return settings .get (PREF_CHECK_FOR_UPDATES_IN_BACKGROUND , "1" ).equals ("1" );
230
241
}
231
-
242
+
232
243
public void setCheckingForUpdatesInTheBackground (boolean value ) {
233
244
settings .put (PREF_CHECK_FOR_UPDATES_IN_BACKGROUND , value ? "1" : "0" );
234
245
}
235
-
246
+
236
247
public boolean isCheckingForUnopenedAtStartup () {
237
248
return settings .get (PREF_CHECK_FOR_UNOPENED_AT_STARTUP , "1" ).equals ("1" );
238
249
}
239
-
250
+
240
251
public void setCheckingForUnopenedAtStartup (boolean value ) {
241
252
settings .put (PREF_CHECK_FOR_UNOPENED_AT_STARTUP , value ? "1" : "0" );
242
253
}
@@ -249,53 +260,48 @@ public boolean isSpywareEnabled() {
249
260
public void setIsSpywareEnabled (boolean value ) {
250
261
settings .put (PREF_SPYWARE_ENABLED , value ? "1" : "0" );
251
262
}
252
-
263
+
253
264
public boolean isDetailedSpywareEnabled () {
254
265
String defaultValue = tailoring .isDetailedSpywareEnabledByDefault () ? "1" : "0" ;
255
266
return settings .get (PREF_DETAILED_SPYWARE_ENABLED , defaultValue ).equals ("1" );
256
267
}
257
-
268
+
258
269
public Locale getErrorMsgLocale () {
259
270
Locale dflt = tailoring .getDefaultErrorMsgLocale ();
260
271
return parseLocale (settings .get (PREF_ERROR_MSG_LOCALE , "" ), dflt );
261
272
}
262
-
273
+
263
274
public void setErrorMsgLocale (Locale locale ) {
264
275
settings .put (PREF_ERROR_MSG_LOCALE , locale .toString ());
265
276
}
266
-
277
+
267
278
public void setResolveDependencies (boolean value ) {
268
279
settings .put (PREF_RESOLVE_DEPENDENCIES , value ? "1" : "0" );
269
280
}
270
-
281
+
271
282
public boolean getResolveDependencies () {
272
283
return settings .get (PREF_RESOLVE_DEPENDENCIES , "1" ).equals ("1" );
273
284
}
274
285
275
286
public void setSendDiagnostics (boolean value ) {
276
287
settings .put (PREF_SEND_DIAGNOSTICS , value ? "1" : "0" );
277
288
}
278
-
289
+
279
290
@ Override
280
291
public boolean getSendDiagnostics () {
281
292
return settings .get (PREF_SEND_DIAGNOSTICS , "1" ).equals ("1" );
282
293
}
283
-
294
+
284
295
@ Override
285
296
public Optional <String > getToken () {
286
297
return Optional .fromNullable (settings .get (PREF_OAUTH_TOKEN , null ));
287
298
}
288
-
299
+
289
300
@ Override
290
301
public void setToken (String token ) {
291
302
settings .put (PREF_OAUTH_TOKEN , token );
292
303
}
293
-
294
- @ Override
295
- public String getOauthSecret () {
296
- return ;
297
- }
298
-
304
+
299
305
private Locale parseLocale (String s , Locale dflt ) {
300
306
if (s .isEmpty ()) {
301
307
return dflt ;
@@ -312,5 +318,4 @@ private Locale parseLocale(String s, Locale dflt) {
312
318
return dflt ;
313
319
}
314
320
}
315
-
316
321
}
0 commit comments