001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.preferences.server;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
007import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
008import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
009import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
010import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
011
012/**
013 * Authentication sub-preferences in server preferences.
014 * @since 6523
015 */
016public final class AuthenticationPreference implements SubPreferenceSetting {
017
018    /**
019     * Factory used to create a new {@code AuthenticationPreference}.
020     */
021    public static class Factory implements PreferenceSettingFactory {
022        @Override
023        public PreferenceSetting createPreferenceSetting() {
024            return new AuthenticationPreference();
025        }
026    }
027
028    AuthenticationPreferencesPanel pnlAuthPreferences;
029
030    private AuthenticationPreference() {
031        super();
032    }
033
034    @Override
035    public void addGui(PreferenceTabbedPane gui) {
036        pnlAuthPreferences = new AuthenticationPreferencesPanel();
037        gui.getServerPreference().addApiUrlChangeListener(pnlAuthPreferences);
038        gui.getServerPreference().addSubTab(this, tr("Authentication"),
039                pnlAuthPreferences.getVerticalScrollPane(),
040                tr("Configure your identity and how to authenticate at the OSM server"));
041    }
042
043    @Override
044    public boolean ok() {
045        pnlAuthPreferences.saveToPreferences();
046        return false;
047    }
048
049    @Override
050    public boolean isExpert() {
051        return false;
052    }
053
054    @Override
055    public TabPreferenceSetting getTabPreferenceSetting(PreferenceTabbedPane gui) {
056        return gui.getServerPreference();
057    }
058}