|
17 | 17 | import javax.swing.JPanel;
|
18 | 18 | import javax.swing.JRadioButton;
|
19 | 19 |
|
20 |
| -import org.openstreetmap.josm.actions.ExpertToggleAction; |
21 | 20 | import org.openstreetmap.josm.data.UserIdentityManager;
|
22 | 21 | import org.openstreetmap.josm.data.oauth.OAuthAccessTokenHolder;
|
23 | 22 | import org.openstreetmap.josm.data.oauth.OAuthVersion;
|
@@ -47,15 +46,6 @@ public class AuthenticationPreferencesPanel extends VerticallyScrollablePanel im
|
47 | 46 | /** the panel for the OAuth 2.0 authentication parameters */
|
48 | 47 | private OAuthAuthenticationPreferencesPanel pnlOAuth20Preferences;
|
49 | 48 |
|
50 |
| - /** Used to determine which API we are using for disabling/enabling Basic Auth/OAuth 1.0a */ |
51 |
| - private String apiUrl = OsmApi.getOsmApi().getServerUrl(); |
52 |
| - /** ExpertToggleAction uses weak references; we don't want this listener to be garbage collected */ |
53 |
| - private final ExpertToggleAction.ExpertModeChangeListener expertModeChangeListener = isExpert -> { |
54 |
| - final String authMethod = OsmApi.getAuthMethod(); |
55 |
| - final boolean defaultApi = JosmUrls.getInstance().getDefaultOsmApiUrl().equals(apiUrl); |
56 |
| - rbBasicAuthentication.setEnabled(rbBasicAuthentication.isSelected() || "basic".equals(authMethod) || isExpert || !defaultApi); |
57 |
| - }; |
58 |
| - |
59 | 49 | /**
|
60 | 50 | * Constructs a new {@code AuthenticationPreferencesPanel}.
|
61 | 51 | */
|
@@ -108,9 +98,8 @@ protected final void build() {
|
108 | 98 | pnlBasicAuthPreferences = new BasicAuthenticationPreferencesPanel();
|
109 | 99 | pnlOAuth20Preferences = new OAuthAuthenticationPreferencesPanel(OAuthVersion.OAuth20);
|
110 | 100 |
|
111 |
| - ExpertToggleAction.addExpertModeChangeListener(expertModeChangeListener, true); |
112 |
| - |
113 | 101 | pnlAuthenticationParameters.add(pnlOAuth20Preferences, BorderLayout.CENTER);
|
| 102 | + this.updateAcceptableAuthenticationMethods(OsmApi.getOsmApi().getServerUrl()); |
114 | 103 | }
|
115 | 104 |
|
116 | 105 | /**
|
@@ -166,7 +155,6 @@ public final void saveToPreferences() {
|
166 | 155 | UserIdentityManager.getInstance().setAnonymous();
|
167 | 156 | }
|
168 | 157 | }
|
169 |
| - ExpertToggleAction.removeExpertModeChangeListener(this.expertModeChangeListener); |
170 | 158 | }
|
171 | 159 |
|
172 | 160 | /**
|
@@ -195,8 +183,18 @@ public void propertyChange(PropertyChangeEvent evt) {
|
195 | 183 | pnlOAuth20Preferences.propertyChange(evt);
|
196 | 184 | }
|
197 | 185 | if (OsmApiUrlInputPanel.API_URL_PROP.equals(evt.getPropertyName())) {
|
198 |
| - this.apiUrl = (String) evt.getNewValue(); |
199 |
| - this.expertModeChangeListener.expertChanged(ExpertToggleAction.isExpert()); |
| 186 | + this.updateAcceptableAuthenticationMethods((String) evt.getNewValue()); |
200 | 187 | }
|
201 | 188 | }
|
| 189 | + |
| 190 | + /** |
| 191 | + * Update the acceptable authentications methods |
| 192 | + * @param apiUrl The API url to check |
| 193 | + */ |
| 194 | + private void updateAcceptableAuthenticationMethods(String apiUrl) { |
| 195 | + final String authMethod = OsmApi.getAuthMethod(); |
| 196 | + final boolean defaultApi = JosmUrls.getInstance().getDefaultOsmApiUrl().equals(apiUrl); |
| 197 | + rbBasicAuthentication.setEnabled(rbBasicAuthentication.isSelected() || "basic".equals(authMethod) || !defaultApi); |
| 198 | + } |
| 199 | + |
202 | 200 | }
|
0 commit comments