Changeset 12846 in josm


Ignore:
Timestamp:
2017-09-13T23:24:50+02:00 (20 months ago)
Author:
bastiK
Message:

see #15229 - use Config.getPref() wherever possible

Location:
trunk/src/org/openstreetmap/josm
Files:
222 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/Main.java

    r12777 r12846  
    4949import org.openstreetmap.josm.io.OnlineResource;
    5050import org.openstreetmap.josm.io.OsmApi;
     51import org.openstreetmap.josm.spi.preferences.Config;
    5152import org.openstreetmap.josm.tools.CheckParameterUtil;
    5253import org.openstreetmap.josm.tools.ImageProvider;
     
    724725    public static void preConstructorInit() {
    725726        // init default coordinate format
    726         ICoordinateFormat fmt = CoordinateFormatManager.getCoordinateFormat(Main.pref.get("coordinates"));
     727        ICoordinateFormat fmt = CoordinateFormatManager.getCoordinateFormat(Config.getPref().get("coordinates"));
    727728        if (fmt == null) {
    728729            fmt = DecimalDegreesCoordinateFormat.INSTANCE;
     
    10071008     */
    10081009    public static String getJOSMWebsite() {
    1009         if (Main.pref != null)
    1010             return Main.pref.get("josm.url", JOSM_WEBSITE);
     1010        if (Config.getPref() != null)
     1011            return Config.getPref().get("josm.url", JOSM_WEBSITE);
    10111012        return JOSM_WEBSITE;
    10121013    }
     
    10281029     */
    10291030    public static String getOSMWebsite() {
    1030         if (Main.pref != null)
    1031             return Main.pref.get("osm.url", OSM_WEBSITE);
     1031        if (Config.getPref() != null)
     1032            return Config.getPref().get("osm.url", OSM_WEBSITE);
    10321033        return OSM_WEBSITE;
    10331034    }
     
    10521053     */
    10531054    public static String getBaseBrowseUrl() {
    1054         if (Main.pref != null)
    1055             return Main.pref.get("osm-browse.url", getOSMWebsiteDependingOnSelectedApi());
     1055        if (Config.getPref() != null)
     1056            return Config.getPref().get("osm-browse.url", getOSMWebsiteDependingOnSelectedApi());
    10561057        return getOSMWebsiteDependingOnSelectedApi();
    10571058    }
     
    10631064     */
    10641065    public static String getBaseUserUrl() {
    1065         if (Main.pref != null)
    1066             return Main.pref.get("osm-user.url", getOSMWebsiteDependingOnSelectedApi() + "/user");
     1066        if (Config.getPref() != null)
     1067            return Config.getPref().get("osm-user.url", getOSMWebsiteDependingOnSelectedApi() + "/user");
    10671068        return getOSMWebsiteDependingOnSelectedApi() + "/user";
    10681069    }
  • trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java

    r12639 r12846  
    3737import org.openstreetmap.josm.gui.dialogs.ValidatorDialog.ValidatorBoundingXYVisitor;
    3838import org.openstreetmap.josm.gui.layer.Layer;
     39import org.openstreetmap.josm.spi.preferences.Config;
    3940import org.openstreetmap.josm.tools.Logging;
    4041import org.openstreetmap.josm.tools.Shortcut;
     
    262263        if (v.getBounds() == null)
    263264            return null;
    264         v.enlargeBoundingBox(Main.pref.getDouble("validator.zoom-enlarge-bbox", 0.0002));
     265        v.enlargeBoundingBox(Config.getPref().getDouble("validator.zoom-enlarge-bbox", 0.0002));
    265266        return v;
    266267    }
     
    314315        // Make the bounding box at least 100 meter wide to
    315316        // ensure reasonable zoom level when zooming onto single nodes.
    316         v.enlargeToMinSize(Main.pref.getDouble("zoom_to_selection_min_size_in_meter", 100));
     317        v.enlargeToMinSize(Config.getPref().getDouble("zoom_to_selection_min_size_in_meter", 100));
    317318        return v;
    318319    }
  • trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java

    r12841 r12846  
    2121import javax.swing.SwingUtilities;
    2222
    23 import org.openstreetmap.josm.Main;
    2423import org.openstreetmap.josm.actions.relation.DownloadSelectedIncompleteMembersAction;
    2524import org.openstreetmap.josm.command.AddCommand;
     
    4342import org.openstreetmap.josm.gui.dialogs.relation.sort.RelationSorter;
    4443import org.openstreetmap.josm.gui.util.GuiHelper;
     44import org.openstreetmap.josm.spi.preferences.Config;
    4545import org.openstreetmap.josm.tools.Pair;
    4646import org.openstreetmap.josm.tools.Shortcut;
     
    115115                    SwingUtilities.invokeLater(() -> {
    116116                            MainApplication.getMap().relationListDialog.selectRelation(relation);
    117                             if (Main.pref.getBoolean("multipoly.show-relation-editor", false)) {
     117                            if (Config.getPref().getBoolean("multipoly.show-relation-editor", false)) {
    118118                                //Open relation edit window, if set up in preferences
    119119                                RelationEditor editor = RelationEditor.getEditor(
     
    382382
    383383        // filter out empty key conflicts - we need second iteration
    384         if (!Main.pref.getBoolean("multipoly.alltags", false)) {
     384        if (!Config.getPref().getBoolean("multipoly.alltags", false)) {
    385385            for (RelationMember m : relation.getMembers()) {
    386386                if (m.hasRole() && "outer".equals(m.getRole()) && m.isWay()) {
     
    398398        }
    399399
    400         for (String linearTag : Main.pref.getList("multipoly.lineartagstokeep", DEFAULT_LINEAR_TAGS)) {
     400        for (String linearTag : Config.getPref().getList("multipoly.lineartagstokeep", DEFAULT_LINEAR_TAGS)) {
    401401            values.remove(linearTag);
    402402        }
     
    408408
    409409        List<Command> commands = new ArrayList<>();
    410         boolean moveTags = Main.pref.getBoolean("multipoly.movetags", true);
     410        boolean moveTags = Config.getPref().getBoolean("multipoly.movetags", true);
    411411
    412412        for (Entry<String, String> entry : values.entrySet()) {
  • trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java

    r12841 r12846  
    88import java.awt.event.KeyEvent;
    99
    10 import org.openstreetmap.josm.Main;
    1110import org.openstreetmap.josm.gui.MainApplication;
    1211import org.openstreetmap.josm.gui.MapFrame;
     12import org.openstreetmap.josm.spi.preferences.Config;
    1313import org.openstreetmap.josm.tools.ImageProvider;
    1414import org.openstreetmap.josm.tools.Shortcut;
     
    3636        );
    3737        putValue("help", ht("/ToggleDialogs"));
    38         setSelected(Main.pref.getBoolean("draw.dialogspanel", true));
     38        setSelected(Config.getPref().getBoolean("draw.dialogspanel", true));
    3939        notifySelectedState();
    4040    }
     
    4343    public void actionPerformed(ActionEvent e) {
    4444        toggleSelectedState(e);
    45         Main.pref.putBoolean("draw.dialogspanel", isSelected());
     45        Config.getPref().putBoolean("draw.dialogspanel", isSelected());
    4646        notifySelectedState();
    4747        setMode();
     
    5252            boolean selected = isSelected();
    5353            if (!selected) {
    54                 toolbarPreviouslyVisible = Main.pref.getBoolean("toolbar.visible", true);
    55                 sideToolbarPreviouslyVisible = Main.pref.getBoolean("sidetoolbar.visible", true);
     54                toolbarPreviouslyVisible = Config.getPref().getBoolean("toolbar.visible", true);
     55                sideToolbarPreviouslyVisible = Config.getPref().getBoolean("sidetoolbar.visible", true);
    5656            }
    5757            MapFrame map = MainApplication.getMap();
    5858            map.setDialogsPanelVisible(selected);
    59             map.statusLine.setVisible(selected || Main.pref.getBoolean("statusbar.always-visible", true));
    60             MainApplication.getMenu().setVisible(selected || Main.pref.getBoolean("menu.always-visible", true));
     59            map.statusLine.setVisible(selected || Config.getPref().getBoolean("statusbar.always-visible", true));
     60            MainApplication.getMenu().setVisible(selected || Config.getPref().getBoolean("menu.always-visible", true));
    6161            // Toolbars listen to preference changes, use it here
    62             if (!Main.pref.getBoolean("toolbar.always-visible", true) && (!selected || toolbarPreviouslyVisible)) {
    63                 Main.pref.putBoolean("toolbar.visible", selected);
     62            if (!Config.getPref().getBoolean("toolbar.always-visible", true) && (!selected || toolbarPreviouslyVisible)) {
     63                Config.getPref().putBoolean("toolbar.visible", selected);
    6464            }
    65             if (!Main.pref.getBoolean("sidetoolbar.always-visible", true) && (!selected || sideToolbarPreviouslyVisible)) {
    66                 Main.pref.putBoolean("sidetoolbar.visible", selected);
     65            if (!Config.getPref().getBoolean("sidetoolbar.always-visible", true) && (!selected || sideToolbarPreviouslyVisible)) {
     66                Config.getPref().putBoolean("sidetoolbar.visible", selected);
    6767            }
    6868            map.mapView.rememberLastPositionOnScreen();
  • trunk/src/org/openstreetmap/josm/actions/FullscreenToggleAction.java

    r12841 r12846  
    2222import org.openstreetmap.josm.gui.MainApplication;
    2323import org.openstreetmap.josm.gui.util.GuiHelper;
     24import org.openstreetmap.josm.spi.preferences.Config;
    2425import org.openstreetmap.josm.tools.Shortcut;
    2526
     
    4647        MainApplication.getToolbar().register(this);
    4748        gd = GraphicsEnvironment.isHeadless() ? null : GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
    48         setSelected(Main.pref.getBoolean("draw.fullscreen", false));
     49        setSelected(Config.getPref().getBoolean("draw.fullscreen", false));
    4950        notifySelectedState();
    5051    }
     
    5354    public void actionPerformed(ActionEvent e) {
    5455        toggleSelectedState(e);
    55         Main.pref.putBoolean("draw.fullscreen", isSelected());
     56        Config.getPref().putBoolean("draw.fullscreen", isSelected());
    5657        notifySelectedState();
    5758        setMode();
     
    9697        // since windows (or java?) draws the undecorated window full-
    9798        // screen by default (it's a simulated mode, but should be ok)
    98         String exclusive = Main.pref.get("draw.fullscreen.exclusive-mode", "auto");
     99        String exclusive = Config.getPref().get("draw.fullscreen.exclusive-mode", "auto");
    99100        if (("true".equals(exclusive) || ("auto".equals(exclusive) && !Main.isPlatformWindows())) && gd != null) {
    100101            gd.setFullScreenWindow(selected ? frame : null);
  • trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java

    r12841 r12846  
    4040import org.openstreetmap.josm.gui.conflict.tags.CombinePrimitiveResolverDialog;
    4141import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     42import org.openstreetmap.josm.spi.preferences.Config;
    4243import org.openstreetmap.josm.tools.CheckParameterUtil;
    4344import org.openstreetmap.josm.tools.ImageProvider;
     
    114115            return candidates.get(0);
    115116
    116         switch (Main.pref.getInt("merge-nodes.mode", 0)) {
     117        switch (Config.getPref().getInt("merge-nodes.mode", 0)) {
    117118        case 0:
    118119            return candidates.get(size - 1);
  • trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java

    r12841 r12846  
    4040import org.openstreetmap.josm.gui.widgets.AbstractFileChooser;
    4141import org.openstreetmap.josm.io.OsmTransferException;
     42import org.openstreetmap.josm.spi.preferences.Config;
    4243import org.openstreetmap.josm.tools.Logging;
    4344import org.openstreetmap.josm.tools.MultiMap;
     
    330331
    331332            if (recordHistory) {
    332                 Collection<String> oldFileHistory = Main.pref.getList("file-open.history");
     333                Collection<String> oldFileHistory = Config.getPref().getList("file-open.history");
    333334                fileHistory.addAll(oldFileHistory);
    334335                // remove the files which failed to load from the list
    335336                fileHistory.removeAll(failedAll);
    336                 int maxsize = Math.max(0, Main.pref.getInt("file-open.history.max-size", 15));
     337                int maxsize = Math.max(0, Config.getPref().getInt("file-open.history.max-size", 15));
    337338                Main.pref.putCollectionBounded("file-open.history", maxsize, fileHistory);
    338339            }
  • trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java

    r12841 r12846  
    4444import org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor;
    4545import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
     46import org.openstreetmap.josm.spi.preferences.Config;
    4647import org.openstreetmap.josm.tools.GBC;
    4748import org.openstreetmap.josm.tools.Logging;
     
    104105     */
    105106    protected void restoreUploadAddressHistory(HistoryComboBox cbHistory) {
    106         List<String> cmtHistory = new LinkedList<>(Main.pref.getList(getClass().getName() + ".uploadAddressHistory",
     107        List<String> cmtHistory = new LinkedList<>(Config.getPref().getList(getClass().getName() + ".uploadAddressHistory",
    107108                new LinkedList<String>()));
    108109        // we have to reverse the history, because ComboBoxHistory will reverse it again in addElement()
     
    118119    protected void remindUploadAddressHistory(HistoryComboBox cbHistory) {
    119120        cbHistory.addCurrentItemToHistory();
    120         Main.pref.putList(getClass().getName() + ".uploadAddressHistory", cbHistory.getHistory());
     121        Config.getPref().putList(getClass().getName() + ".uploadAddressHistory", cbHistory.getHistory());
    121122    }
    122123
  • trunk/src/org/openstreetmap/josm/actions/PreferenceToggleAction.java

    r12581 r12846  
    33
    44import java.awt.event.ActionEvent;
     5
    56import javax.swing.JCheckBoxMenuItem;
     7
    68import org.openstreetmap.josm.Main;
    79import org.openstreetmap.josm.data.Preferences;
  • trunk/src/org/openstreetmap/josm/actions/PurgeAction.java

    r12841 r12846  
    3636import org.openstreetmap.josm.gui.help.HelpUtil;
    3737import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     38import org.openstreetmap.josm.spi.preferences.Config;
    3839import org.openstreetmap.josm.tools.GBC;
    3940import org.openstreetmap.josm.tools.ImageProvider;
     
    99100
    100101            clearUndoRedo = cbClearUndoRedo.isSelected();
    101             Main.pref.putBoolean("purge.clear_undo_redo", clearUndoRedo);
     102            Config.getPref().putBoolean("purge.clear_undo_redo", clearUndoRedo);
    102103        }
    103104
     
    180181
    181182        cbClearUndoRedo = new JCheckBox(tr("Clear Undo/Redo buffer"));
    182         cbClearUndoRedo.setSelected(Main.pref.getBoolean("purge.clear_undo_redo", false));
     183        cbClearUndoRedo.setSelected(Config.getPref().getBoolean("purge.clear_undo_redo", false));
    183184
    184185        pnl.add(new JSeparator(), GBC.eol().fill(GBC.HORIZONTAL).insets(0, 5, 0, 5));
  • trunk/src/org/openstreetmap/josm/actions/RenameLayerAction.java

    r12841 r12846  
    1818import org.openstreetmap.josm.gui.layer.Layer;
    1919import org.openstreetmap.josm.gui.widgets.JosmTextField;
     20import org.openstreetmap.josm.spi.preferences.Config;
    2021import org.openstreetmap.josm.tools.ImageProvider;
    2122
     
    6667        filerename.setEnabled(file != null);
    6768        if (filerename.isEnabled()) {
    68             filerename.setSelected(Main.pref.getBoolean("layer.rename-file", true));
     69            filerename.setSelected(Config.getPref().getBoolean("layer.rename-file", true));
    6970        }
    7071
     
    8182        String nameText = name.getText();
    8283        if (filerename.isEnabled()) {
    83             Main.pref.putBoolean("layer.rename-file", filerename.isSelected());
     84            Config.getPref().putBoolean("layer.rename-file", filerename.isSelected());
    8485            if (filerename.isSelected()) {
    8586                String newname = nameText;
  • trunk/src/org/openstreetmap/josm/actions/RestartAction.java

    r12637 r12846  
    1919import org.openstreetmap.josm.gui.MainApplication;
    2020import org.openstreetmap.josm.gui.io.SaveLayersDialog;
     21import org.openstreetmap.josm.spi.preferences.Config;
    2122import org.openstreetmap.josm.tools.ImageProvider;
    2223import org.openstreetmap.josm.tools.Logging;
     
    9596        }
    9697        Logging.info("Restart "+cmd);
    97         if (Logging.isDebugEnabled() && Main.pref.getBoolean("restart.debug.simulation")) {
     98        if (Logging.isDebugEnabled() && Config.getPref().getBoolean("restart.debug.simulation")) {
    9899            Logging.debug("Restart cancelled to get debug info");
    99100            return;
  • trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java

    r12726 r12846  
    1616import javax.swing.JOptionPane;
    1717
    18 import org.openstreetmap.josm.Main;
    1918import org.openstreetmap.josm.command.ChangeCommand;
    2019import org.openstreetmap.josm.command.Command;
     
    2827import org.openstreetmap.josm.gui.MainApplication;
    2928import org.openstreetmap.josm.gui.Notification;
     29import org.openstreetmap.josm.spi.preferences.Config;
    3030import org.openstreetmap.josm.tools.Logging;
    3131import org.openstreetmap.josm.tools.Shortcut;
     
    154154
    155155        Collection<Command> corrCmds = Collections.<Command>emptyList();
    156         if (Main.pref.getBoolean("tag-correction.reverse-way", true)) {
     156        if (Config.getPref().getBoolean("tag-correction.reverse-way", true)) {
    157157            corrCmds = (new ReverseWayTagCorrector()).execute(w, wnew);
    158158        }
  • trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java

    r12841 r12846  
    2121import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    2222import org.openstreetmap.josm.gui.widgets.AbstractFileChooser;
     23import org.openstreetmap.josm.spi.preferences.Config;
    2324import org.openstreetmap.josm.tools.Logging;
    2425import org.openstreetmap.josm.tools.Shortcut;
     
    229230        }
    230231
    231         int maxsize = Math.max(0, Main.pref.getInt("file-open.history.max-size", 15));
    232         Collection<String> oldHistory = Main.pref.getList("file-open.history");
     232        int maxsize = Math.max(0, Config.getPref().getInt("file-open.history.max-size", 15));
     233        Collection<String> oldHistory = Config.getPref().getList("file-open.history");
    233234        List<String> history = new LinkedList<>(oldHistory);
    234235        history.remove(filepath);
  • trunk/src/org/openstreetmap/josm/actions/SaveAsAction.java

    r6380 r12846  
    22package org.openstreetmap.josm.actions;
    33
     4import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    5 import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
    66
    77import java.awt.event.KeyEvent;
  • trunk/src/org/openstreetmap/josm/actions/SearchNotesDownloadAction.java

    r12841 r12846  
    2222import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
    2323import org.openstreetmap.josm.io.OsmApi;
     24import org.openstreetmap.josm.spi.preferences.Config;
    2425import org.openstreetmap.josm.tools.Logging;
    2526import org.openstreetmap.josm.tools.Utils;
     
    4142    public void actionPerformed(ActionEvent e) {
    4243        HistoryComboBox searchTermBox = new HistoryComboBox();
    43         List<String> searchHistory = new LinkedList<>(Main.pref.getList(HISTORY_KEY, new LinkedList<String>()));
     44        List<String> searchHistory = new LinkedList<>(Config.getPref().getList(HISTORY_KEY, new LinkedList<String>()));
    4445        Collections.reverse(searchHistory);
    4546        searchTermBox.setPossibleItems(searchHistory);
     
    7071
    7172        searchTermBox.addCurrentItemToHistory();
    72         Main.pref.putList(HISTORY_KEY, searchTermBox.getHistory());
     73        Config.getPref().putList(HISTORY_KEY, searchTermBox.getHistory());
    7374
    7475        performSearch(searchTerm);
     
    9192        }
    9293
    93         int noteLimit = Main.pref.getInt("osm.notes.downloadLimit", 1000);
    94         int closedLimit = Main.pref.getInt("osm.notes.daysClosed", 7);
     94        int noteLimit = Config.getPref().getInt("osm.notes.downloadLimit", 1000);
     95        int closedLimit = Config.getPref().getInt("osm.notes.daysClosed", 7);
    9596
    9697        StringBuilder sb = new StringBuilder(128);
  • trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java

    r12649 r12846  
    3030import org.openstreetmap.josm.data.preferences.sources.MapPaintPrefHelper;
    3131import org.openstreetmap.josm.data.preferences.sources.PresetPrefHelper;
     32import org.openstreetmap.josm.data.preferences.sources.SourcePrefHelper;
    3233import org.openstreetmap.josm.data.preferences.sources.ValidatorPrefHelper;
    33 import org.openstreetmap.josm.data.preferences.sources.SourcePrefHelper;
    3434import org.openstreetmap.josm.gui.ExtendedDialog;
    3535import org.openstreetmap.josm.gui.MainApplication;
  • trunk/src/org/openstreetmap/josm/actions/SimplifyWayAction.java

    r12749 r12846  
    3434import org.openstreetmap.josm.gui.MainApplication;
    3535import org.openstreetmap.josm.gui.Notification;
     36import org.openstreetmap.josm.spi.preferences.Config;
    3637import org.openstreetmap.josm.tools.ImageProvider;
    3738import org.openstreetmap.josm.tools.Shortcut;
     
    165166     */
    166167    public final SequenceCommand simplifyWay(Way w) {
    167         return simplifyWay(w, Main.pref.getDouble("simplify-way.max-error", 3.0));
     168        return simplifyWay(w, Config.getPref().getDouble("simplify-way.max-error", 3.0));
    168169    }
    169170
  • trunk/src/org/openstreetmap/josm/actions/audio/AudioBackAction.java

    r12565 r12846  
    1010import java.io.IOException;
    1111
    12 import org.openstreetmap.josm.Main;
    1312import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
    1413import org.openstreetmap.josm.io.audio.AudioPlayer;
    1514import org.openstreetmap.josm.io.audio.AudioUtil;
     15import org.openstreetmap.josm.spi.preferences.Config;
    1616import org.openstreetmap.josm.tools.Shortcut;
    1717
     
    3636            if (AudioPlayer.playing() || AudioPlayer.paused())
    3737                AudioPlayer.play(AudioPlayer.url(), AudioPlayer.position()
    38                 - Main.pref.getDouble("audio.forwardbackamount", 10.0));
     38                - Config.getPref().getDouble("audio.forwardbackamount", 10.0));
    3939            else
    4040                MarkerLayer.playAudio();
  • trunk/src/org/openstreetmap/josm/actions/audio/AudioFastSlowAction.java

    r12565 r12846  
    55import java.io.IOException;
    66
    7 import org.openstreetmap.josm.Main;
    87import org.openstreetmap.josm.io.audio.AudioPlayer;
    98import org.openstreetmap.josm.io.audio.AudioUtil;
     9import org.openstreetmap.josm.spi.preferences.Config;
    1010import org.openstreetmap.josm.tools.Shortcut;
    1111
     
    2929    public AudioFastSlowAction(String name, String iconName, String tooltip, Shortcut shortcut, boolean fast) {
    3030        super(name, iconName, tooltip, shortcut, true);
    31         multiplier = Main.pref.getDouble("audio.fastfwdmultiplier", 1.3);
     31        multiplier = Config.getPref().getDouble("audio.fastfwdmultiplier", 1.3);
    3232        if (!fast)
    3333            multiplier = 1.0 / multiplier;
  • trunk/src/org/openstreetmap/josm/actions/audio/AudioFwdAction.java

    r12565 r12846  
    99import java.io.IOException;
    1010
    11 import org.openstreetmap.josm.Main;
    1211import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
    1312import org.openstreetmap.josm.io.audio.AudioPlayer;
    1413import org.openstreetmap.josm.io.audio.AudioUtil;
     14import org.openstreetmap.josm.spi.preferences.Config;
    1515import org.openstreetmap.josm.tools.Shortcut;
    1616
     
    3434            if (AudioPlayer.playing() || AudioPlayer.paused())
    3535                AudioPlayer.play(AudioPlayer.url(), AudioPlayer.position()
    36                 + Main.pref.getDouble("audio.forwardbackamount", 10.0));
     36                + Config.getPref().getDouble("audio.forwardbackamount", 10.0));
    3737            else
    3838                MarkerLayer.playAudio();
  • trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java

    r12679 r12846  
    1313import java.util.stream.Stream;
    1414
    15 import org.openstreetmap.josm.Main;
    1615import org.openstreetmap.josm.data.Bounds;
    1716import org.openstreetmap.josm.data.Bounds.ParseMethod;
     
    3534import org.openstreetmap.josm.io.OsmServerReader;
    3635import org.openstreetmap.josm.io.OsmTransferException;
     36import org.openstreetmap.josm.spi.preferences.Config;
    3737import org.openstreetmap.josm.tools.CheckParameterUtil;
    3838import org.xml.sax.SAXException;
     
    169169
    170170        private GpxLayer findGpxMergeLayer() {
    171             boolean merge = Main.pref.getBoolean("download.gps.mergeWithLocal", false);
     171            boolean merge = Config.getPref().getBoolean("download.gps.mergeWithLocal", false);
    172172            Layer active = MainApplication.getLayerManager().getActiveLayer();
    173173            if (active instanceof GpxLayer && (merge || ((GpxLayer) active).data.fromServer))
  • trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadSessionTask.java

    r12634 r12846  
    99import java.util.concurrent.Future;
    1010
    11 import org.openstreetmap.josm.Main;
    1211import org.openstreetmap.josm.actions.SessionLoadAction.Loader;
    1312import org.openstreetmap.josm.data.Bounds;
    1413import org.openstreetmap.josm.gui.MainApplication;
    1514import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     15import org.openstreetmap.josm.spi.preferences.Config;
    1616import org.openstreetmap.josm.tools.HttpClient;
    1717import org.openstreetmap.josm.tools.Logging;
     
    7878    @Override
    7979    public boolean isSafeForRemotecontrolRequests() {
    80         return Main.pref.getBoolean("remotecontrol.import.allow_session", false);
     80        return Config.getPref().getBoolean("remotecontrol.import.allow_session", false);
    8181    }
    8282}
  • trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java

    r12718 r12846  
    1313import java.util.Set;
    1414
    15 import org.openstreetmap.josm.Main;
    1615import org.openstreetmap.josm.command.Command;
    1716import org.openstreetmap.josm.command.DeleteCommand;
     
    3029import org.openstreetmap.josm.gui.util.HighlightHelper;
    3130import org.openstreetmap.josm.gui.util.ModifierExListener;
     31import org.openstreetmap.josm.spi.preferences.Config;
    3232import org.openstreetmap.josm.tools.CheckParameterUtil;
    3333import org.openstreetmap.josm.tools.ImageProvider;
     
    111111            return;
    112112
    113         drawTargetHighlight = Main.pref.getBoolean("draw.target-highlight", true);
     113        drawTargetHighlight = Config.getPref().getBoolean("draw.target-highlight", true);
    114114
    115115        MapFrame map = MainApplication.getMap();
  • trunk/src/org/openstreetmap/josm/actions/mapmode/DrawSnapHelper.java

    r12841 r12846  
    3232import org.openstreetmap.josm.gui.draw.SymbolShape;
    3333import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     34import org.openstreetmap.josm.spi.preferences.Config;
    3435import org.openstreetmap.josm.tools.Logging;
    3536import org.openstreetmap.josm.tools.Utils;
     
    237238
    238239    private void computeSnapAngles() {
    239         snapAngles = Main.pref.getList(DRAW_ANGLESNAP_ANGLES,
     240        snapAngles = Config.getPref().getList(DRAW_ANGLESNAP_ANGLES,
    240241                Arrays.asList("0", "30", "45", "60", "90", "120", "135", "150", "180"))
    241242                .stream()
     
    259260     */
    260261    public void saveAngles(String... angles) {
    261         Main.pref.putList(DRAW_ANGLESNAP_ANGLES, Arrays.asList(angles));
     262        Config.getPref().putList(DRAW_ANGLESNAP_ANGLES, Arrays.asList(angles));
    262263    }
    263264
  • trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java

    r12841 r12846  
    5858import org.openstreetmap.josm.gui.util.KeyPressReleaseListener;
    5959import org.openstreetmap.josm.gui.util.ModifierExListener;
     60import org.openstreetmap.josm.spi.preferences.Config;
    6061import org.openstreetmap.josm.tools.Geometry;
    6162import org.openstreetmap.josm.tools.ImageProvider;
     
    307308    @Override
    308309    protected void readPreferences() {
    309         initialMoveDelay = Main.pref.getInt("edit.initial-move-delay", 200);
    310         initialMoveThreshold = Main.pref.getInt("extrude.initial-move-threshold", 1);
     310        initialMoveDelay = Config.getPref().getInt("edit.initial-move-delay", 200);
     311        initialMoveThreshold = Config.getPref().getInt("extrude.initial-move-threshold", 1);
    311312        mainColor = new ColorProperty(marktr("Extrude: main line"), Color.RED).get();
    312313        helperColor = new ColorProperty(marktr("Extrude: helper line"), Color.ORANGE).get();
    313         helperStrokeDash = GuiHelper.getCustomizedStroke(Main.pref.get("extrude.stroke.helper-line", "1 4"));
     314        helperStrokeDash = GuiHelper.getCustomizedStroke(Config.getPref().get("extrude.stroke.helper-line", "1 4"));
    314315        helperStrokeRA = new BasicStroke(1);
    315         symbolSize = Main.pref.getDouble("extrude.angle-symbol-radius", 8);
    316         nodeDragWithoutCtrl = Main.pref.getBoolean("extrude.drag-nodes-without-ctrl", false);
    317         oldLineStroke = GuiHelper.getCustomizedStroke(Main.pref.get("extrude.ctrl.stroke.old-line", "1"));
    318         mainStroke = GuiHelper.getCustomizedStroke(Main.pref.get("extrude.stroke.main", "3"));
    319 
    320         ignoreSharedNodes = Main.pref.getBoolean("extrude.ignore-shared-nodes", true);
     316        symbolSize = Config.getPref().getDouble("extrude.angle-symbol-radius", 8);
     317        nodeDragWithoutCtrl = Config.getPref().getBoolean("extrude.drag-nodes-without-ctrl", false);
     318        oldLineStroke = GuiHelper.getCustomizedStroke(Config.getPref().get("extrude.ctrl.stroke.old-line", "1"));
     319        mainStroke = GuiHelper.getCustomizedStroke(Config.getPref().get("extrude.stroke.main", "3"));
     320
     321        ignoreSharedNodes = Config.getPref().getBoolean("extrude.ignore-shared-nodes", true);
    321322        dualAlignCheckboxMenuItem.getAction().setEnabled(true);
    322         useRepeatedShortcut = Main.pref.getBoolean("extrude.dualalign.toggleOnRepeatedX", true);
    323         keepSegmentDirection = Main.pref.getBoolean("extrude.dualalign.keep-segment-direction", true);
     323        useRepeatedShortcut = Config.getPref().getBoolean("extrude.dualalign.toggleOnRepeatedX", true);
     324        keepSegmentDirection = Config.getPref().getBoolean("extrude.dualalign.keep-segment-direction", true);
    324325    }
    325326
  • trunk/src/org/openstreetmap/josm/actions/mapmode/MapMode.java

    r12630 r12846  
    1111import java.util.Collections;
    1212
    13 import org.openstreetmap.josm.Main;
    1413import org.openstreetmap.josm.actions.JosmAction;
    1514import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
     
    1918import org.openstreetmap.josm.gui.MapFrame;
    2019import org.openstreetmap.josm.gui.layer.Layer;
     20import org.openstreetmap.josm.spi.preferences.Config;
    2121import org.openstreetmap.josm.tools.ImageProvider;
    2222import org.openstreetmap.josm.tools.Shortcut;
     
    9898    public void enterMode() {
    9999        putValue("active", Boolean.TRUE);
    100         Main.pref.addPreferenceChangeListener(this);
     100        Config.getPref().addPreferenceChangeListener(this);
    101101        readPreferences();
    102102        MainApplication.getMap().mapView.setNewCursor(cursor, this);
     
    109109    public void exitMode() {
    110110        putValue("active", Boolean.FALSE);
    111         Main.pref.removePreferenceChangeListener(this);
     111        Config.getPref().removePreferenceChangeListener(this);
    112112        MainApplication.getMap().mapView.resetCursor(this);
    113113    }
  • trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java

    r12841 r12846  
    5151import org.openstreetmap.josm.gui.util.KeyPressReleaseListener;
    5252import org.openstreetmap.josm.gui.util.ModifierExListener;
     53import org.openstreetmap.josm.spi.preferences.Config;
    5354import org.openstreetmap.josm.tools.ImageProvider;
    5455import org.openstreetmap.josm.tools.Logging;
     
    202203        mv.addMouseListener(this);
    203204        mv.addMouseMotionListener(this);
    204         mv.setVirtualNodesEnabled(Main.pref.getInt("mappaint.node.virtual-size", 8) != 0);
    205         drawTargetHighlight = Main.pref.getBoolean("draw.target-highlight", true);
    206         initialMoveDelay = Main.pref.getInt("edit.initial-move-delay", 200);
    207         initialMoveThreshold = Main.pref.getInt("edit.initial-move-threshold", 5);
    208         repeatedKeySwitchLassoOption = Main.pref.getBoolean("mappaint.select.toggle-lasso-on-repeated-S", true);
     205        mv.setVirtualNodesEnabled(Config.getPref().getInt("mappaint.node.virtual-size", 8) != 0);
     206        drawTargetHighlight = Config.getPref().getBoolean("draw.target-highlight", true);
     207        initialMoveDelay = Config.getPref().getInt("edit.initial-move-delay", 200);
     208        initialMoveThreshold = Config.getPref().getInt("edit.initial-move-threshold", 5);
     209        repeatedKeySwitchLassoOption = Config.getPref().getBoolean("mappaint.select.toggle-lasso-on-repeated-S", true);
    209210        cycleManager.init();
    210211        virtualManager.init();
     
    828829            }
    829830        }
    830         int max = Main.pref.getInt("warn.move.maxelements", 20), limit = max;
     831        int max = Config.getPref().getInt("warn.move.maxelements", 20), limit = max;
    831832        for (OsmPrimitive osm : getLayerManager().getEditDataSet().getSelected()) {
    832833            if (osm instanceof Way) {
     
    10391040         */
    10401041        private void init() {
    1041             waitForMouseUpParameter = Main.pref.getBoolean("mappaint.select.waits-for-mouse-up", false);
    1042             multipleMatchesParameter = Main.pref.getBoolean("selectaction.cycles.multiple.matches", false);
     1042            waitForMouseUpParameter = Config.getPref().getBoolean("mappaint.select.waits-for-mouse-up", false);
     1043            multipleMatchesParameter = Config.getPref().getBoolean("selectaction.cycles.multiple.matches", false);
    10431044        }
    10441045
     
    11751176
    11761177        private void init() {
    1177             nodeVirtualSize = Main.pref.getInt("mappaint.node.virtual-size", 8);
    1178             int virtualSnapDistSq = Main.pref.getInt("mappaint.node.virtual-snap-distance", 8);
     1178            nodeVirtualSize = Config.getPref().getInt("mappaint.node.virtual-size", 8);
     1179            int virtualSnapDistSq = Config.getPref().getInt("mappaint.node.virtual-snap-distance", 8);
    11791180            virtualSnapDistSq2 = virtualSnapDistSq*virtualSnapDistSq;
    1180             virtualSpace = Main.pref.getInt("mappaint.node.virtual-space", 70);
     1181            virtualSpace = Config.getPref().getInt("mappaint.node.virtual-space", 70);
    11811182        }
    11821183
  • trunk/src/org/openstreetmap/josm/actions/relation/EditRelationAction.java

    r12841 r12846  
    1919import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor;
    2020import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     21import org.openstreetmap.josm.spi.preferences.Config;
    2122import org.openstreetmap.josm.tools.ImageProvider;
    2223
     
    7071    public void actionPerformed(ActionEvent e) {
    7172        if (!isEnabled() || relations.isEmpty()) return;
    72         if (relations.size() > Main.pref.getInt("warn.open.maxrelations", 5) &&
     73        if (relations.size() > Config.getPref().getInt("warn.open.maxrelations", 5) &&
    7374            /* I18N english text for value 1 makes no real sense, never called for values <= maxrel (usually 5) */
    7475            JOptionPane.OK_OPTION != JOptionPane.showConfirmDialog(Main.parent,
  • trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java

    r12841 r12846  
    6767import org.openstreetmap.josm.gui.widgets.AbstractTextComponentValidator;
    6868import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
     69import org.openstreetmap.josm.spi.preferences.Config;
    6970import org.openstreetmap.josm.tools.GBC;
    7071import org.openstreetmap.josm.tools.JosmRuntimeException;
     
    112113        });
    113114
    114         for (String s: Main.pref.getList("search.history", Collections.<String>emptyList())) {
     115        for (String s: Config.getPref().getList("search.history", Collections.<String>emptyList())) {
    115116            SearchSetting ss = SearchSetting.readFromString(s);
    116117            if (ss != null) {
     
    140141            searchHistory.addFirst(new SearchSetting(s));
    141142        }
    142         int maxsize = Main.pref.getInt("search.history-size", DEFAULT_SEARCH_HISTORY_SIZE);
     143        int maxsize = Config.getPref().getInt("search.history-size", DEFAULT_SEARCH_HISTORY_SIZE);
    143144        while (searchHistory.size() > maxsize) {
    144145            searchHistory.removeLast();
     
    148149            savedHistory.add(item.writeToString());
    149150        }
    150         Main.pref.putList("search.history", new ArrayList<>(savedHistory));
     151        Config.getPref().putList("search.history", new ArrayList<>(savedHistory));
    151152    }
    152153
  • trunk/src/org/openstreetmap/josm/actions/upload/FixDataHook.java

    r12641 r12846  
    1212import java.util.Map.Entry;
    1313
    14 import org.openstreetmap.josm.Main;
    1514import org.openstreetmap.josm.command.ChangePropertyCommand;
    1615import org.openstreetmap.josm.command.Command;
     
    2120import org.openstreetmap.josm.data.osm.Tag;
    2221import org.openstreetmap.josm.gui.MainApplication;
     22import org.openstreetmap.josm.spi.preferences.Config;
    2323
    2424/**
     
    187187    @Override
    188188    public boolean checkUpload(APIDataSet apiDataSet) {
    189         if (Main.pref.getBoolean("fix.data.on.upload", true)) {
     189        if (Config.getPref().getBoolean("fix.data.on.upload", true)) {
    190190            Collection<Command> cmds = new LinkedList<>();
    191191
  • trunk/src/org/openstreetmap/josm/command/PurgeCommand.java

    r12718 r12846  
    1616import javax.swing.Icon;
    1717
    18 import org.openstreetmap.josm.Main;
    1918import org.openstreetmap.josm.data.conflict.Conflict;
    2019import org.openstreetmap.josm.data.conflict.ConflictCollection;
     
    3231import org.openstreetmap.josm.data.osm.WayData;
    3332import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     33import org.openstreetmap.josm.spi.preferences.Config;
    3434import org.openstreetmap.josm.tools.ImageProvider;
    3535
     
    384384
    385385        // Add untagged way nodes. Do not add nodes that have other referrers not yet to-be-purged.
    386         if (Main.pref.getBoolean("purge.add_untagged_waynodes", true)) {
     386        if (Config.getPref().getBoolean("purge.add_untagged_waynodes", true)) {
    387387            Set<OsmPrimitive> wayNodes = new HashSet<>();
    388388            for (OsmPrimitive osm : toPurgeChecked) {
     
    409409        }
    410410
    411         if (Main.pref.getBoolean("purge.add_relations_with_only_incomplete_members", true)) {
     411        if (Config.getPref().getBoolean("purge.add_relations_with_only_incomplete_members", true)) {
    412412            Set<Relation> relSet = new HashSet<>();
    413413            for (OsmPrimitive osm : toPurgeChecked) {
  • trunk/src/org/openstreetmap/josm/command/SplitWayCommand.java

    r12841 r12846  
    1717import java.util.function.Consumer;
    1818
    19 import org.openstreetmap.josm.Main;
    2019import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
    2120import org.openstreetmap.josm.data.osm.Node;
     
    2524import org.openstreetmap.josm.data.osm.RelationMember;
    2625import org.openstreetmap.josm.data.osm.Way;
     26import org.openstreetmap.josm.spi.preferences.Config;
    2727import org.openstreetmap.josm.tools.CheckParameterUtil;
    2828import org.openstreetmap.josm.tools.Logging;
     
    273273
    274274        Collection<Command> commandList = new ArrayList<>(newWays.size());
    275         Collection<String> nowarnroles = Main.pref.getList("way.split.roles.nowarn",
     275        Collection<String> nowarnroles = Config.getPref().getList("way.split.roles.nowarn",
    276276                Arrays.asList("outer", "inner", "forward", "backward", "north", "south", "east", "west"));
    277277
  • trunk/src/org/openstreetmap/josm/data/SystemOfMeasurement.java

    r12674 r12846  
    1212import java.util.concurrent.CopyOnWriteArrayList;
    1313
    14 import org.openstreetmap.josm.Main;
    1514import org.openstreetmap.josm.data.preferences.StringProperty;
     15import org.openstreetmap.josm.spi.preferences.Config;
    1616
    1717/**
     
    230230    public String getDistText(final double dist, final NumberFormat format, final double threshold) {
    231231        double a = dist / aValue;
    232         if (a > bValue / aValue && !Main.pref.getBoolean("system_of_measurement.use_only_lower_unit", false))
     232        if (a > bValue / aValue && !Config.getPref().getBoolean("system_of_measurement.use_only_lower_unit", false))
    233233            return formatText(dist / bValue, bName, format);
    234234        else if (a < threshold)
     
    258258    public String getAreaText(final double area, final NumberFormat format, final double threshold) {
    259259        double a = area / (aValue*aValue);
    260         boolean lowerOnly = Main.pref.getBoolean("system_of_measurement.use_only_lower_unit", false);
    261         boolean customAreaOnly = Main.pref.getBoolean("system_of_measurement.use_only_custom_area_unit", false);
     260        boolean lowerOnly = Config.getPref().getBoolean("system_of_measurement.use_only_lower_unit", false);
     261        boolean customAreaOnly = Config.getPref().getBoolean("system_of_measurement.use_only_custom_area_unit", false);
    262262        if ((!lowerOnly && areaCustomValue > 0 && a > areaCustomValue / (aValue*aValue)
    263263                && a < (bValue*bValue) / (aValue*aValue)) || customAreaOnly)
  • trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java

    r12841 r12846  
    1111import org.openstreetmap.josm.data.osm.DataSet;
    1212import org.openstreetmap.josm.data.osm.OsmPrimitive;
     13import org.openstreetmap.josm.spi.preferences.Config;
    1314import org.openstreetmap.josm.tools.CheckParameterUtil;
    1415
     
    7475        // Currently you have to undo the commands one by one. If
    7576        // this changes, a higher default value may be reasonable.
    76         if (commands.size() > Main.pref.getInt("undo.max", 1000)) {
     77        if (commands.size() > Config.getPref().getInt("undo.max", 1000)) {
    7778            commands.removeFirst();
    7879        }
  • trunk/src/org/openstreetmap/josm/data/UserIdentityManager.java

    r12744 r12846  
    1919import org.openstreetmap.josm.io.OsmTransferException;
    2020import org.openstreetmap.josm.io.auth.CredentialsManager;
     21import org.openstreetmap.josm.spi.preferences.Config;
    2122import org.openstreetmap.josm.tools.CheckParameterUtil;
    2223import org.openstreetmap.josm.tools.JosmRuntimeException;
     
    7778                instance.initFromPreferences();
    7879            }
    79             Main.pref.addPreferenceChangeListener(instance);
     80            Config.getPref().addPreferenceChangeListener(instance);
    8081        }
    8182        return instance;
  • trunk/src/org/openstreetmap/josm/data/coor/conversion/DMSCoordinateFormat.java

    r12741 r12846  
    66import java.text.DecimalFormat;
    77
    8 import org.openstreetmap.josm.Main;
    98import org.openstreetmap.josm.data.coor.ILatLon;
     9import org.openstreetmap.josm.spi.preferences.Config;
    1010
    1111/**
     
    1717    private static final DecimalFormat DMS_MINUTE_FORMATTER = new DecimalFormat("00");
    1818    private static final DecimalFormat DMS_SECOND_FORMATTER = new DecimalFormat(
    19             Main.pref == null ? "00.0" : Main.pref.get("latlon.dms.decimal-format", "00.0"));
     19            Config.getPref() == null ? "00.0" : Config.getPref().get("latlon.dms.decimal-format", "00.0"));
    2020    private static final String DMS60 = DMS_SECOND_FORMATTER.format(60.0);
    2121    private static final String DMS00 = DMS_SECOND_FORMATTER.format(0.0);
  • trunk/src/org/openstreetmap/josm/data/coor/conversion/NauticalCoordinateFormat.java

    r12741 r12846  
    66import java.text.DecimalFormat;
    77
    8 import org.openstreetmap.josm.Main;
    98import org.openstreetmap.josm.data.coor.ILatLon;
     9import org.openstreetmap.josm.spi.preferences.Config;
    1010
    1111/**
     
    1515public class NauticalCoordinateFormat extends AbstractCoordinateFormat {
    1616    private static final DecimalFormat DM_MINUTE_FORMATTER = new DecimalFormat(
    17             Main.pref == null ? "00.000" : Main.pref.get("latlon.dm.decimal-format", "00.000"));
     17            Config.getPref() == null ? "00.000" : Config.getPref().get("latlon.dm.decimal-format", "00.000"));
    1818    private static final String DM60 = DM_MINUTE_FORMATTER.format(60.0);
    1919    private static final String DM00 = DM_MINUTE_FORMATTER.format(0.0);
  • trunk/src/org/openstreetmap/josm/data/imagery/CachedTileLoaderFactory.java

    r12841 r12846  
    1515import org.openstreetmap.josm.data.cache.BufferedImageCacheEntry;
    1616import org.openstreetmap.josm.data.preferences.StringProperty;
     17import org.openstreetmap.josm.spi.preferences.Config;
    1718import org.openstreetmap.josm.tools.CheckParameterUtil;
    1819import org.openstreetmap.josm.tools.Logging;
     
    7273
    7374        return getLoader(listener, cache,
    74                 (int) TimeUnit.SECONDS.toMillis(Main.pref.getInt("socket.timeout.connect", 15)),
    75                 (int) TimeUnit.SECONDS.toMillis(Main.pref.getInt("socket.timeout.read", 30)),
     75                (int) TimeUnit.SECONDS.toMillis(Config.getPref().getInt("socket.timeout.connect", 15)),
     76                (int) TimeUnit.SECONDS.toMillis(Config.getPref().getInt("socket.timeout.read", 30)),
    7677                headers);
    7778    }
  • trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java

    r12841 r12846  
    2626import org.openstreetmap.gui.jmapviewer.tilesources.OsmTileSource.Mapnik;
    2727import org.openstreetmap.gui.jmapviewer.tilesources.TileSourceInfo;
    28 import org.openstreetmap.josm.Main;
    2928import org.openstreetmap.josm.data.Bounds;
    3029import org.openstreetmap.josm.data.Preferences.pref;
    3130import org.openstreetmap.josm.io.Capabilities;
    3231import org.openstreetmap.josm.io.OsmApi;
     32import org.openstreetmap.josm.spi.preferences.Config;
    3333import org.openstreetmap.josm.tools.CheckParameterUtil;
    3434import org.openstreetmap.josm.tools.ImageProvider;
     
    817817    public void clearId() {
    818818        if (this.id != null) {
    819             Collection<String> newAddedIds = new TreeSet<>(Main.pref.getList("imagery.layers.addedIds"));
     819            Collection<String> newAddedIds = new TreeSet<>(Config.getPref().getList("imagery.layers.addedIds"));
    820820            newAddedIds.add(this.id);
    821             Main.pref.putList("imagery.layers.addedIds", new ArrayList<>(newAddedIds));
     821            Config.getPref().putList("imagery.layers.addedIds", new ArrayList<>(newAddedIds));
    822822        }
    823823        setId(null);
  • trunk/src/org/openstreetmap/josm/data/imagery/ImageryLayerInfo.java

    r12841 r12846  
    2525import org.openstreetmap.josm.io.OnlineResource;
    2626import org.openstreetmap.josm.io.imagery.ImageryReader;
     27import org.openstreetmap.josm.spi.preferences.Config;
    2728import org.openstreetmap.josm.tools.Logging;
    2829import org.openstreetmap.josm.tools.Utils;
     
    5758     */
    5859    public static Collection<String> getImageryLayersSites() {
    59         return Main.pref.getList("imagery.layers.sites", Arrays.asList(DEFAULT_LAYER_SITES));
     60        return Config.getPref().getList("imagery.layers.sites", Arrays.asList(DEFAULT_LAYER_SITES));
    6061    }
    6162
     
    236237        // add new default entries to the user selection
    237238        boolean changed = false;
    238         Collection<String> knownDefaults = new TreeSet<>(Main.pref.getList("imagery.layers.default"));
     239        Collection<String> knownDefaults = new TreeSet<>(Config.getPref().getList("imagery.layers.default"));
    239240        Collection<String> newKnownDefaults = new TreeSet<>();
    240241        for (ImageryInfo def : defaultLayers) {
     
    279280            newKnownDefaults.addAll(knownDefaults);
    280281        }
    281         Main.pref.putList("imagery.layers.default", new ArrayList<>(newKnownDefaults));
     282        Config.getPref().putList("imagery.layers.default", new ArrayList<>(newKnownDefaults));
    282283
    283284        // automatically update user entries with same id as a default entry
  • trunk/src/org/openstreetmap/josm/data/imagery/OffsetBookmark.java

    r12630 r12846  
    2222import org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer;
    2323import org.openstreetmap.josm.gui.layer.ImageryLayer;
     24import org.openstreetmap.josm.spi.preferences.Config;
    2425import org.openstreetmap.josm.tools.Logging;
    2526
     
    177178    // migration code - remove Nov. 2017
    178179    private static void loadBookmarksOld() {
    179         for (Collection<String> c : Main.pref.getArray("imagery.offsets",
    180                 Collections.<Collection<String>>emptySet())) {
     180        for (Collection<String> c : Config.getPref().getListOfLists("imagery.offsets")) {
    181181            allBookmarks.add(new OffsetBookmark(c));
    182182        }
  • trunk/src/org/openstreetmap/josm/data/osm/ChangesetCache.java

    r12767 r12846  
    1212import java.util.stream.Collectors;
    1313
    14 import org.openstreetmap.josm.Main;
    1514import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
    1615import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
    1716import org.openstreetmap.josm.data.UserIdentityManager;
     17import org.openstreetmap.josm.spi.preferences.Config;
    1818import org.openstreetmap.josm.tools.SubclassFilteredCollection;
    1919
     
    4545     */
    4646    private ChangesetCache() {
    47         Main.pref.addPreferenceChangeListener(this);
     47        Config.getPref().addPreferenceChangeListener(this);
    4848    }
    4949
  • trunk/src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java

    r12841 r12846  
    2121import java.util.stream.Collectors;
    2222
    23 import org.openstreetmap.josm.Main;
    2423import org.openstreetmap.josm.data.coor.LatLon;
    2524import org.openstreetmap.josm.data.coor.conversion.CoordinateFormatManager;
     
    3130import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
    3231import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetNameTemplateList;
     32import org.openstreetmap.josm.spi.preferences.Config;
    3333import org.openstreetmap.josm.tools.AlphanumComparator;
    3434import org.openstreetmap.josm.tools.I18n;
     
    105105        if (namingTagsForRelations == null) {
    106106            namingTagsForRelations = new ArrayList<>(
    107                     Main.pref.getList("relation.nameOrder", Arrays.asList(DEFAULT_NAMING_TAGS_FOR_RELATIONS))
     107                    Config.getPref().getList("relation.nameOrder", Arrays.asList(DEFAULT_NAMING_TAGS_FOR_RELATIONS))
    108108                    );
    109109        }
     
    119119     */
    120120    protected void decorateNameWithId(StringBuilder name, IPrimitive primitive) {
    121         if (Main.pref.getBoolean("osm-primitives.showid")) {
    122             if (Main.pref.getBoolean("osm-primitives.showid.new-primitives")) {
     121        if (Config.getPref().getBoolean("osm-primitives.showid")) {
     122            if (Config.getPref().getBoolean("osm-primitives.showid.new-primitives")) {
    123123                name.append(tr(" [id: {0}]", primitive.getUniqueId()));
    124124            } else {
     
    155155            if (preset == null) {
    156156                String n;
    157                 if (Main.pref.getBoolean("osm-primitives.localize-name", true)) {
     157                if (Config.getPref().getBoolean("osm-primitives.localize-name", true)) {
    158158                    n = node.getLocalName();
    159159                } else {
     
    233233            if (preset == null) {
    234234                String n;
    235                 if (Main.pref.getBoolean("osm-primitives.localize-name", true)) {
     235                if (Config.getPref().getBoolean("osm-primitives.localize-name", true)) {
    236236                    n = way.getLocalName();
    237237                } else {
     
    433433    private static String getNameTagValue(IRelation relation, String nameTag) {
    434434        if ("name".equals(nameTag)) {
    435             if (Main.pref.getBoolean("osm-primitives.localize-name", true))
     435            if (Config.getPref().getBoolean("osm-primitives.localize-name", true))
    436436                return relation.getLocalName();
    437437            else
     
    519519     */
    520520    protected void decorateNameWithId(StringBuilder name, HistoryOsmPrimitive primitive) {
    521         if (Main.pref.getBoolean("osm-primitives.showid")) {
     521        if (Config.getPref().getBoolean("osm-primitives.showid")) {
    522522            name.append(tr(" [id: {0}]", primitive.getId()));
    523523        }
     
    528528        StringBuilder sb = new StringBuilder();
    529529        String name;
    530         if (Main.pref.getBoolean("osm-primitives.localize-name", true)) {
     530        if (Config.getPref().getBoolean("osm-primitives.localize-name", true)) {
    531531            name = node.getLocalName();
    532532        } else {
     
    554554        StringBuilder sb = new StringBuilder();
    555555        String name;
    556         if (Main.pref.getBoolean("osm-primitives.localize-name", true)) {
     556        if (Config.getPref().getBoolean("osm-primitives.localize-name", true)) {
    557557            name = way.getLocalName();
    558558        } else {
     
    601601            // #3328: "note " and " note" are name tags too
    602602            if (namingTags.contains(n.trim())) {
    603                 if (Main.pref.getBoolean("osm-primitives.localize-name", true)) {
     603                if (Config.getPref().getBoolean("osm-primitives.localize-name", true)) {
    604604                    nameTag = relation.getLocalName();
    605605                } else {
  • trunk/src/org/openstreetmap/josm/data/osm/FilterMatcher.java

    r12659 r12846  
    66import java.util.List;
    77
    8 import org.openstreetmap.josm.data.osm.search.SearchParseError;
    98import org.openstreetmap.josm.data.osm.search.SearchCompiler;
    10 import org.openstreetmap.josm.data.osm.search.SearchMode;
    119import org.openstreetmap.josm.data.osm.search.SearchCompiler.Match;
    1210import org.openstreetmap.josm.data.osm.search.SearchCompiler.Not;
     11import org.openstreetmap.josm.data.osm.search.SearchMode;
     12import org.openstreetmap.josm.data.osm.search.SearchParseError;
    1313import org.openstreetmap.josm.gui.MainApplication;
    1414import org.openstreetmap.josm.gui.MapFrame;
  • trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java

    r12841 r12846  
    2020import java.util.Set;
    2121
    22 import org.openstreetmap.josm.Main;
    2322import org.openstreetmap.josm.data.osm.search.SearchCompiler;
    2423import org.openstreetmap.josm.data.osm.search.SearchCompiler.Match;
     
    2625import org.openstreetmap.josm.data.osm.visitor.OsmPrimitiveVisitor;
    2726import org.openstreetmap.josm.gui.mappaint.StyleCache;
     27import org.openstreetmap.josm.spi.preferences.Config;
    2828import org.openstreetmap.josm.tools.CheckParameterUtil;
    2929import org.openstreetmap.josm.tools.Logging;
     
    650650            l.addAll(getDiscardableKeys());
    651651            l.addAll(getWorkInProgressKeys());
    652             uninteresting = new HashSet<>(Main.pref.getList("tags.uninteresting", l));
     652            uninteresting = new HashSet<>(Config.getPref().getList("tags.uninteresting", l));
    653653        }
    654654        return uninteresting;
     
    662662    public static Collection<String> getDiscardableKeys() {
    663663        if (discardable == null) {
    664             discardable = new HashSet<>(Main.pref.getList("tags.discardable",
     664            discardable = new HashSet<>(Config.getPref().getList("tags.discardable",
    665665                    Arrays.asList(
    666666                            "created_by",
     
    720720    public static Collection<String> getWorkInProgressKeys() {
    721721        if (workinprogress == null) {
    722             workinprogress = new HashSet<>(Main.pref.getList("tags.workinprogress",
     722            workinprogress = new HashSet<>(Config.getPref().getList("tags.workinprogress",
    723723                    Arrays.asList("note", "fixme", "FIXME")));
    724724        }
     
    760760    private static Match compileDirectionKeys(String prefName, String defaultValue) throws AssertionError {
    761761        try {
    762             return SearchCompiler.compile(Main.pref.get(prefName, defaultValue));
     762            return SearchCompiler.compile(Config.getPref().get(prefName, defaultValue));
    763763        } catch (SearchParseError e) {
    764764            Logging.log(Logging.LEVEL_ERROR, "Unable to compile pattern for " + prefName + ", trying default pattern:", e);
  • trunk/src/org/openstreetmap/josm/data/osm/Relation.java

    r12813 r12846  
    1313import java.util.stream.Collectors;
    1414
    15 import org.openstreetmap.josm.Main;
    1615import org.openstreetmap.josm.data.osm.visitor.OsmPrimitiveVisitor;
    1716import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor;
     17import org.openstreetmap.josm.spi.preferences.Config;
    1818import org.openstreetmap.josm.tools.CopyList;
    1919import org.openstreetmap.josm.tools.SubclassFilteredCollection;
     
    507507                                    getPrimitiveId(), rm.getMember().getPrimitiveId()));
    508508            }
    509             if (Main.pref.getBoolean("debug.checkDeleteReferenced", true)) {
     509            if (Config.getPref().getBoolean("debug.checkDeleteReferenced", true)) {
    510510                for (RelationMember rm: members) {
    511511                    if (rm.getMember().isDeleted())
  • trunk/src/org/openstreetmap/josm/data/osm/Way.java

    r12813 r12846  
    1111import java.util.Set;
    1212
    13 import org.openstreetmap.josm.Main;
    1413import org.openstreetmap.josm.data.coor.LatLon;
    1514import org.openstreetmap.josm.data.osm.visitor.OsmPrimitiveVisitor;
    1615import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor;
     16import org.openstreetmap.josm.spi.preferences.Config;
    1717import org.openstreetmap.josm.tools.CopyList;
    1818import org.openstreetmap.josm.tools.Pair;
     
    609609                                    DefaultNameFormatter.getInstance().formatAsHtmlUnorderedList(this)) + "</html>");
    610610            }
    611             if (Main.pref.getBoolean("debug.checkNullCoor", true)) {
     611            if (Config.getPref().getBoolean("debug.checkNullCoor", true)) {
    612612                for (Node n: nodes) {
    613613                    if (n.isVisible() && !n.isIncomplete() && !n.isLatLonKnown())
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java

    r12818 r12846  
    1717import org.openstreetmap.josm.gui.MainApplication;
    1818import org.openstreetmap.josm.gui.MapFrame;
     19import org.openstreetmap.josm.spi.preferences.Config;
    1920
    2021/**
     
    126127     */
    127128    public void enlargeBoundingBox() {
    128         enlargeBoundingBox(Main.pref.getDouble("edit.zoom-enlarge-bbox", 0.002));
     129        enlargeBoundingBox(Config.getPref().getDouble("edit.zoom-enlarge-bbox", 0.002));
    129130    }
    130131
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java

    r12841 r12846  
    99import java.util.Iterator;
    1010
    11 import org.openstreetmap.josm.Main;
    1211import org.openstreetmap.josm.data.osm.BBox;
    1312import org.openstreetmap.josm.data.osm.DataSet;
     
    1918import org.openstreetmap.josm.gui.MapViewState.MapViewRectangle;
    2019import org.openstreetmap.josm.gui.NavigatableComponent;
     20import org.openstreetmap.josm.spi.preferences.Config;
    2121import org.openstreetmap.josm.tools.CheckParameterUtil;
    2222import org.openstreetmap.josm.tools.Logging;
     
    182182     */
    183183    protected void getSettings(boolean virtual) {
    184         this.virtualNodeSize = virtual ? Main.pref.getInt("mappaint.node.virtual-size", 8) / 2 : 0;
    185         this.virtualNodeSpace = Main.pref.getInt("mappaint.node.virtual-space", 70);
    186         this.segmentNumberSpace = Main.pref.getInt("mappaint.segmentnumber.space", 40);
     184        this.virtualNodeSize = virtual ? Config.getPref().getInt("mappaint.node.virtual-size", 8) / 2 : 0;
     185        this.virtualNodeSpace = Config.getPref().getInt("mappaint.node.virtual-space", 70);
     186        this.segmentNumberSpace = Config.getPref().getInt("mappaint.segmentnumber.space", 40);
    187187        getColors();
    188188    }
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/ComputeStyleListWorker.java

    r12841 r12846  
    88import java.util.concurrent.RecursiveTask;
    99
    10 import org.openstreetmap.josm.Main;
    1110import org.openstreetmap.josm.data.osm.Node;
    1211import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    2524import org.openstreetmap.josm.gui.mappaint.styleelement.StyleElement;
    2625import org.openstreetmap.josm.gui.mappaint.styleelement.TextElement;
     26import org.openstreetmap.josm.spi.preferences.Config;
    2727import org.openstreetmap.josm.tools.JosmRuntimeException;
    2828import org.openstreetmap.josm.tools.bugreport.BugReport;
     
    6060        this.output = output;
    6161        this.directExecutionTaskSize = directExecutionTaskSize;
    62         this.drawArea = circum <= Main.pref.getInt("mappaint.fillareas", 10_000_000);
    63         this.drawMultipolygon = drawArea && Main.pref.getBoolean("mappaint.multipolygon", true);
    64         this.drawRestriction = Main.pref.getBoolean("mappaint.restriction", true);
     62        this.drawArea = circum <= Config.getPref().getInt("mappaint.fillareas", 10_000_000);
     63        this.drawMultipolygon = drawArea && Config.getPref().getBoolean("mappaint.multipolygon", true);
     64        this.drawRestriction = Config.getPref().getBoolean("mappaint.restriction", true);
    6565        this.styles.setDrawMultipolygon(drawMultipolygon);
    6666    }
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java

    r12841 r12846  
    44import java.awt.Color;
    55
    6 import org.openstreetmap.josm.Main;
    76import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
    87import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
     8import org.openstreetmap.josm.spi.preferences.Config;
    99
    1010/**
     
    6969    private MapPaintSettings() {
    7070        load();
    71         Main.pref.addPreferenceChangeListener(this);
     71        Config.getPref().addPreferenceChangeListener(this);
    7272    }
    7373
    7474    private void load() {
    75         showDirectionArrow = Main.pref.getBoolean("draw.segment.direction", false);
    76         showOnewayArrow = Main.pref.getBoolean("draw.oneway", true);
    77         useRealWidth = Main.pref.getBoolean("mappaint.useRealWidth", false);
    78         defaultSegmentWidth = Main.pref.getInt("mappaint.segment.default-width", 2);
     75        showDirectionArrow = Config.getPref().getBoolean("draw.segment.direction", false);
     76        showOnewayArrow = Config.getPref().getBoolean("draw.oneway", true);
     77        useRealWidth = Config.getPref().getBoolean("mappaint.useRealWidth", false);
     78        defaultSegmentWidth = Config.getPref().getInt("mappaint.segment.default-width", 2);
    7979
    8080        selectedColor = PaintColors.SELECTED.get();
     
    9191        }
    9292
    93         showOrderNumber = Main.pref.getBoolean("draw.segment.order_number", false);
    94         showOrderNumberOnSelectedWay = Main.pref.getBoolean("draw.segment.order_number.on_selected", false);
    95         showHeadArrowOnly = Main.pref.getBoolean("draw.segment.head_only", false);
    96 
    97         showNamesDistance = Main.pref.getInt("mappaint.shownames", 10_000_000);
    98         useStrokesDistance = Main.pref.getInt("mappaint.strokes", 10_000_000);
    99         showIconsDistance = Main.pref.getInt("mappaint.showicons", 10_000_000);
    100 
    101         selectedNodeSize = Main.pref.getInt("mappaint.node.selected-size", 5);
    102         unselectedNodeSize = Main.pref.getInt("mappaint.node.unselected-size", 3);
    103         connectionNodeSize = Main.pref.getInt("mappaint.node.connection-size", 5);
    104         taggedNodeSize = Main.pref.getInt("mappaint.node.tagged-size", 3);
    105         fillSelectedNode = Main.pref.getBoolean("mappaint.node.fill-selected", true);
    106         fillUnselectedNode = Main.pref.getBoolean("mappaint.node.fill-unselected", false);
    107         fillTaggedNode = Main.pref.getBoolean("mappaint.node.fill-tagged", true);
    108         fillConnectionNode = Main.pref.getBoolean("mappaint.node.fill-connection", false);
    109 
    110         outlineOnly = Main.pref.getBoolean("draw.data.area_outline_only", false);
     93        showOrderNumber = Config.getPref().getBoolean("draw.segment.order_number", false);
     94        showOrderNumberOnSelectedWay = Config.getPref().getBoolean("draw.segment.order_number.on_selected", false);
     95        showHeadArrowOnly = Config.getPref().getBoolean("draw.segment.head_only", false);
     96
     97        showNamesDistance = Config.getPref().getInt("mappaint.shownames", 10_000_000);
     98        useStrokesDistance = Config.getPref().getInt("mappaint.strokes", 10_000_000);
     99        showIconsDistance = Config.getPref().getInt("mappaint.showicons", 10_000_000);
     100
     101        selectedNodeSize = Config.getPref().getInt("mappaint.node.selected-size", 5);
     102        unselectedNodeSize = Config.getPref().getInt("mappaint.node.unselected-size", 3);
     103        connectionNodeSize = Config.getPref().getInt("mappaint.node.connection-size", 5);
     104        taggedNodeSize = Config.getPref().getInt("mappaint.node.tagged-size", 3);
     105        fillSelectedNode = Config.getPref().getBoolean("mappaint.node.fill-selected", true);
     106        fillUnselectedNode = Config.getPref().getBoolean("mappaint.node.fill-unselected", false);
     107        fillTaggedNode = Config.getPref().getBoolean("mappaint.node.fill-tagged", true);
     108        fillConnectionNode = Config.getPref().getBoolean("mappaint.node.fill-connection", false);
     109
     110        outlineOnly = Config.getPref().getBoolean("draw.data.area_outline_only", false);
    111111    }
    112112
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java

    r12620 r12846  
    1313import java.util.List;
    1414
    15 import org.openstreetmap.josm.Main;
    1615import org.openstreetmap.josm.gui.NavigatableComponent;
    1716import org.openstreetmap.josm.plugins.PluginHandler;
     17import org.openstreetmap.josm.spi.preferences.Config;
    1818import org.openstreetmap.josm.tools.CheckParameterUtil;
    1919import org.openstreetmap.josm.tools.Logging;
     
    151151    private MapRendererFactory() {
    152152        registerDefaultRenderers();
    153         String rendererClassName = Main.pref.get(PREF_KEY_RENDERER_CLASS_NAME, null);
     153        String rendererClassName = Config.getPref().get(PREF_KEY_RENDERER_CLASS_NAME, null);
    154154        if (rendererClassName != null) {
    155155            activateMapRenderer(rendererClassName);
     
    274274            );
    275275        this.activeRenderer = renderer;
    276         Main.pref.put(PREF_KEY_RENDERER_CLASS_NAME, activeRenderer.getName());
     276        Config.getPref().put(PREF_KEY_RENDERER_CLASS_NAME, activeRenderer.getName());
    277277
    278278    }
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/RenderBenchmarkCollector.java

    r12620 r12846  
    66import java.util.function.Supplier;
    77
    8 import org.openstreetmap.josm.Main;
    98import org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.StyleRecord;
    109import org.openstreetmap.josm.gui.mappaint.mapcss.Selector;
     10import org.openstreetmap.josm.spi.preferences.Config;
    1111import org.openstreetmap.josm.tools.Logging;
    1212import org.openstreetmap.josm.tools.Utils;
     
    148148     */
    149149    public static Supplier<RenderBenchmarkCollector> defaultBenchmarkSupplier() {
    150         return () -> Logging.isTraceEnabled() || Main.pref.getBoolean("mappaint.render.benchmark", false)
     150        return () -> Logging.isTraceEnabled() || Config.getPref().getBoolean("mappaint.render.benchmark", false)
    151151                ? new LoggingBenchmark() : new RenderBenchmarkCollector();
    152152    }
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java

    r12722 r12846  
    4343import javax.swing.FocusManager;
    4444
    45 import org.openstreetmap.josm.Main;
    4645import org.openstreetmap.josm.data.Bounds;
    4746import org.openstreetmap.josm.data.coor.EastNorth;
     
    7675import org.openstreetmap.josm.gui.mappaint.styleelement.TextLabel;
    7776import org.openstreetmap.josm.gui.mappaint.styleelement.placement.PositionForAreaStrategy;
     77import org.openstreetmap.josm.spi.preferences.Config;
    7878import org.openstreetmap.josm.tools.CompositeList;
    7979import org.openstreetmap.josm.tools.Geometry;
    8080import org.openstreetmap.josm.tools.Geometry.AreaAndPerimeter;
     81import org.openstreetmap.josm.tools.HiDPISupport;
    8182import org.openstreetmap.josm.tools.ImageProvider;
    8283import org.openstreetmap.josm.tools.JosmRuntimeException;
    8384import org.openstreetmap.josm.tools.Logging;
    84 import org.openstreetmap.josm.tools.HiDPISupport;
    8585import org.openstreetmap.josm.tools.Utils;
    8686import org.openstreetmap.josm.tools.bugreport.BugReport;
     
    236236        if (cached != null)
    237237            return cached;
    238         String overridePref = Main.pref.get("glyph-bug", "auto");
     238        String overridePref = Config.getPref().get("glyph-bug", "auto");
    239239        if ("auto".equals(overridePref)) {
    240240            FontRenderContext frc = new FontRenderContext(null, false, false);
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java

    r12809 r12846  
    1616import java.util.List;
    1717
    18 import org.openstreetmap.josm.Main;
    1918import org.openstreetmap.josm.data.Bounds;
    2019import org.openstreetmap.josm.data.osm.BBox;
     
    3130import org.openstreetmap.josm.gui.NavigatableComponent;
    3231import org.openstreetmap.josm.gui.draw.MapPath2D;
     32import org.openstreetmap.josm.spi.preferences.Config;
    3333import org.openstreetmap.josm.tools.Utils;
    3434
     
    147147
    148148        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
    149                 Main.pref.getBoolean("mappaint.wireframe.use-antialiasing", false) ?
     149                Config.getPref().getBoolean("mappaint.wireframe.use-antialiasing", false) ?
    150150                        RenderingHints.VALUE_ANTIALIAS_ON : RenderingHints.VALUE_ANTIALIAS_OFF);
    151151    }
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/Multipolygon.java

    r12841 r12846  
    2828import org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon.PolyData.Intersection;
    2929import org.openstreetmap.josm.data.projection.Projection;
     30import org.openstreetmap.josm.spi.preferences.Config;
    3031import org.openstreetmap.josm.tools.Geometry;
    3132import org.openstreetmap.josm.tools.Geometry.AreaAndPerimeter;
     
    9697        private void initFromPreferences() {
    9798            initDefaults();
    98             if (Main.pref == null) return;
     99            if (Config.getPref() == null) return;
    99100            Collection<String> literals;
    100             literals = Main.pref.getList(PREF_KEY_OUTER_ROLES);
     101            literals = Config.getPref().getList(PREF_KEY_OUTER_ROLES);
    101102            if (literals != null && !literals.isEmpty()) {
    102103                setNormalized(literals, outerExactRoles);
    103104            }
    104             literals = Main.pref.getList(PREF_KEY_OUTER_ROLE_PREFIXES);
     105            literals = Config.getPref().getList(PREF_KEY_OUTER_ROLE_PREFIXES);
    105106            if (literals != null && !literals.isEmpty()) {
    106107                setNormalized(literals, outerRolePrefixes);
    107108            }
    108             literals = Main.pref.getList(PREF_KEY_INNER_ROLES);
     109            literals = Config.getPref().getList(PREF_KEY_INNER_ROLES);
    109110            if (literals != null && !literals.isEmpty()) {
    110111                setNormalized(literals, innerExactRoles);
    111112            }
    112             literals = Main.pref.getList(PREF_KEY_INNER_ROLE_PREFIXES);
     113            literals = Config.getPref().getList(PREF_KEY_INNER_ROLE_PREFIXES);
    113114            if (literals != null && !literals.isEmpty()) {
    114115                setNormalized(literals, innerRolePrefixes);
     
    157158        if (roleMatcher == null) {
    158159            roleMatcher = new MultipolygonRoleMatcher();
    159             if (Main.pref != null) {
     160            if (Config.getPref() != null) {
    160161                roleMatcher.initFromPreferences();
    161                 Main.pref.addPreferenceChangeListener(roleMatcher);
     162                Config.getPref().addPreferenceChangeListener(roleMatcher);
    162163            }
    163164        }
  • trunk/src/org/openstreetmap/josm/data/preferences/CachedProperty.java

    r12385 r12846  
    22package org.openstreetmap.josm.data.preferences;
    33
    4 import org.openstreetmap.josm.Main;
    54import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
    65import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
     6import org.openstreetmap.josm.spi.preferences.Config;
    77
    88/**
     
    2121    protected CachedProperty(String key, String defaultValueAsString) {
    2222        super(key, null);
    23         Main.pref.addKeyPreferenceChangeListener(key, this);
     23        Config.getPref().addKeyPreferenceChangeListener(key, this);
    2424        this.defaultValueAsString = defaultValueAsString;
    2525        updateValue();
     
    2727
    2828    protected final void updateValue() {
    29         if (!Main.pref.get(key).isEmpty()) {
    30             this.value = fromString(Main.pref.get(key));
     29        if (!Config.getPref().get(key).isEmpty()) {
     30            this.value = fromString(Config.getPref().get(key));
    3131        } else {
    3232            this.value = getDefaultValue();
     
    4343
    4444    public void put(String value) {
    45         Main.pref.put(key, value);
     45        Config.getPref().put(key, value);
    4646        this.value = fromString(value);
    4747        updateCount++;
  • trunk/src/org/openstreetmap/josm/data/preferences/ParametrizedEnumProperty.java

    r12620 r12846  
    22package org.openstreetmap.josm.data.preferences;
    33
    4 import org.openstreetmap.josm.Main;
     4import org.openstreetmap.josm.spi.preferences.Config;
    55import org.openstreetmap.josm.tools.Logging;
    66
     
    2323
    2424    public T get(String... params) {
    25         return parse(Main.pref.get(getKey(params), defaultValue.name()));
     25        return parse(Config.getPref().get(getKey(params), defaultValue.name()));
    2626    }
    2727
    2828    public boolean put(T value, String... params) {
    29         return Main.pref.put(getKey(params), value.name());
     29        return Config.getPref().put(getKey(params), value.name());
    3030    }
    3131
  • trunk/src/org/openstreetmap/josm/data/preferences/sources/MapPaintPrefHelper.java

    r12841 r12846  
    1313import java.util.TreeSet;
    1414
    15 import org.openstreetmap.josm.Main;
     15import org.openstreetmap.josm.spi.preferences.Config;
    1616import org.openstreetmap.josm.tools.Utils;
    1717
     
    5353        boolean changed = false;
    5454
    55         Collection<String> knownDefaults = new TreeSet<>(Main.pref.getList("mappaint.style.known-defaults"));
     55        Collection<String> knownDefaults = new TreeSet<>(Config.getPref().getList("mappaint.style.known-defaults"));
    5656
    5757        Collection<ExtendedSourceEntry> defaults = getDefault();
     
    7171            knownDefaults.add(def.url);
    7272        }
    73         Main.pref.putList("mappaint.style.known-defaults", new ArrayList<>(knownDefaults));
     73        Config.getPref().putList("mappaint.style.known-defaults", new ArrayList<>(knownDefaults));
    7474
    7575        // XML style is not bundled anymore
  • trunk/src/org/openstreetmap/josm/data/preferences/sources/SourcePrefHelper.java

    r12841 r12846  
    1010import java.util.Set;
    1111
    12 import org.openstreetmap.josm.Main;
     12import org.openstreetmap.josm.spi.preferences.Config;
    1313
    1414/**
     
    5858    public List<SourceEntry> get() {
    5959
    60         List<Map<String, String>> src = Main.pref.getListOfMaps(pref, null);
     60        List<Map<String, String>> src = Config.getPref().getListOfMaps(pref, null);
    6161        if (src == null)
    6262            return new ArrayList<>(getDefault());
     
    7979    public boolean put(Collection<? extends SourceEntry> entries) {
    8080        List<Map<String, String>> setting = serializeList(entries);
    81         boolean unset = Main.pref.getListOfMaps(pref, null) == null;
     81        boolean unset = Config.getPref().getListOfMaps(pref, null) == null;
    8282        if (unset) {
    8383            Collection<Map<String, String>> def = serializeList(getDefault());
     
    8585                return false;
    8686        }
    87         return Main.pref.putListOfMaps(pref, setting);
     87        return Config.getPref().putListOfMaps(pref, setting);
    8888    }
    8989
  • trunk/src/org/openstreetmap/josm/data/projection/ProjectionCLI.java

    r12795 r12846  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
    5 
    6 import gnu.getopt.Getopt;
    7 import gnu.getopt.LongOpt;
    85
    96import java.io.BufferedReader;
     
    1815import java.util.function.Function;
    1916
     17import org.openstreetmap.josm.CLIModule;
    2018import org.openstreetmap.josm.data.coor.EastNorth;
    2119import org.openstreetmap.josm.data.coor.LatLon;
    22 import org.openstreetmap.josm.CLIModule;
    2320import org.openstreetmap.josm.data.coor.conversion.LatLonParser;
    24 
    2521import org.openstreetmap.josm.tools.Utils;
     22
     23import gnu.getopt.Getopt;
     24import gnu.getopt.LongOpt;
    2625
    2726/**
  • trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java

    r12841 r12846  
    6666import org.openstreetmap.josm.gui.layer.ValidatorLayer;
    6767import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
     68import org.openstreetmap.josm.spi.preferences.Config;
    6869import org.openstreetmap.josm.tools.AlphanumComparator;
    6970import org.openstreetmap.josm.tools.Logging;
     
    282283
    283284    private static void applyPrefs(Map<String, Test> tests, boolean beforeUpload) {
    284         for (String testName : Main.pref.getList(beforeUpload
     285        for (String testName : Config.getPref().getList(beforeUpload
    285286        ? ValidatorPrefHelper.PREF_SKIP_TESTS_BEFORE_UPLOAD : ValidatorPrefHelper.PREF_SKIP_TESTS)) {
    286287            Test test = tests.get(testName);
  • trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java

    r12620 r12846  
    1515import java.util.Set;
    1616
    17 import org.openstreetmap.josm.Main;
    1817import org.openstreetmap.josm.data.coor.EastNorth;
    1918import org.openstreetmap.josm.data.osm.Node;
     
    2524import org.openstreetmap.josm.data.validation.Test;
    2625import org.openstreetmap.josm.data.validation.TestError;
     26import org.openstreetmap.josm.spi.preferences.Config;
    2727import org.openstreetmap.josm.tools.Geometry;
    2828import org.openstreetmap.josm.tools.Logging;
     
    205205        }
    206206        if (centroid == null) return; // fix #8305
    207         double maxDistance = Main.pref.getDouble("validator.addresses.max_street_distance", 200.0);
     207        double maxDistance = Config.getPref().getDouble("validator.addresses.max_street_distance", 200.0);
    208208        boolean hasIncompleteWays = false;
    209209        for (Way streetPart : street) {
  • trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java

    r12689 r12846  
    2020import java.util.Set;
    2121
    22 import org.openstreetmap.josm.Main;
    2322import org.openstreetmap.josm.actions.MergeNodesAction;
    2423import org.openstreetmap.josm.command.Command;
     
    3534import org.openstreetmap.josm.data.validation.TestError;
    3635import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     36import org.openstreetmap.josm.spi.preferences.Config;
    3737import org.openstreetmap.josm.tools.MultiMap;
    3838
     
    4646    private static class NodeHash implements Hash<Object, Object> {
    4747
    48         private final double precision = Main.pref.getDouble("validator.duplicatenodes.precision", 0.);
     48        private final double precision = Config.getPref().getDouble("validator.duplicatenodes.precision", 0.);
    4949
    5050        private LatLon roundCoord(LatLon coor) {
  • trunk/src/org/openstreetmap/josm/data/validation/tests/LongSegment.java

    r12841 r12846  
    99import java.util.Set;
    1010
    11 import org.openstreetmap.josm.Main;
    1211import org.openstreetmap.josm.data.coor.LatLon;
    1312import org.openstreetmap.josm.data.osm.Node;
     
    1918import org.openstreetmap.josm.data.validation.TestError;
    2019import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     20import org.openstreetmap.josm.spi.preferences.Config;
    2121
    2222/**
     
    112112    public void startTest(ProgressMonitor monitor) {
    113113        super.startTest(monitor);
    114         maxlength = Main.pref.getInt("validator.maximum.segment.length", 15_000);
     114        maxlength = Config.getPref().getInt("validator.maximum.segment.length", 15_000);
    115115        reported = new HashSet<>();
    116116        visitedWays = new HashSet<>();
  • trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java

    r12825 r12846  
    22package org.openstreetmap.josm.data.validation.tests;
    33
     4import static org.openstreetmap.josm.data.validation.tests.MapCSSTagChecker.FixCommand.evaluateObject;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    56
     
    6364import org.openstreetmap.josm.io.IllegalDataException;
    6465import org.openstreetmap.josm.io.UTFInputStreamReader;
     66import org.openstreetmap.josm.spi.preferences.Config;
    6567import org.openstreetmap.josm.tools.CheckParameterUtil;
    6668import org.openstreetmap.josm.tools.Logging;
     
    735737            checks.putAll(url, result.parseChecks);
    736738            // Check assertions, useful for development of local files
    737             if (Main.pref.getBoolean("validator.check_assert_local_rules", false) && Utils.isLocalUrl(url)) {
     739            if (Config.getPref().getBoolean("validator.check_assert_local_rules", false) && Utils.isLocalUrl(url)) {
    738740                for (String msg : checkAsserts(result.parseChecks)) {
    739741                    Logging.warn(msg);
     
    759761                }
    760762                addMapCSS(i);
    761                 if (Main.pref.getBoolean("validator.auto_reload_local_rules", true) && source.isLocal()) {
     763                if (Config.getPref().getBoolean("validator.auto_reload_local_rules", true) && source.isLocal()) {
    762764                    Main.fileWatcher.registerSource(source);
    763765                }
  • trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java

    r12841 r12846  
    2626import javax.swing.JPanel;
    2727
    28 import org.openstreetmap.josm.Main;
    2928import org.openstreetmap.josm.command.ChangePropertyCommand;
    3029import org.openstreetmap.josm.command.ChangePropertyKeyCommand;
     
    4948import org.openstreetmap.josm.gui.widgets.EditableList;
    5049import org.openstreetmap.josm.io.CachedFile;
     50import org.openstreetmap.josm.spi.preferences.Config;
    5151import org.openstreetmap.josm.tools.GBC;
    5252import org.openstreetmap.josm.tools.Logging;
     
    190190
    191191        StringBuilder errorSources = new StringBuilder();
    192         for (String source : Main.pref.getList(PREF_SOURCES, DEFAULT_SOURCES)) {
     192        for (String source : Config.getPref().getList(PREF_SOURCES, DEFAULT_SOURCES)) {
    193193            try (
    194194                CachedFile cf = new CachedFile(source);
     
    282282    public static void initializePresets() {
    283283
    284         if (!Main.pref.getBoolean(PREF_CHECK_VALUES, true))
     284        if (!Config.getPref().getBoolean(PREF_CHECK_VALUES, true))
    285285            return;
    286286
     
    292292            }
    293293            // TODO directionKeys are no longer in OsmPrimitive (search pattern is used instead)
    294             for (String a : Main.pref.getList(ValidatorPrefHelper.PREFIX + ".knownkeys",
     294            for (String a : Config.getPref().getList(ValidatorPrefHelper.PREFIX + ".knownkeys",
    295295                    Arrays.asList("is_in", "int_ref", "fixme", "population"))) {
    296296                additionalPresetsValueData.putVoid(a);
     
    584584    public void startTest(ProgressMonitor monitor) {
    585585        super.startTest(monitor);
    586         checkKeys = Main.pref.getBoolean(PREF_CHECK_KEYS, true);
     586        checkKeys = Config.getPref().getBoolean(PREF_CHECK_KEYS, true);
    587587        if (isBeforeUpload) {
    588             checkKeys = checkKeys && Main.pref.getBoolean(PREF_CHECK_KEYS_BEFORE_UPLOAD, true);
    589         }
    590 
    591         checkValues = Main.pref.getBoolean(PREF_CHECK_VALUES, true);
     588            checkKeys = checkKeys && Config.getPref().getBoolean(PREF_CHECK_KEYS_BEFORE_UPLOAD, true);
     589        }
     590
     591        checkValues = Config.getPref().getBoolean(PREF_CHECK_VALUES, true);
    592592        if (isBeforeUpload) {
    593             checkValues = checkValues && Main.pref.getBoolean(PREF_CHECK_VALUES_BEFORE_UPLOAD, true);
    594         }
    595 
    596         checkComplex = Main.pref.getBoolean(PREF_CHECK_COMPLEX, true);
     593            checkValues = checkValues && Config.getPref().getBoolean(PREF_CHECK_VALUES_BEFORE_UPLOAD, true);
     594        }
     595
     596        checkComplex = Config.getPref().getBoolean(PREF_CHECK_COMPLEX, true);
    597597        if (isBeforeUpload) {
    598             checkComplex = checkComplex && Main.pref.getBoolean(PREF_CHECK_COMPLEX_BEFORE_UPLOAD, true);
    599         }
    600 
    601         checkFixmes = Main.pref.getBoolean(PREF_CHECK_FIXMES, true);
     598            checkComplex = checkComplex && Config.getPref().getBoolean(PREF_CHECK_COMPLEX_BEFORE_UPLOAD, true);
     599        }
     600
     601        checkFixmes = Config.getPref().getBoolean(PREF_CHECK_FIXMES, true);
    602602        if (isBeforeUpload) {
    603             checkFixmes = checkFixmes && Main.pref.getBoolean(PREF_CHECK_FIXMES_BEFORE_UPLOAD, true);
     603            checkFixmes = checkFixmes && Config.getPref().getBoolean(PREF_CHECK_FIXMES_BEFORE_UPLOAD, true);
    604604        }
    605605    }
     
    619619        testPanel.add(new JLabel(name+" :"), GBC.eol().insets(3, 0, 0, 0));
    620620
    621         prefCheckKeys = new JCheckBox(tr("Check property keys."), Main.pref.getBoolean(PREF_CHECK_KEYS, true));
     621        prefCheckKeys = new JCheckBox(tr("Check property keys."), Config.getPref().getBoolean(PREF_CHECK_KEYS, true));
    622622        prefCheckKeys.setToolTipText(tr("Validate that property keys are valid checking against list of words."));
    623623        testPanel.add(prefCheckKeys, GBC.std().insets(20, 0, 0, 0));
    624624
    625625        prefCheckKeysBeforeUpload = new JCheckBox();
    626         prefCheckKeysBeforeUpload.setSelected(Main.pref.getBoolean(PREF_CHECK_KEYS_BEFORE_UPLOAD, true));
     626        prefCheckKeysBeforeUpload.setSelected(Config.getPref().getBoolean(PREF_CHECK_KEYS_BEFORE_UPLOAD, true));
    627627        testPanel.add(prefCheckKeysBeforeUpload, a);
    628628
    629         prefCheckComplex = new JCheckBox(tr("Use complex property checker."), Main.pref.getBoolean(PREF_CHECK_COMPLEX, true));
     629        prefCheckComplex = new JCheckBox(tr("Use complex property checker."), Config.getPref().getBoolean(PREF_CHECK_COMPLEX, true));
    630630        prefCheckComplex.setToolTipText(tr("Validate property values and tags using complex rules."));
    631631        testPanel.add(prefCheckComplex, GBC.std().insets(20, 0, 0, 0));
    632632
    633633        prefCheckComplexBeforeUpload = new JCheckBox();
    634         prefCheckComplexBeforeUpload.setSelected(Main.pref.getBoolean(PREF_CHECK_COMPLEX_BEFORE_UPLOAD, true));
     634        prefCheckComplexBeforeUpload.setSelected(Config.getPref().getBoolean(PREF_CHECK_COMPLEX_BEFORE_UPLOAD, true));
    635635        testPanel.add(prefCheckComplexBeforeUpload, a);
    636636
    637         final Collection<String> sources = Main.pref.getList(PREF_SOURCES, DEFAULT_SOURCES);
     637        final Collection<String> sources = Config.getPref().getList(PREF_SOURCES, DEFAULT_SOURCES);
    638638        sourcesList = new EditableList(tr("TagChecker source"));
    639639        sourcesList.setItems(sources);
     
    649649        handlePrefEnable();
    650650
    651         prefCheckValues = new JCheckBox(tr("Check property values."), Main.pref.getBoolean(PREF_CHECK_VALUES, true));
     651        prefCheckValues = new JCheckBox(tr("Check property values."), Config.getPref().getBoolean(PREF_CHECK_VALUES, true));
    652652        prefCheckValues.setToolTipText(tr("Validate that property values are valid checking against presets."));
    653653        testPanel.add(prefCheckValues, GBC.std().insets(20, 0, 0, 0));
    654654
    655655        prefCheckValuesBeforeUpload = new JCheckBox();
    656         prefCheckValuesBeforeUpload.setSelected(Main.pref.getBoolean(PREF_CHECK_VALUES_BEFORE_UPLOAD, true));
     656        prefCheckValuesBeforeUpload.setSelected(Config.getPref().getBoolean(PREF_CHECK_VALUES_BEFORE_UPLOAD, true));
    657657        testPanel.add(prefCheckValuesBeforeUpload, a);
    658658
    659         prefCheckFixmes = new JCheckBox(tr("Check for FIXMES."), Main.pref.getBoolean(PREF_CHECK_FIXMES, true));
     659        prefCheckFixmes = new JCheckBox(tr("Check for FIXMES."), Config.getPref().getBoolean(PREF_CHECK_FIXMES, true));
    660660        prefCheckFixmes.setToolTipText(tr("Looks for nodes or ways with FIXME in any property value."));
    661661        testPanel.add(prefCheckFixmes, GBC.std().insets(20, 0, 0, 0));
    662662
    663663        prefCheckFixmesBeforeUpload = new JCheckBox();
    664         prefCheckFixmesBeforeUpload.setSelected(Main.pref.getBoolean(PREF_CHECK_FIXMES_BEFORE_UPLOAD, true));
     664        prefCheckFixmesBeforeUpload.setSelected(Config.getPref().getBoolean(PREF_CHECK_FIXMES_BEFORE_UPLOAD, true));
    665665        testPanel.add(prefCheckFixmesBeforeUpload, a);
    666666    }
     
    681681                || prefCheckFixmesBeforeUpload.isSelected() || prefCheckComplexBeforeUpload.isSelected();
    682682
    683         Main.pref.putBoolean(PREF_CHECK_VALUES, prefCheckValues.isSelected());
    684         Main.pref.putBoolean(PREF_CHECK_COMPLEX, prefCheckComplex.isSelected());
    685         Main.pref.putBoolean(PREF_CHECK_KEYS, prefCheckKeys.isSelected());
    686         Main.pref.putBoolean(PREF_CHECK_FIXMES, prefCheckFixmes.isSelected());
    687         Main.pref.putBoolean(PREF_CHECK_VALUES_BEFORE_UPLOAD, prefCheckValuesBeforeUpload.isSelected());
    688         Main.pref.putBoolean(PREF_CHECK_COMPLEX_BEFORE_UPLOAD, prefCheckComplexBeforeUpload.isSelected());
    689         Main.pref.putBoolean(PREF_CHECK_KEYS_BEFORE_UPLOAD, prefCheckKeysBeforeUpload.isSelected());
    690         Main.pref.putBoolean(PREF_CHECK_FIXMES_BEFORE_UPLOAD, prefCheckFixmesBeforeUpload.isSelected());
    691         return Main.pref.putList(PREF_SOURCES, sourcesList.getItems());
     683        Config.getPref().putBoolean(PREF_CHECK_VALUES, prefCheckValues.isSelected());
     684        Config.getPref().putBoolean(PREF_CHECK_COMPLEX, prefCheckComplex.isSelected());
     685        Config.getPref().putBoolean(PREF_CHECK_KEYS, prefCheckKeys.isSelected());
     686        Config.getPref().putBoolean(PREF_CHECK_FIXMES, prefCheckFixmes.isSelected());
     687        Config.getPref().putBoolean(PREF_CHECK_VALUES_BEFORE_UPLOAD, prefCheckValuesBeforeUpload.isSelected());
     688        Config.getPref().putBoolean(PREF_CHECK_COMPLEX_BEFORE_UPLOAD, prefCheckComplexBeforeUpload.isSelected());
     689        Config.getPref().putBoolean(PREF_CHECK_KEYS_BEFORE_UPLOAD, prefCheckKeysBeforeUpload.isSelected());
     690        Config.getPref().putBoolean(PREF_CHECK_FIXMES_BEFORE_UPLOAD, prefCheckFixmesBeforeUpload.isSelected());
     691        return Config.getPref().putList(PREF_SOURCES, sourcesList.getItems());
    692692    }
    693693
  • trunk/src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java

    r12726 r12846  
    3333import org.openstreetmap.josm.data.validation.TestError;
    3434import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     35import org.openstreetmap.josm.spi.preferences.Config;
    3536import org.openstreetmap.josm.tools.Logging;
    3637
     
    166167        middlenodes = new QuadBuckets<>();
    167168        othernodes = new HashSet<>();
    168         mindist = Main.pref.getDouble(PREFIX + ".node_way_distance", 10.0);
    169         minmiddledist = Main.pref.getDouble(PREFIX + ".way_way_distance", 0.0);
     169        mindist = Config.getPref().getDouble(PREFIX + ".node_way_distance", 10.0);
     170        minmiddledist = Config.getPref().getDouble(PREFIX + ".way_way_distance", 0.0);
    170171        DataSet dataSet = Main.main != null ? Main.main.getEditDataSet() : null;
    171172        dsArea = dataSet == null ? null : dataSet.getDataSourceArea();
  • trunk/src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java

    r12841 r12846  
    1717import javax.swing.JRadioButton;
    1818
    19 import org.openstreetmap.josm.Main;
    2019import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
     20import org.openstreetmap.josm.spi.preferences.Config;
    2121import org.openstreetmap.josm.tools.GBC;
    2222import org.openstreetmap.josm.tools.Utils;
     
    5757     */
    5858    public static int getDialogReturnValue(String prefKey) {
    59         return Utils.firstNonNull(
    60                 immediateChoices.get(prefKey),
     59        return Utils.firstNonNull(immediateChoices.get(prefKey),
    6160                sessionChoices.get(prefKey),
    62                 !Main.pref.getBoolean("message." + prefKey, true) ? Main.pref.getInt("message." + prefKey + ".value", -1) : -1
     61                !Config.getPref().getBoolean("message." + prefKey, true) ? Config.getPref().getInt("message." + prefKey + ".value", -1) : -1
    6362        );
    6463    }
     
    239238                    break;
    240239                case PERMANENT:
    241                     Main.pref.putBoolean("message." + prefKey, false);
    242                     Main.pref.putInt("message." + prefKey + ".value", value);
     240                    Config.getPref().putBoolean("message." + prefKey, false);
     241                    Config.getPref().putInt("message." + prefKey + ".value", value);
    243242                    break;
    244243            }
  • trunk/src/org/openstreetmap/josm/gui/GettingStarted.java

    r12841 r12846  
    2929import org.openstreetmap.josm.io.CacheCustomContent;
    3030import org.openstreetmap.josm.io.OnlineResource;
     31import org.openstreetmap.josm.spi.preferences.Config;
    3132import org.openstreetmap.josm.tools.LanguageInfo;
    3233import org.openstreetmap.josm.tools.Logging;
     
    9596            String motd = new WikiReader().readLang("StartupPage");
    9697            // Save this to prefs in case JOSM is updated so MOTD can be refreshed
    97             Main.pref.putInt("cache.motd.html.version", myVersion);
    98             Main.pref.put("cache.motd.html.java", myJava);
    99             Main.pref.put("cache.motd.html.lang", myLang);
     98            Config.getPref().putInt("cache.motd.html.version", myVersion);
     99            Config.getPref().put("cache.motd.html.java", myJava);
     100            Config.getPref().put("cache.motd.html.lang", myLang);
    100101            return motd.getBytes(StandardCharsets.UTF_8);
    101102        }
     
    115116            // 2. Cannot be written (e.g. while developing). Obviously we don't want to update
    116117            // everytime because of something we can't read.
    117             return (Main.pref.getInt("cache.motd.html.version", -999) == myVersion)
    118             && Main.pref.get("cache.motd.html.java").equals(myJava)
    119             && Main.pref.get("cache.motd.html.lang").equals(myLang);
     118            return (Config.getPref().getInt("cache.motd.html.version", -999) == myVersion)
     119            && Config.getPref().get("cache.motd.html.java").equals(myJava)
     120            && Config.getPref().get("cache.motd.html.lang").equals(myLang);
    120121        }
    121122    }
     
    146147        // Asynchronously get MOTD to speed-up JOSM startup
    147148        Thread t = new Thread((Runnable) () -> {
    148             if (!contentInitialized && Main.pref.getBoolean("help.displaymotd", true)) {
     149            if (!contentInitialized && Config.getPref().getBoolean("help.displaymotd", true)) {
    149150                try {
    150151                    content = new MotdContent().updateIfRequiredString();
  • trunk/src/org/openstreetmap/josm/gui/IconToggleButton.java

    r12841 r12846  
    1010import javax.swing.JToggleButton;
    1111
    12 import org.openstreetmap.josm.Main;
    1312import org.openstreetmap.josm.actions.ExpertToggleAction;
    1413import org.openstreetmap.josm.actions.ExpertToggleAction.ExpertModeChangeListener;
     14import org.openstreetmap.josm.spi.preferences.Config;
    1515import org.openstreetmap.josm.tools.CheckParameterUtil;
    1616import org.openstreetmap.josm.tools.Destroyable;
     
    9393    @Override
    9494    public void applyButtonHiddenPreferences() {
    95         boolean alwaysHideDisabled = Main.pref.getBoolean("sidetoolbar.hideDisabledButtons", false);
     95        boolean alwaysHideDisabled = Config.getPref().getBoolean("sidetoolbar.hideDisabledButtons", false);
    9696        if (!isEnabled() && (hideIfDisabled || alwaysHideDisabled)) {
    9797            setVisible(false);  // hide because of disabled button
    9898        } else {
    9999            boolean hiddenFlag = false;
    100             String hiddenFlagStr = Main.pref.get(getPreferenceKey(), null);
     100            String hiddenFlagStr = Config.getPref().get(getPreferenceKey(), null);
    101101            if (hiddenFlagStr == null) {
    102102                if (isExpert && !ExpertToggleAction.isExpert()) {
     
    118118        if ((b && isExpert && !ExpertToggleAction.isExpert()) ||
    119119            (!b && isExpert && ExpertToggleAction.isExpert())) {
    120             Main.pref.put(getPreferenceKey(), null);
     120            Config.getPref().put(getPreferenceKey(), null);
    121121        } else {
    122             Main.pref.putBoolean(getPreferenceKey(), b);
     122            Config.getPref().putBoolean(getPreferenceKey(), b);
    123123        }
    124124    }
  • trunk/src/org/openstreetmap/josm/gui/MainFrame.java

    r12841 r12846  
    2020import javax.swing.JPanel;
    2121
    22 import org.openstreetmap.josm.Main;
    2322import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
    2423import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
     
    2827import org.openstreetmap.josm.gui.layer.OsmDataLayer.LayerStateChangeListener;
    2928import org.openstreetmap.josm.gui.util.WindowGeometry;
     29import org.openstreetmap.josm.spi.preferences.Config;
    3030import org.openstreetmap.josm.tools.ImageProvider;
    3131import org.openstreetmap.josm.tools.Logging;
     
    110110            geometry.remember("gui.geometry");
    111111        }
    112         Main.pref.putBoolean("gui.maximized", (windowState & JFrame.MAXIMIZED_BOTH) != 0);
     112        Config.getPref().putBoolean("gui.maximized", (windowState & JFrame.MAXIMIZED_BOTH) != 0);
    113113    }
    114114
  • trunk/src/org/openstreetmap/josm/gui/MainMenu.java

    r12834 r12846  
    122122import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference;
    123123import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSearchPrimitiveDialog;
     124import org.openstreetmap.josm.spi.preferences.Config;
    124125import org.openstreetmap.josm.tools.Shortcut;
    125126
     
    799800        changesetManager.addButtonModel(mi.getModel());
    800801
    801         if (!Main.pref.getBoolean("audio.menuinvisible", false)) {
     802        if (!Config.getPref().getBoolean("audio.menuinvisible", false)) {
    802803            showAudioMenu(true);
    803804        }
    804805
    805         Main.pref.addPreferenceChangeListener(e -> {
     806        Config.getPref().addPreferenceChangeListener(e -> {
    806807            if ("audio.menuinvisible".equals(e.getKey())) {
    807808                showAudioMenu(!Boolean.parseBoolean(e.getNewValue().toString()));
  • trunk/src/org/openstreetmap/josm/gui/MapFrame.java

    r12841 r12846  
    4242import javax.swing.plaf.basic.BasicSplitPaneUI;
    4343
    44 import org.openstreetmap.josm.Main;
    4544import org.openstreetmap.josm.actions.LassoModeAction;
    4645import org.openstreetmap.josm.actions.mapmode.DeleteAction;
     
    8079import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
    8180import org.openstreetmap.josm.gui.util.AdvancedKeyPressDetector;
     81import org.openstreetmap.josm.spi.preferences.Config;
    8282import org.openstreetmap.josm.tools.Destroyable;
    8383import org.openstreetmap.josm.tools.GBC;
     
    295295        }
    296296
    297         if (Main.pref.getBoolean("debug.advanced-keypress-detector.enable", true)) {
     297        if (Config.getPref().getBoolean("debug.advanced-keypress-detector.enable", true)) {
    298298            keyDetector.register();
    299299        }
     
    345345        MainApplication.getLayerManager().removeActiveLayerChangeListener(this);
    346346        dialogsPanel.destroy();
    347         Main.pref.removePreferenceChangeListener(sidetoolbarPreferencesChangedListener);
     347        Config.getPref().removePreferenceChangeListener(sidetoolbarPreferencesChangedListener);
    348348        for (int i = 0; i < toolBarActions.getComponentCount(); ++i) {
    349349            if (toolBarActions.getComponent(i) instanceof Destroyable) {
     
    496496         * sideToolBar: add map modes icons
    497497         */
    498         if (Main.pref.getBoolean("sidetoolbar.mapmodes.visible", true)) {
     498        if (Config.getPref().getBoolean("sidetoolbar.mapmodes.visible", true)) {
    499499            toolBarActions.setAlignmentX(0.5f);
    500500            toolBarActions.setBorder(null);
     
    511511         * sideToolBar: add toggle dialogs icons
    512512         */
    513         if (Main.pref.getBoolean("sidetoolbar.toggledialogs.visible", true)) {
     513        if (Config.getPref().getBoolean("sidetoolbar.toggledialogs.visible", true)) {
    514514            ((JToolBar) sideToolBar).addSeparator(new Dimension(0, 18));
    515515            toolBarToggle.setAlignmentX(0.5f);
     
    534534         * sideToolBar: decide scroll- and visibility
    535535         */
    536         if (Main.pref.getBoolean("sidetoolbar.scrollable", true)) {
     536        if (Config.getPref().getBoolean("sidetoolbar.scrollable", true)) {
    537537            final ScrollViewport svp = new ScrollViewport(sideToolBar, ScrollViewport.VERTICAL_DIRECTION);
    538538            sideToolBar = svp;
    539539        }
    540         sideToolBar.setVisible(Main.pref.getBoolean("sidetoolbar.visible", true));
     540        sideToolBar.setVisible(Config.getPref().getBoolean("sidetoolbar.visible", true));
    541541        sidetoolbarPreferencesChangedListener = e -> {
    542542            if ("sidetoolbar.visible".equals(e.getKey())) {
    543                 sideToolBar.setVisible(Main.pref.getBoolean("sidetoolbar.visible"));
     543                sideToolBar.setVisible(Config.getPref().getBoolean("sidetoolbar.visible"));
    544544            }
    545545        };
    546         Main.pref.addPreferenceChangeListener(sidetoolbarPreferencesChangedListener);
     546        Config.getPref().addPreferenceChangeListener(sidetoolbarPreferencesChangedListener);
    547547
    548548        /**
     
    554554         * statusLine: add to panel
    555555         */
    556         if (statusLine != null && Main.pref.getBoolean("statusline.visible", true)) {
     556        if (statusLine != null && Config.getPref().getBoolean("statusline.visible", true)) {
    557557            panel.add(statusLine, BorderLayout.SOUTH);
    558558        }
     
    583583            public void actionPerformed(ActionEvent e) {
    584584                boolean sel = ((JCheckBoxMenuItem) e.getSource()).getState();
    585                 Main.pref.putBoolean("sidetoolbar.always-visible", sel);
     585                Config.getPref().putBoolean("sidetoolbar.always-visible", sel);
    586586            }
    587587        });
     
    606606                        }, 0);
    607607                    }
    608                     doNotHide.setSelected(Main.pref.getBoolean("sidetoolbar.always-visible", true));
     608                    doNotHide.setSelected(Config.getPref().getBoolean("sidetoolbar.always-visible", true));
    609609                }
    610610
     
    625625                @Override
    626626                public void actionPerformed(ActionEvent e) {
    627                     Main.pref.putBoolean("sidetoolbar.visible", false);
     627                    Config.getPref().putBoolean("sidetoolbar.visible", false);
    628628                }
    629629            });
  • trunk/src/org/openstreetmap/josm/gui/MapMover.java

    r12639 r12846  
    2424import org.openstreetmap.josm.data.preferences.BooleanProperty;
    2525import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
     26import org.openstreetmap.josm.spi.preferences.Config;
    2627import org.openstreetmap.josm.tools.Destroyable;
    2728import org.openstreetmap.josm.tools.Pair;
     
    4849
    4950        JMapViewerUpdater() {
    50             Main.pref.addPreferenceChangeListener(this);
     51            Config.getPref().addPreferenceChangeListener(this);
    5152            updateJMapViewer();
    5253        }
  • trunk/src/org/openstreetmap/josm/gui/MapStatus.java

    r12841 r12846  
    7979import org.openstreetmap.josm.gui.widgets.ImageLabel;
    8080import org.openstreetmap.josm.gui.widgets.JosmTextField;
     81import org.openstreetmap.josm.spi.preferences.Config;
    8182import org.openstreetmap.josm.tools.Destroyable;
    8283import org.openstreetmap.josm.tools.GBC;
     
    100101public final class MapStatus extends JPanel implements Helpful, Destroyable, PreferenceChangedListener, SoMChangeListener {
    101102
    102     private final DecimalFormat DECIMAL_FORMAT = new DecimalFormat(Main.pref.get("statusbar.decimal-format", "0.0"));
     103    private final DecimalFormat DECIMAL_FORMAT = new DecimalFormat(Config.getPref().get("statusbar.decimal-format", "0.0"));
    103104    private static final AbstractProperty<Double> DISTANCE_THRESHOLD = new DoubleProperty("statusbar.distance-threshold", 0.01).cached();
    104105
     
    775776            public void actionPerformed(ActionEvent e) {
    776777                boolean sel = ((JCheckBoxMenuItem) e.getSource()).getState();
    777                 Main.pref.putBoolean("statusbar.always-visible", sel);
     778                Config.getPref().putBoolean("statusbar.always-visible", sel);
    778779            }
    779780        });
     
    820821                    }
    821822                    separator.setVisible(distText.equals(invoker) || latText.equals(invoker) || lonText.equals(invoker));
    822                     doNotHide.setSelected(Main.pref.getBoolean("statusbar.always-visible", true));
     823                    doNotHide.setSelected(Config.getPref().getBoolean("statusbar.always-visible", true));
    823824                }
    824825
     
    914915        add(distText, GBC.std().insets(3, 0, 0, 0));
    915916
    916         if (Main.pref.getBoolean("statusbar.change-system-of-measurement-on-click", true)) {
     917        if (Config.getPref().getBoolean("statusbar.change-system-of-measurement-on-click", true)) {
    917918            distText.addMouseListener(new MouseAdapter() {
    918919                private final List<String> soms = new ArrayList<>(new TreeSet<>(SystemOfMeasurement.ALL_SYSTEMS.keySet()));
     
    945946        progressBar.addMouseListener(new ShowMonitorDialogMouseAdapter());
    946947
    947         Main.pref.addPreferenceChangeListener(this);
     948        Config.getPref().addPreferenceChangeListener(this);
    948949
    949950        mvComponentAdapter = new ComponentAdapter() {
     
    974975    public void updateSystemOfMeasurement(String newsom) {
    975976        SystemOfMeasurement.setSystemOfMeasurement(newsom);
    976         if (Main.pref.getBoolean("statusbar.notify.change-system-of-measurement", true)) {
     977        if (Config.getPref().getBoolean("statusbar.notify.change-system-of-measurement", true)) {
    977978            new Notification(tr("System of measurement changed to {0}", newsom))
    978979                .setDuration(Notification.TIME_SHORT)
     
    10791080        // Compute total length of selected way(s) until an arbitrary limit set to 250 ways
    10801081        // in order to prevent performance issue if a large number of ways are selected (old behaviour kept in that case, see #8403)
    1081         int maxWays = Math.max(1, Main.pref.getInt("selection.max-ways-for-statusline", 250));
     1082        int maxWays = Math.max(1, Config.getPref().getInt("selection.max-ways-for-statusline", 250));
    10821083        if (!ways.isEmpty() && ways.size() <= maxWays) {
    10831084            dist = 0.0;
     
    11061107    public void destroy() {
    11071108        SystemOfMeasurement.removeSoMChangeListener(this);
    1108         Main.pref.removePreferenceChangeListener(this);
     1109        Config.getPref().removePreferenceChangeListener(this);
    11091110        mv.removeComponentListener(mvComponentAdapter);
    11101111
  • trunk/src/org/openstreetmap/josm/gui/MapView.java

    r12722 r12846  
    7676import org.openstreetmap.josm.gui.mappaint.MapPaintStyles.MapPaintSylesUpdateListener;
    7777import org.openstreetmap.josm.io.audio.AudioPlayer;
     78import org.openstreetmap.josm.spi.preferences.Config;
    7879import org.openstreetmap.josm.tools.JosmRuntimeException;
    7980import org.openstreetmap.josm.tools.Logging;
     
    277278        layerManager.addAndFireLayerChangeListener(this);
    278279        layerManager.addActiveLayerChangeListener(this);
    279         Main.pref.addPreferenceChangeListener(this);
     280        Config.getPref().addPreferenceChangeListener(this);
    280281
    281282        addComponentListener(new ComponentAdapter() {
     
    813814        layerManager.removeAndFireLayerChangeListener(this);
    814815        layerManager.removeActiveLayerChangeListener(this);
    815         Main.pref.removePreferenceChangeListener(this);
     816        Config.getPref().removePreferenceChangeListener(this);
    816817        SelectionEventManager.getInstance().removeSelectionListener(repaintSelectionChangedListener);
    817818        MultipolygonCache.getInstance().clear();
  • trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java

    r12841 r12846  
    6060import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource;
    6161import org.openstreetmap.josm.gui.util.CursorManager;
     62import org.openstreetmap.josm.spi.preferences.Config;
    6263import org.openstreetmap.josm.tools.Logging;
    6364import org.openstreetmap.josm.tools.Utils;
     
    869870    private void pushZoomUndo(EastNorth center, double scale) {
    870871        Date now = new Date();
    871         if ((now.getTime() - zoomTimestamp.getTime()) > (Main.pref.getDouble("zoom.undo.delay", 1.0) * 1000)) {
     872        if ((now.getTime() - zoomTimestamp.getTime()) > (Config.getPref().getDouble("zoom.undo.delay", 1.0) * 1000)) {
    872873            zoomUndoBuffer.push(new ZoomData(center, scale));
    873             if (zoomUndoBuffer.size() > Main.pref.getInt("zoom.undo.max", 50)) {
     874            if (zoomUndoBuffer.size() > Config.getPref().getInt("zoom.undo.max", 50)) {
    874875                zoomUndoBuffer.remove(0);
    875876            }
     
    11441145
    11451146        if (ds != null) {
    1146             double snapDistanceSq = Main.pref.getInt("mappaint.segment.snap-distance", 10);
     1147            double snapDistanceSq = Config.getPref().getInt("mappaint.segment.snap-distance", 10);
    11471148            snapDistanceSq *= snapDistanceSq;
    11481149
    1149             for (Way w : ds.searchWays(getBBox(p, Main.pref.getInt("mappaint.segment.snap-distance", 10)))) {
     1150            for (Way w : ds.searchWays(getBBox(p, Config.getPref().getInt("mappaint.segment.snap-distance", 10)))) {
    11501151                if (!predicate.test(w)) {
    11511152                    continue;
  • trunk/src/org/openstreetmap/josm/gui/Notification.java

    r12841 r12846  
    1010import javax.swing.UIManager;
    1111
    12 import org.openstreetmap.josm.Main;
    1312import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
     13import org.openstreetmap.josm.spi.preferences.Config;
    1414
    1515/**
     
    4343     * E.g. "Please select at least one node".
    4444     */
    45     public static final int TIME_SHORT = Main.pref.getInt("notification-time-short-ms", 3000);
     45    public static final int TIME_SHORT = Config.getPref().getInt("notification-time-short-ms", 3000);
    4646
    4747    /**
    4848     * Short message of one or two lines (5 s).
    4949     */
    50     public static final int TIME_DEFAULT = Main.pref.getInt("notification-time-default-ms", 5000);
     50    public static final int TIME_DEFAULT = Config.getPref().getInt("notification-time-default-ms", 5000);
    5151
    5252    /**
    5353     * Somewhat longer message (10 s).
    5454     */
    55     public static final int TIME_LONG = Main.pref.getInt("notification-time-long-ms", 10_000);
     55    public static final int TIME_LONG = Config.getPref().getInt("notification-time-long-ms", 10_000);
    5656
    5757    /**
     
    5959     * (Make sure is still sensible to show as a notification)
    6060     */
    61     public static final int TIME_VERY_LONG = Main.pref.getInt("notification-time-very_long-ms", 20_000);
     61    public static final int TIME_VERY_LONG = Config.getPref().getInt("notification-time-very_long-ms", 20_000);
    6262
    6363    private Component content;
  • trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java

    r12841 r12846  
    2020import javax.swing.UIManager;
    2121
    22 import org.openstreetmap.josm.Main;
    2322import org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor.ProgressMonitorDialog;
    2423import org.openstreetmap.josm.gui.util.GuiHelper;
    2524import org.openstreetmap.josm.gui.widgets.JosmTextArea;
     25import org.openstreetmap.josm.spi.preferences.Config;
    2626import org.openstreetmap.josm.tools.GBC;
    2727import org.openstreetmap.josm.tools.ImageProvider;
     
    8282                int w = getWidth();
    8383                if (w > 200) {
    84                     Main.pref.putInt("progressdialog.size", w);
     84                    Config.getPref().putInt("progressdialog.size", w);
    8585                }
    8686            }
     
    9898        setDropTarget(null); // Workaround to JDK bug 7027598/7100524/7169912 (#8613)
    9999        pack();
    100         setSize(Main.pref.getInt("progressdialog.size", 600), getSize().height);
     100        setSize(Config.getPref().getInt("progressdialog.size", 600), getSize().height);
    101101    }
    102102
  • trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java

    r12675 r12846  
    1111import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    1212import org.openstreetmap.josm.gui.progress.ProgressMonitor.CancelListener;
     13import org.openstreetmap.josm.gui.progress.ProgressTaskId;
    1314import org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor;
    14 import org.openstreetmap.josm.gui.progress.ProgressTaskId;
    1515import org.openstreetmap.josm.io.OsmTransferException;
    1616import org.openstreetmap.josm.tools.CheckParameterUtil;
  • trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java

    r12636 r12846  
    2121import java.util.regex.Pattern;
    2222
    23 import org.openstreetmap.josm.Main;
    2423import org.openstreetmap.josm.actions.mapmode.MapMode;
    2524import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
     
    5655import org.openstreetmap.josm.gui.mappaint.mapcss.Selector;
    5756import org.openstreetmap.josm.gui.widgets.OSDLabel;
     57import org.openstreetmap.josm.spi.preferences.Config;
    5858import org.openstreetmap.josm.tools.Logging;
    5959
     
    124124    private AutoFilterManager() {
    125125        MapFrame.addMapModeChangeListener(this);
    126         Main.pref.addPreferenceChangeListener(this);
     126        Config.getPref().addPreferenceChangeListener(this);
    127127        NavigatableComponent.addZoomChangeListener(this);
    128128        MainApplication.getLayerManager().addLayerChangeListener(this);
  • trunk/src/org/openstreetmap/josm/gui/bbox/SlippyMapBBoxChooser.java

    r12841 r12846  
    4444import org.openstreetmap.josm.gui.layer.AbstractCachedTileSourceLayer;
    4545import org.openstreetmap.josm.gui.layer.TMSLayer;
     46import org.openstreetmap.josm.spi.preferences.Config;
    4647import org.openstreetmap.josm.tools.Logging;
    4748
     
    151152        uncachedLoader = new OsmTileLoader(this);
    152153        uncachedLoader.headers.putAll(headers);
    153         setZoomContolsVisible(Main.pref.getBoolean("slippy_map_chooser.zoomcontrols", false));
     154        setZoomContolsVisible(Config.getPref().getBoolean("slippy_map_chooser.zoomcontrols", false));
    154155        setMapMarkerVisible(false);
    155156        setMinimumSize(new Dimension(350, 350 / 2));
     
    160161            setFileCacheEnabled(false);
    161162        } else {
    162             setFileCacheEnabled(Main.pref.getBoolean("slippy_map_chooser.file_cache", true));
    163         }
    164         setMaxTilesInMemory(Main.pref.getInt("slippy_map_chooser.max_tiles", 1000));
     163            setFileCacheEnabled(Config.getPref().getBoolean("slippy_map_chooser.file_cache", true));
     164        }
     165        setMaxTilesInMemory(Config.getPref().getInt("slippy_map_chooser.max_tiles", 1000));
    165166
    166167        List<TileSource> tileSources = getAllTileSources();
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolver.java

    r12841 r12846  
    1414import javax.swing.JScrollPane;
    1515
    16 import org.openstreetmap.josm.Main;
     16import org.openstreetmap.josm.spi.preferences.Config;
    1717
    1818/**
     
    6060                cbShowTagsWithMultiValuesOnly.setEnabled(cbShowTagsWithConflictsOnly.isSelected());
    6161        });
    62         cbShowTagsWithConflictsOnly.setSelected(
    63                 Main.pref.getBoolean(getClass().getName() + ".showTagsWithConflictsOnly", false)
     62        cbShowTagsWithConflictsOnly.setSelected(Config.getPref().getBoolean(getClass().getName() + ".showTagsWithConflictsOnly", false)
    6463        );
    6564        cbShowTagsWithMultiValuesOnly.addChangeListener(
    6665                e -> model.setShowTagsWithMultiValuesOnly(cbShowTagsWithMultiValuesOnly.isSelected())
    6766        );
    68         cbShowTagsWithMultiValuesOnly.setSelected(
    69                 Main.pref.getBoolean(getClass().getName() + ".showTagsWithMultiValuesOnly", false)
     67        cbShowTagsWithMultiValuesOnly.setSelected(Config.getPref().getBoolean(getClass().getName() + ".showTagsWithMultiValuesOnly", false)
    7068        );
    7169        cbShowTagsWithMultiValuesOnly.setEnabled(cbShowTagsWithConflictsOnly.isSelected());
     
    7876     */
    7977    public void rememberPreferences() {
    80         Main.pref.putBoolean(getClass().getName() + ".showTagsWithConflictsOnly", cbShowTagsWithConflictsOnly.isSelected());
    81         Main.pref.putBoolean(getClass().getName() + ".showTagsWithMultiValuesOnly", cbShowTagsWithMultiValuesOnly.isSelected());
     78        Config.getPref().putBoolean(getClass().getName() + ".showTagsWithConflictsOnly", cbShowTagsWithConflictsOnly.isSelected());
     79        Config.getPref().putBoolean(getClass().getName() + ".showTagsWithMultiValuesOnly", cbShowTagsWithMultiValuesOnly.isSelected());
    8280    }
    8381
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java

    r12841 r12846  
    5858import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
    5959import org.openstreetmap.josm.io.OnlineResource;
     60import org.openstreetmap.josm.spi.preferences.Config;
    6061import org.openstreetmap.josm.tools.ImageProvider;
    6162import org.openstreetmap.josm.tools.Logging;
     
    165166        cbInSelectionOnly.setToolTipText(tr("<html>Select to show changesets for the currently selected objects only.<br>"
    166167                + "Unselect to show all changesets for objects in the current data layer.</html>"));
    167         cbInSelectionOnly.setSelected(Main.pref.getBoolean("changeset-dialog.for-selected-objects-only", false));
     168        cbInSelectionOnly.setSelected(Config.getPref().getBoolean("changeset-dialog.for-selected-objects-only", false));
    168169        return pnl;
    169170    }
     
    275276        @Override
    276277        public void itemStateChanged(ItemEvent e) {
    277             Main.pref.putBoolean("changeset-dialog.for-selected-objects-only", cbInSelectionOnly.isSelected());
     278            Config.getPref().putBoolean("changeset-dialog.for-selected-objects-only", cbInSelectionOnly.isSelected());
    278279            pnlList.removeAll();
    279280            if (cbInSelectionOnly.isSelected()) {
  • trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java

    r12799 r12846  
    4343import org.openstreetmap.josm.gui.MapFrame;
    4444import org.openstreetmap.josm.gui.MapFrame.MapModeChangeListener;
     45import org.openstreetmap.josm.gui.SideButton;
    4546import org.openstreetmap.josm.gui.util.MultikeyActionsHandler;
    4647import org.openstreetmap.josm.gui.util.MultikeyShortcutAction;
    47 import org.openstreetmap.josm.gui.SideButton;
    4848import org.openstreetmap.josm.tools.ImageProvider;
    4949import org.openstreetmap.josm.tools.InputMapUtils;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java

    r12799 r12846  
    6666import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
    6767import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
     68import org.openstreetmap.josm.gui.layer.NativeScaleLayer;
    6869import org.openstreetmap.josm.gui.util.MultikeyActionsHandler;
    6970import org.openstreetmap.josm.gui.util.MultikeyShortcutAction.MultikeyInfo;
    70 import org.openstreetmap.josm.gui.layer.NativeScaleLayer;
    7171import org.openstreetmap.josm.gui.widgets.DisableShortcutsOnFocusGainedTextField;
    7272import org.openstreetmap.josm.gui.widgets.JosmTextField;
    7373import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
    7474import org.openstreetmap.josm.gui.widgets.ScrollableTable;
     75import org.openstreetmap.josm.spi.preferences.Config;
    7576import org.openstreetmap.josm.tools.ImageProvider;
    7677import org.openstreetmap.josm.tools.InputMapUtils;
     
    538539                label.setFont(label.getFont().deriveFont(Font.BOLD));
    539540            }
    540             if (Main.pref.getBoolean("dialog.layer.colorname", true)) {
     541            if (Config.getPref().getBoolean("dialog.layer.colorname", true)) {
    541542                AbstractProperty<Color> prop = layer.getColorProperty();
    542543                Color c = prop == null ? null : prop.get();
  • trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java

    r12831 r12846  
    6464import org.openstreetmap.josm.gui.mappaint.MapPaintStyles.MapPaintSylesUpdateListener;
    6565import org.openstreetmap.josm.gui.mappaint.StyleSetting;
     66import org.openstreetmap.josm.gui.mappaint.StyleSettingGuiFactory;
    6667import org.openstreetmap.josm.gui.mappaint.StyleSource;
    6768import org.openstreetmap.josm.gui.mappaint.loader.MapPaintStyleLoader;
    6869import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource;
    6970import org.openstreetmap.josm.gui.preferences.map.MapPaintPreference;
    70 import org.openstreetmap.josm.gui.mappaint.StyleSettingGuiFactory;
    7171import org.openstreetmap.josm.gui.util.FileFilterAllFiles;
    7272import org.openstreetmap.josm.gui.util.GuiHelper;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/OsmIdSelectionDialog.java

    r12841 r12846  
    2727import javax.swing.plaf.basic.BasicComboBoxEditor;
    2828
    29 import org.openstreetmap.josm.Main;
    3029import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    3130import org.openstreetmap.josm.data.osm.PrimitiveId;
     
    3837import org.openstreetmap.josm.gui.widgets.OsmIdTextField;
    3938import org.openstreetmap.josm.gui.widgets.OsmPrimitiveTypesComboBox;
     39import org.openstreetmap.josm.spi.preferences.Config;
    4040import org.openstreetmap.josm.tools.Utils;
    4141
     
    180180    protected void restorePrimitivesHistory(HistoryComboBox cbHistory) {
    181181        List<String> cmtHistory = new LinkedList<>(
    182                 Main.pref.getList(getClass().getName() + ".primitivesHistory", new LinkedList<String>()));
     182                Config.getPref().getList(getClass().getName() + ".primitivesHistory", new LinkedList<String>()));
    183183        // we have to reverse the history, because ComboBoxHistory will reverse it again in addElement()
    184184        Collections.reverse(cmtHistory);
     
    193193    protected void remindPrimitivesHistory(HistoryComboBox cbHistory) {
    194194        cbHistory.addCurrentItemToHistory();
    195         Main.pref.putList(getClass().getName() + ".primitivesHistory", cbHistory.getHistory());
     195        Config.getPref().putList(getClass().getName() + ".primitivesHistory", cbHistory.getHistory());
    196196    }
    197197
     
    208208    public void setupDialog() {
    209209        setContent(panel, false);
    210         cbType.setSelectedIndex(Main.pref.getInt("downloadprimitive.lasttype", 0));
     210        cbType.setSelectedIndex(Config.getPref().getInt("downloadprimitive.lasttype", 0));
    211211        tfId.setType(cbType.getType());
    212         if (Main.pref.getBoolean("downloadprimitive.autopaste", true)) {
     212        if (Config.getPref().getBoolean("downloadprimitive.autopaste", true)) {
    213213            tryToPasteFromClipboard(tfId, cbType);
    214214        }
     
    221221        String buf = ClipboardUtils.getClipboardStringContent();
    222222        if (buf == null || buf.isEmpty()) return;
    223         if (buf.length() > Main.pref.getInt("downloadprimitive.max-autopaste-length", 2000)) return;
     223        if (buf.length() > Config.getPref().getInt("downloadprimitive.max-autopaste-length", 2000)) return;
    224224        final List<SimplePrimitiveId> ids = SimplePrimitiveId.fuzzyParse(buf);
    225225        if (!ids.isEmpty()) {
     
    244244    @Override public void windowClosed(WindowEvent e) {
    245245        if (e != null && e.getComponent() == this && getValue() == getContinueButtonIndex()) {
    246             Main.pref.putInt("downloadprimitive.lasttype", cbType.getSelectedIndex());
     246            Config.getPref().putInt("downloadprimitive.lasttype", cbType.getSelectedIndex());
    247247
    248248            if (!tfId.readIds()) {
  • trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java

    r12748 r12846  
    7777import org.openstreetmap.josm.gui.widgets.JosmTextField;
    7878import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     79import org.openstreetmap.josm.spi.preferences.Config;
    7980import org.openstreetmap.josm.tools.ImageProvider;
    8081import org.openstreetmap.josm.tools.InputMapUtils;
     
    122123
    123124    private final transient HighlightHelper highlightHelper = new HighlightHelper();
    124     private final boolean highlightEnabled = Main.pref.getBoolean("draw.target-highlight", true);
     125    private final boolean highlightEnabled = Config.getPref().getBoolean("draw.target-highlight", true);
    125126    private final transient RecentRelationsAction recentRelationsAction;
    126127
  • trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java

    r12841 r12846  
    3838import javax.swing.event.ListSelectionListener;
    3939
    40 import org.openstreetmap.josm.Main;
    4140import org.openstreetmap.josm.actions.AbstractSelectAction;
    4241import org.openstreetmap.josm.actions.AutoScaleAction;
     
    5857import org.openstreetmap.josm.data.osm.event.DatasetEventManager;
    5958import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
    60 import org.openstreetmap.josm.data.osm.search.SearchSetting;
    6159import org.openstreetmap.josm.data.osm.event.NodeMovedEvent;
    6260import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent;
     
    6664import org.openstreetmap.josm.data.osm.event.TagsChangedEvent;
    6765import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent;
     66import org.openstreetmap.josm.data.osm.search.SearchSetting;
    6867import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
    6968import org.openstreetmap.josm.gui.MainApplication;
     
    8281import org.openstreetmap.josm.gui.widgets.ListPopupMenu;
    8382import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     83import org.openstreetmap.josm.spi.preferences.Config;
    8484import org.openstreetmap.josm.tools.ImageProvider;
    8585import org.openstreetmap.josm.tools.InputMapUtils;
     
    192192    class MouseEventHandler extends PopupMenuLauncher {
    193193        private final HighlightHelper helper = new HighlightHelper();
    194         private final boolean highlightEnabled = Main.pref.getBoolean("draw.target-highlight", true);
     194        private final boolean highlightEnabled = Config.getPref().getBoolean("draw.target-highlight", true);
    195195
    196196        MouseEventHandler() {
     
    524524                }
    525525            }
    526             int maxsize = Main.pref.getInt("select.history-size", SELECTION_HISTORY_SIZE);
     526            int maxsize = Config.getPref().getInt("select.history-size", SELECTION_HISTORY_SIZE);
    527527            while (history.size() > maxsize) {
    528528                history.removeLast();
     
    662662         */
    663663        public synchronized void sort() {
    664             if (selection.size() <= Main.pref.getInt("selection.no_sort_above", 100_000)) {
    665                 boolean quick = selection.size() > Main.pref.getInt("selection.fast_sort_above", 10_000);
    666                 Comparator<OsmPrimitive> c = Main.pref.getBoolean("selection.sort_relations_before_ways", true)
     664            if (selection.size() <= Config.getPref().getInt("selection.no_sort_above", 100_000)) {
     665                boolean quick = selection.size() > Config.getPref().getInt("selection.fast_sort_above", 10_000);
     666                Comparator<OsmPrimitive> c = Config.getPref().getBoolean("selection.sort_relations_before_ways", true)
    667667                        ? OsmPrimitiveComparator.orderingRelationsWaysNodes()
    668668                        : OsmPrimitiveComparator.orderingWaysRelationsNodes();
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java

    r12841 r12846  
    6969import org.openstreetmap.josm.gui.util.WindowGeometry.WindowGeometryException;
    7070import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     71import org.openstreetmap.josm.spi.preferences.Config;
    7172import org.openstreetmap.josm.tools.Destroyable;
    7273import org.openstreetmap.josm.tools.GBC;
     
    245246        toggleAction.putValue("help", helpId.substring(0, helpId.length()-6));
    246247
    247         isShowing = Main.pref.getBoolean(preferencePrefix+".visible", defShow);
    248         isDocked = Main.pref.getBoolean(preferencePrefix+".docked", true);
    249         isCollapsed = Main.pref.getBoolean(preferencePrefix+".minimized", false);
     248        isShowing = Config.getPref().getBoolean(preferencePrefix+".visible", defShow);
     249        isDocked = Config.getPref().getBoolean(preferencePrefix+".docked", true);
     250        isCollapsed = Config.getPref().getBoolean(preferencePrefix+".minimized", false);
    250251        buttonHiding = propButtonHiding.get();
    251252
     
    257258
    258259        MainApplication.redirectToMainContentPane(this);
    259         Main.pref.addPreferenceChangeListener(this);
     260        Config.getPref().addPreferenceChangeListener(this);
    260261
    261262        registerInWindowMenu();
     
    468469        }
    469470        Toolkit.getDefaultToolkit().removeAWTEventListener(this);
    470         Main.pref.removePreferenceChangeListener(this);
     471        Config.getPref().removePreferenceChangeListener(this);
    471472        destroyComponents(this, false);
    472473    }
     
    773774    protected void setIsShowing(boolean val) {
    774775        isShowing = val;
    775         Main.pref.putBoolean(preferencePrefix+".visible", val);
     776        Config.getPref().putBoolean(preferencePrefix+".visible", val);
    776777        stateChanged();
    777778    }
     
    782783        }
    783784        isDocked = val;
    784         Main.pref.putBoolean(preferencePrefix+".docked", val);
     785        Config.getPref().putBoolean(preferencePrefix+".docked", val);
    785786        stateChanged();
    786787    }
     
    788789    protected void setIsCollapsed(boolean val) {
    789790        isCollapsed = val;
    790         Main.pref.putBoolean(preferencePrefix+".minimized", val);
     791        Config.getPref().putBoolean(preferencePrefix+".minimized", val);
    791792        stateChanged();
    792793    }
     
    925926                    continue;
    926927                }
    927                 final JPanel buttonRowPanel = new JPanel(Main.pref.getBoolean("dialog.align.left", false)
     928                final JPanel buttonRowPanel = new JPanel(Config.getPref().getBoolean("dialog.align.left", false)
    928929                        ? new FlowLayout(FlowLayout.LEFT) : new GridLayout(1, buttonRow.size()));
    929930                buttonsPanel.add(buttonRowPanel);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java

    r12649 r12846  
    5858import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
    5959import org.openstreetmap.josm.io.OsmTransferException;
     60import org.openstreetmap.josm.spi.preferences.Config;
    6061import org.openstreetmap.josm.tools.ImageProvider;
    6162import org.openstreetmap.josm.tools.InputMapUtils;
     
    493494                    ds.setSelected(sel);
    494495                }
    495                 if (Main.pref.getBoolean("validator.autozoom", false)) {
     496                if (Config.getPref().getBoolean("validator.autozoom", false)) {
    496497                    AutoScaleAction.zoomTo(sel);
    497498                }
     
    573574     */
    574575    public void updateSelection(Collection<? extends OsmPrimitive> newSelection) {
    575         if (!Main.pref.getBoolean(ValidatorPrefHelper.PREF_FILTER_BY_SELECTION, false))
     576        if (!Config.getPref().getBoolean(ValidatorPrefHelper.PREF_FILTER_BY_SELECTION, false))
    576577            return;
    577578        if (newSelection.isEmpty()) {
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/SingleChangesetDownloadPanel.java

    r10494 r12846  
    2222import org.openstreetmap.josm.gui.widgets.SelectAllOnFocusGainedDecorator;
    2323import org.openstreetmap.josm.io.OnlineResource;
     24import org.openstreetmap.josm.spi.preferences.Config;
    2425import org.openstreetmap.josm.tools.ImageProvider;
    2526
     
    6061        add(btn);
    6162
    62         if (Main.pref.getBoolean("downloadchangeset.autopaste", true)) {
     63        if (Config.getPref().getBoolean("downloadchangeset.autopaste", true)) {
    6364            tfChangesetId.tryToPasteFromClipboard();
    6465        }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/AdvancedChangesetQueryPanel.java

    r12841 r12846  
    1515import javax.swing.JScrollPane;
    1616
    17 import org.openstreetmap.josm.Main;
    1817import org.openstreetmap.josm.gui.util.GuiHelper;
    1918import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
    2019import org.openstreetmap.josm.gui.widgets.VerticallyScrollablePanel;
    2120import org.openstreetmap.josm.io.ChangesetQuery;
     21import org.openstreetmap.josm.spi.preferences.Config;
    2222
    2323/**
     
    209209     */
    210210    public void rememberSettings() {
    211         Main.pref.putBoolean("changeset-query.advanced.user-restrictions", cbUserRestriction.isSelected());
    212         Main.pref.putBoolean("changeset-query.advanced.open-restrictions", cbOpenAndCloseRestrictions.isSelected());
    213         Main.pref.putBoolean("changeset-query.advanced.time-restrictions", cbTimeRestrictions.isSelected());
    214         Main.pref.putBoolean("changeset-query.advanced.bbox-restrictions", cbBoundingBoxRestriction.isSelected());
     211        Config.getPref().putBoolean("changeset-query.advanced.user-restrictions", cbUserRestriction.isSelected());
     212        Config.getPref().putBoolean("changeset-query.advanced.open-restrictions", cbOpenAndCloseRestrictions.isSelected());
     213        Config.getPref().putBoolean("changeset-query.advanced.time-restrictions", cbTimeRestrictions.isSelected());
     214        Config.getPref().putBoolean("changeset-query.advanced.bbox-restrictions", cbBoundingBoxRestriction.isSelected());
    215215
    216216        pnlUserRestriction.rememberSettings();
     
    223223     */
    224224    public void restoreFromSettings() {
    225         cbUserRestriction.setSelected(Main.pref.getBoolean("changeset-query.advanced.user-restrictions", false));
    226         cbOpenAndCloseRestrictions.setSelected(Main.pref.getBoolean("changeset-query.advanced.open-restrictions", false));
    227         cbTimeRestrictions.setSelected(Main.pref.getBoolean("changeset-query.advanced.time-restrictions", false));
    228         cbBoundingBoxRestriction.setSelected(Main.pref.getBoolean("changeset-query.advanced.bbox-restrictions", false));
     225        cbUserRestriction.setSelected(Config.getPref().getBoolean("changeset-query.advanced.user-restrictions", false));
     226        cbOpenAndCloseRestrictions.setSelected(Config.getPref().getBoolean("changeset-query.advanced.open-restrictions", false));
     227        cbTimeRestrictions.setSelected(Config.getPref().getBoolean("changeset-query.advanced.time-restrictions", false));
     228        cbBoundingBoxRestriction.setSelected(Config.getPref().getBoolean("changeset-query.advanced.bbox-restrictions", false));
    229229    }
    230230
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java

    r12841 r12846  
    1919import javax.swing.JRadioButton;
    2020
    21 import org.openstreetmap.josm.Main;
    2221import org.openstreetmap.josm.data.Bounds;
    2322import org.openstreetmap.josm.data.UserIdentityManager;
     
    2726import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
    2827import org.openstreetmap.josm.io.ChangesetQuery;
     28import org.openstreetmap.josm.spi.preferences.Config;
    2929import org.openstreetmap.josm.tools.Logging;
    3030
     
    187187        BasicQuery q = getSelectedQuery();
    188188        if (q == null) {
    189             Main.pref.put("changeset-query.basic.query", null);
    190         } else {
    191             Main.pref.put("changeset-query.basic.query", q.toString());
    192         }
    193         Main.pref.putBoolean("changeset-query.basic.my-changesets-only", cbMyChangesetsOnly.isSelected());
     189            Config.getPref().put("changeset-query.basic.query", null);
     190        } else {
     191            Config.getPref().put("changeset-query.basic.query", q.toString());
     192        }
     193        Config.getPref().putBoolean("changeset-query.basic.my-changesets-only", cbMyChangesetsOnly.isSelected());
    194194    }
    195195
     
    199199    public void restoreFromPreferences() {
    200200        BasicQuery q;
    201         String value = Main.pref.get("changeset-query.basic.query", null);
     201        String value = Config.getPref().get("changeset-query.basic.query", null);
    202202        if (value == null) {
    203203            q = BasicQuery.MOST_RECENT_CHANGESETS;
     
    212212        }
    213213        rbQueries.get(q).setSelected(true);
    214         boolean mineOnly = Main.pref.getBoolean("changeset-query.basic.my-changesets-only", false);
     214        boolean mineOnly = Config.getPref().getBoolean("changeset-query.basic.my-changesets-only", false);
    215215        mineOnly = mineOnly || q.equals(BasicQuery.MY_OPEN_CHANGESETS);
    216216        cbMyChangesetsOnly.setSelected(mineOnly);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/OpenAndCloseStateRestrictionPanel.java

    r11330 r12846  
    1313import javax.swing.JRadioButton;
    1414
    15 import org.openstreetmap.josm.Main;
    1615import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
    1716import org.openstreetmap.josm.io.ChangesetQuery;
     17import org.openstreetmap.josm.spi.preferences.Config;
    1818
    1919/**
     
    109109    public void rememberSettings() {
    110110        if (rbBoth.isSelected()) {
    111             Main.pref.put(PREF_QUERY_TYPE, "both");
     111            Config.getPref().put(PREF_QUERY_TYPE, "both");
    112112        } else if (rbOpenOnly.isSelected()) {
    113             Main.pref.put(PREF_QUERY_TYPE, "open");
     113            Config.getPref().put(PREF_QUERY_TYPE, "open");
    114114        } else if (rbClosedOnly.isSelected()) {
    115             Main.pref.put(PREF_QUERY_TYPE, "closed");
     115            Config.getPref().put(PREF_QUERY_TYPE, "closed");
    116116        }
    117117    }
     
    121121     */
    122122    public void restoreFromSettings() {
    123         String v = Main.pref.get(PREF_QUERY_TYPE, "open");
     123        String v = Config.getPref().get(PREF_QUERY_TYPE, "open");
    124124        rbBoth.setSelected("both".equals(v));
    125125        rbOpenOnly.setSelected("open".equals(v));
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/TimeRestrictionPanel.java

    r11326 r12846  
    2222import javax.swing.JRadioButton;
    2323
    24 import org.openstreetmap.josm.Main;
    2524import org.openstreetmap.josm.gui.HelpAwareOptionPane;
    2625import org.openstreetmap.josm.gui.help.HelpUtil;
     
    2928import org.openstreetmap.josm.gui.widgets.SelectAllOnFocusGainedDecorator;
    3029import org.openstreetmap.josm.io.ChangesetQuery;
     30import org.openstreetmap.josm.spi.preferences.Config;
    3131
    3232/**
     
    296296        String prefRoot = "changeset-query.advanced.time-restrictions";
    297297        if (rbClosedAfter.isSelected()) {
    298             Main.pref.put(prefRoot + ".query-type", "closed-after");
     298            Config.getPref().put(prefRoot + ".query-type", "closed-after");
    299299        } else if (rbClosedAfterAndCreatedBefore.isSelected()) {
    300             Main.pref.put(prefRoot + ".query-type", "closed-after-created-before");
    301         }
    302         Main.pref.put(prefRoot + ".closed-after.date", tfClosedAfterDate1.getText());
    303         Main.pref.put(prefRoot + ".closed-after.time", tfClosedAfterTime1.getText());
    304         Main.pref.put(prefRoot + ".closed-created.closed.date", tfClosedAfterDate2.getText());
    305         Main.pref.put(prefRoot + ".closed-created.closed.time", tfClosedAfterTime2.getText());
    306         Main.pref.put(prefRoot + ".closed-created.created.date", tfCreatedBeforeDate.getText());
    307         Main.pref.put(prefRoot + ".closed-created.created.time", tfCreatedBeforeTime.getText());
     300            Config.getPref().put(prefRoot + ".query-type", "closed-after-created-before");
     301        }
     302        Config.getPref().put(prefRoot + ".closed-after.date", tfClosedAfterDate1.getText());
     303        Config.getPref().put(prefRoot + ".closed-after.time", tfClosedAfterTime1.getText());
     304        Config.getPref().put(prefRoot + ".closed-created.closed.date", tfClosedAfterDate2.getText());
     305        Config.getPref().put(prefRoot + ".closed-created.closed.time", tfClosedAfterTime2.getText());
     306        Config.getPref().put(prefRoot + ".closed-created.created.date", tfCreatedBeforeDate.getText());
     307        Config.getPref().put(prefRoot + ".closed-created.created.time", tfCreatedBeforeTime.getText());
    308308    }
    309309
     
    313313    public void restoreFromSettings() {
    314314        String prefRoot = "changeset-query.advanced.open-restrictions";
    315         String v = Main.pref.get(prefRoot + ".query-type", "closed-after");
     315        String v = Config.getPref().get(prefRoot + ".query-type", "closed-after");
    316316        rbClosedAfter.setSelected("closed-after".equals(v));
    317317        rbClosedAfterAndCreatedBefore.setSelected("closed-after-created-before".equals(v));
     
    319319            rbClosedAfter.setSelected(true);
    320320        }
    321         tfClosedAfterDate1.setText(Main.pref.get(prefRoot + ".closed-after.date", ""));
    322         tfClosedAfterTime1.setText(Main.pref.get(prefRoot + ".closed-after.time", ""));
    323         tfClosedAfterDate2.setText(Main.pref.get(prefRoot + ".closed-created.closed.date", ""));
    324         tfClosedAfterTime2.setText(Main.pref.get(prefRoot + ".closed-created.closed.time", ""));
    325         tfCreatedBeforeDate.setText(Main.pref.get(prefRoot + ".closed-created.created.date", ""));
    326         tfCreatedBeforeTime.setText(Main.pref.get(prefRoot + ".closed-created.created.time", ""));
     321        tfClosedAfterDate1.setText(Config.getPref().get(prefRoot + ".closed-after.date", ""));
     322        tfClosedAfterTime1.setText(Config.getPref().get(prefRoot + ".closed-after.time", ""));
     323        tfClosedAfterDate2.setText(Config.getPref().get(prefRoot + ".closed-created.closed.date", ""));
     324        tfClosedAfterTime2.setText(Config.getPref().get(prefRoot + ".closed-created.closed.time", ""));
     325        tfCreatedBeforeDate.setText(Config.getPref().get(prefRoot + ".closed-created.created.date", ""));
     326        tfCreatedBeforeTime.setText(Config.getPref().get(prefRoot + ".closed-created.created.time", ""));
    327327        if (!valClosedAfterDate1.isValid()) {
    328328            tfClosedAfterDate1.setText("");
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/UserRestrictionPanel.java

    r12743 r12846  
    1818import javax.swing.JRadioButton;
    1919
    20 import org.openstreetmap.josm.Main;
    2120import org.openstreetmap.josm.data.UserIdentityManager;
    2221import org.openstreetmap.josm.gui.HelpAwareOptionPane;
     
    2726import org.openstreetmap.josm.gui.widgets.SelectAllOnFocusGainedDecorator;
    2827import org.openstreetmap.josm.io.ChangesetQuery;
     28import org.openstreetmap.josm.spi.preferences.Config;
    2929import org.openstreetmap.josm.tools.CheckParameterUtil;
    3030
     
    261261    public void rememberSettings() {
    262262        if (rbRestrictToMyself.isSelected()) {
    263             Main.pref.put(PREF_QUERY_TYPE, "mine");
     263            Config.getPref().put(PREF_QUERY_TYPE, "mine");
    264264        } else if (rbRestrictToUid.isSelected()) {
    265             Main.pref.put(PREF_QUERY_TYPE, "uid");
     265            Config.getPref().put(PREF_QUERY_TYPE, "uid");
    266266        } else if (rbRestrictToUserName.isSelected()) {
    267             Main.pref.put(PREF_QUERY_TYPE, "username");
    268         }
    269         Main.pref.put(PREF_ROOT + ".uid", tfUid.getText());
    270         Main.pref.put(PREF_ROOT + ".username", tfUserName.getText());
     267            Config.getPref().put(PREF_QUERY_TYPE, "username");
     268        }
     269        Config.getPref().put(PREF_ROOT + ".uid", tfUid.getText());
     270        Config.getPref().put(PREF_ROOT + ".username", tfUserName.getText());
    271271    }
    272272
     
    275275     */
    276276    public void restoreFromSettings() {
    277         String v = Main.pref.get(PREF_QUERY_TYPE, "mine");
     277        String v = Config.getPref().get(PREF_QUERY_TYPE, "mine");
    278278        if ("mine".equals(v)) {
    279279            UserIdentityManager im = UserIdentityManager.getInstance();
     
    288288            rbRestrictToUserName.setSelected(true);
    289289        }
    290         tfUid.setText(Main.pref.get(PREF_ROOT + ".uid", ""));
     290        tfUid.setText(Config.getPref().get(PREF_ROOT + ".uid", ""));
    291291        if (!valUid.isValid()) {
    292292            tfUid.setText("");
    293293        }
    294         tfUserName.setText(Main.pref.get(PREF_ROOT + ".username", ""));
     294        tfUserName.setText(Config.getPref().get(PREF_ROOT + ".username", ""));
    295295    }
    296296
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    r12726 r12846  
    100100import org.openstreetmap.josm.gui.widgets.JosmTextField;
    101101import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     102import org.openstreetmap.josm.spi.preferences.Config;
    102103import org.openstreetmap.josm.tools.AlphanumComparator;
    103104import org.openstreetmap.josm.tools.GBC;
     
    257258
    258259        // combine both tables and wrap them in a scrollPane
    259         boolean top = Main.pref.getBoolean("properties.presets.top", true);
     260        boolean top = Config.getPref().getBoolean("properties.presets.top", true);
    260261        if (top) {
    261262            bothTables.add(presets, GBC.std().fill(GBC.HORIZONTAL).insets(5, 2, 5, 2).anchor(GBC.NORTHWEST));
     
    295296        editHelper.loadTagsIfNeeded();
    296297
    297         Main.pref.addKeyPreferenceChangeListener("display.discardable-keys", preferenceListener);
     298        Config.getPref().addKeyPreferenceChangeListener("display.discardable-keys", preferenceListener);
    298299    }
    299300
     
    341342     */
    342343    private void setupBlankSpaceMenu() {
    343         if (Main.pref.getBoolean("properties.menu.add_edit_delete", true)) {
     344        if (Config.getPref().getBoolean("properties.menu.add_edit_delete", true)) {
    344345            blankSpaceMenuHandler.addAction(addAction);
    345346            PopupMenuLauncher launcher = new BlankSpaceMenuLauncher(blankSpaceMenu);
     
    354355    private void setupMembershipMenu() {
    355356        // setting up the membership table
    356         if (Main.pref.getBoolean("properties.menu.add_edit_delete", true)) {
     357        if (Config.getPref().getBoolean("properties.menu.add_edit_delete", true)) {
    357358            membershipMenuHandler.addAction(editAction);
    358359            membershipMenuHandler.addAction(deleteAction);
     
    406407     */
    407408    private void setupTagsMenu() {
    408         if (Main.pref.getBoolean("properties.menu.add_edit_delete", true)) {
     409        if (Config.getPref().getBoolean("properties.menu.add_edit_delete", true)) {
    409410            tagMenu.add(addAction);
    410411            tagMenu.add(editAction);
     
    541542    public void destroy() {
    542543        super.destroy();
    543         Main.pref.removeKeyPreferenceChangeListener("display.discardable-keys", preferenceListener);
     544        Config.getPref().removeKeyPreferenceChangeListener("display.discardable-keys", preferenceListener);
    544545        Container parent = pluginHook.getParent();
    545546        if (parent != null) {
     
    573574        tagData.setRowCount(0);
    574575
    575         final boolean displayDiscardableKeys = Main.pref.getBoolean("display.discardable-keys", false);
     576        final boolean displayDiscardableKeys = Config.getPref().getBoolean("display.discardable-keys", false);
    576577        final Map<String, Integer> keyCount = new HashMap<>();
    577578        final Map<String, String> tags = new HashMap<>();
     
    11361137        public void actionPerformed(ActionEvent e) {
    11371138            try {
    1138                 String base = Main.pref.get("url.openstreetmap-wiki", "https://wiki.openstreetmap.org/wiki/");
     1139                String base = Config.getPref().get("url.openstreetmap-wiki", "https://wiki.openstreetmap.org/wiki/");
    11391140                String lang = LanguageInfo.getWikiLanguagePrefix();
    11401141                final List<URI> uris = new ArrayList<>();
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollection.java

    r12841 r12846  
    99
    1010import org.openstreetmap.josm.data.osm.Tag;
     11import org.openstreetmap.josm.data.osm.search.SearchCompiler;
    1112import org.openstreetmap.josm.data.osm.search.SearchParseError;
    1213import org.openstreetmap.josm.data.osm.search.SearchSetting;
    13 import org.openstreetmap.josm.data.osm.search.SearchCompiler;
    1414import org.openstreetmap.josm.data.preferences.ListProperty;
    1515
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java

    r12841 r12846  
    7373import org.openstreetmap.josm.data.osm.search.SearchSetting;
    7474import org.openstreetmap.josm.data.preferences.BooleanProperty;
    75 import org.openstreetmap.josm.data.preferences.ListProperty;
    7675import org.openstreetmap.josm.data.preferences.EnumProperty;
    7776import org.openstreetmap.josm.data.preferences.IntegerProperty;
     77import org.openstreetmap.josm.data.preferences.ListProperty;
    7878import org.openstreetmap.josm.data.preferences.StringProperty;
    7979import org.openstreetmap.josm.gui.ExtendedDialog;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java

    r12758 r12846  
    100100import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
    101101import org.openstreetmap.josm.gui.util.WindowGeometry;
     102import org.openstreetmap.josm.spi.preferences.Config;
    102103import org.openstreetmap.josm.tools.CheckParameterUtil;
    103104import org.openstreetmap.josm.tools.Logging;
     
    429430                }
    430431        );
    431         tfRole.setText(Main.pref.get("relation.editor.generic.lastrole", ""));
     432        tfRole.setText(Config.getPref().get("relation.editor.generic.lastrole", ""));
    432433        return tfRole;
    433434    }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java

    r12657 r12846  
    4040import org.openstreetmap.josm.gui.util.HighlightHelper;
    4141import org.openstreetmap.josm.gui.widgets.OsmPrimitivesTable;
     42import org.openstreetmap.josm.spi.preferences.Config;
    4243
    4344/**
     
    129130
    130131    private void initHighlighting() {
    131         highlightEnabled = Main.pref.getBoolean("draw.target-highlight", true);
     132        highlightEnabled = Config.getPref().getBoolean("draw.target-highlight", true);
    132133        if (!highlightEnabled) return;
    133134        getMemberTableModel().getSelectionModel().addListSelectionListener(highlighterListener);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/AbstractRelationEditorAction.java

    r9665 r12846  
    88import javax.swing.event.TableModelListener;
    99
     10import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
    1011import org.openstreetmap.josm.gui.dialogs.relation.MemberTable;
    1112import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel;
    12 import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
    1313import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    1414
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/AddFromSelectionAction.java

    r9665 r12846  
    1111import org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor;
    1212import org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor.AddAbortException;
     13import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
    1314import org.openstreetmap.josm.gui.dialogs.relation.MemberTable;
    1415import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel;
    15 import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
    1616import org.openstreetmap.josm.gui.dialogs.relation.SelectionTable;
    1717import org.openstreetmap.josm.gui.dialogs.relation.SelectionTableModel;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/CancelAction.java

    r10791 r12846  
    1313import org.openstreetmap.josm.gui.HelpAwareOptionPane;
    1414import org.openstreetmap.josm.gui.HelpAwareOptionPane.ButtonSpec;
     15import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
    1516import org.openstreetmap.josm.gui.dialogs.relation.MemberTable;
    1617import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel;
    17 import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
    1818import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    1919import org.openstreetmap.josm.gui.tagging.TagEditorModel;
    2020import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField;
     21import org.openstreetmap.josm.spi.preferences.Config;
    2122import org.openstreetmap.josm.tools.ImageProvider;
    2223import org.openstreetmap.josm.tools.InputMapUtils;
     
    6061            if (ret == 0) { //Yes, save the changes
    6162                //copied from OKAction.run()
    62                 Main.pref.put("relation.editor.generic.lastrole", tfRole.getText());
     63                Config.getPref().put("relation.editor.generic.lastrole", tfRole.getText());
    6364                if (!applyChanges())
    6465                    return;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/OKAction.java

    r10424 r12846  
    66import java.awt.event.ActionEvent;
    77
    8 import org.openstreetmap.josm.Main;
     8import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
    99import org.openstreetmap.josm.gui.dialogs.relation.MemberTable;
    1010import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel;
    11 import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
    1211import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    1312import org.openstreetmap.josm.gui.tagging.TagEditorModel;
    1413import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField;
     14import org.openstreetmap.josm.spi.preferences.Config;
    1515import org.openstreetmap.josm.tools.ImageProvider;
    1616
     
    4040    @Override
    4141    public void actionPerformed(ActionEvent e) {
    42         Main.pref.put("relation.editor.generic.lastrole", tfRole.getText());
     42        Config.getPref().put("relation.editor.generic.lastrole", tfRole.getText());
    4343        memberTable.stopHighlighting();
    4444        if (!applyChanges())
  • trunk/src/org/openstreetmap/josm/gui/download/BookmarkList.java

    r12841 r12846  
    2323import javax.swing.UIManager;
    2424
    25 import org.openstreetmap.josm.Main;
    2625import org.openstreetmap.josm.actions.downloadtasks.ChangesetQueryTask;
    2726import org.openstreetmap.josm.data.Bounds;
     
    3938import org.openstreetmap.josm.gui.util.GuiHelper;
    4039import org.openstreetmap.josm.io.ChangesetQuery;
     40import org.openstreetmap.josm.spi.preferences.Config;
    4141import org.openstreetmap.josm.tools.ImageProvider;
    4242import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
     
    262262        }
    263263        // Then add manual bookmarks previously saved in local preferences
    264         Collection<Collection<String>> args = Main.pref.getArray("bookmarks", null);
     264        List<List<String>> args = Config.getPref().getListOfLists("bookmarks", null);
    265265        if (args != null) {
    266266            List<Bookmark> bookmarks = new LinkedList<>();
     
    315315            coll.add(Arrays.asList(array));
    316316        }
    317         Main.pref.putListOfLists("bookmarks", coll);
     317        Config.getPref().putListOfLists("bookmarks", coll);
    318318    }
    319319
  • trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java

    r12733 r12846  
    5050import org.openstreetmap.josm.io.OnlineResource;
    5151import org.openstreetmap.josm.plugins.PluginHandler;
     52import org.openstreetmap.josm.spi.preferences.Config;
    5253import org.openstreetmap.josm.tools.GBC;
    5354import org.openstreetmap.josm.tools.ImageProvider;
     
    363364        DOWNLOAD_ZOOMTODATA.put(cbZoomToDownloadedData.isSelected());
    364365        if (currentBounds != null) {
    365             Main.pref.put("osm-download.bounds", currentBounds.encodeAsString(";"));
     366            Config.getPref().put("osm-download.bounds", currentBounds.encodeAsString(";"));
    366367        }
    367368    }
     
    406407     */
    407408    public static Bounds getSavedDownloadBounds() {
    408         String value = Main.pref.get("osm-download.bounds");
     409        String value = Config.getPref().get("osm-download.bounds");
    409410        if (!value.isEmpty()) {
    410411            try {
  • trunk/src/org/openstreetmap/josm/gui/download/DownloadObjectDialog.java

    r12841 r12846  
    1515import org.openstreetmap.josm.gui.dialogs.OsmIdSelectionDialog;
    1616import org.openstreetmap.josm.io.OnlineResource;
     17import org.openstreetmap.josm.spi.preferences.Config;
    1718
    1819/**
     
    5960    protected Collection<Component> getComponentsBeforeHelp() {
    6061        newLayer.setToolTipText(tr("Select if the data should be downloaded into a new layer"));
    61         newLayer.setSelected(Main.pref.getBoolean("download.newlayer"));
     62        newLayer.setSelected(Config.getPref().getBoolean("download.newlayer"));
    6263
    6364        referrers.setToolTipText(tr("Select if the referrers of the object should be downloaded as well, i.e.,"
    6465                + "parent relations and for nodes, additionally, parent ways"));
    65         referrers.setSelected(Main.pref.getBoolean("downloadprimitive.referrers", true));
     66        referrers.setSelected(Config.getPref().getBoolean("downloadprimitive.referrers", true));
    6667
    6768        fullRel.setToolTipText(tr("Select if the members of a relation should be downloaded as well"));
    68         fullRel.setSelected(Main.pref.getBoolean("downloadprimitive.full", true));
     69        fullRel.setSelected(Config.getPref().getBoolean("downloadprimitive.full", true));
    6970
    7071        cbType.addItemListener(e -> referrers.setText(cbType.getType() == OsmPrimitiveType.NODE
     
    103104        super.windowClosed(e);
    104105        if (e != null && e.getComponent() == this && getValue() == 1) {
    105             Main.pref.putBoolean("downloadprimitive.referrers", referrers.isSelected());
    106             Main.pref.putBoolean("downloadprimitive.full", fullRel.isSelected());
    107             Main.pref.putBoolean("download.newlayer", newLayer.isSelected());
     106            Config.getPref().putBoolean("downloadprimitive.referrers", referrers.isSelected());
     107            Config.getPref().putBoolean("downloadprimitive.full", fullRel.isSelected());
     108            Config.getPref().putBoolean("download.newlayer", newLayer.isSelected());
    108109        }
    109110    }
  • trunk/src/org/openstreetmap/josm/gui/download/DownloadSettings.java

    r12684 r12846  
    22package org.openstreetmap.josm.gui.download;
    33
     4import java.util.Optional;
     5
    46import org.openstreetmap.josm.data.Bounds;
    5 
    6 import java.util.Optional;
    77
    88/**
  • trunk/src/org/openstreetmap/josm/gui/download/OSMDownloadSource.java

    r12706 r12846  
    1919import javax.swing.event.ChangeListener;
    2020
    21 import org.openstreetmap.josm.Main;
    2221import org.openstreetmap.josm.actions.downloadtasks.AbstractDownloadTask;
    2322import org.openstreetmap.josm.actions.downloadtasks.DownloadGpsTask;
     
    3231import org.openstreetmap.josm.gui.MapFrame;
    3332import org.openstreetmap.josm.gui.util.GuiHelper;
     33import org.openstreetmap.josm.spi.preferences.Config;
    3434import org.openstreetmap.josm.tools.GBC;
    3535import org.openstreetmap.josm.tools.ImageProvider;
     
    298298            } else if (isDownloadNotes() && !isDownloadOsmData() && !isDownloadGpxData()) {
    299299                // see max_note_request_area in https://github.com/openstreetmap/openstreetmap-website/blob/master/config/example.application.yml
    300                 isAreaTooLarge = bbox.getArea() > Main.pref.getDouble("osm-server.max-request-area-notes", 25);
     300                isAreaTooLarge = bbox.getArea() > Config.getPref().getDouble("osm-server.max-request-area-notes", 25);
    301301            } else {
    302302                // see max_request_area in https://github.com/openstreetmap/openstreetmap-website/blob/master/config/example.application.yml
    303                 isAreaTooLarge = bbox.getArea() > Main.pref.getDouble("osm-server.max-request-area", 0.25);
     303                isAreaTooLarge = bbox.getArea() > Config.getPref().getDouble("osm-server.max-request-area", 0.25);
    304304            }
    305305
  • trunk/src/org/openstreetmap/josm/gui/download/OverpassQueryList.java

    r12841 r12846  
    4949import org.openstreetmap.josm.gui.widgets.JosmTextArea;
    5050import org.openstreetmap.josm.gui.widgets.SearchTextResultListPanel;
     51import org.openstreetmap.josm.spi.preferences.Config;
    5152import org.openstreetmap.josm.tools.GBC;
    5253import org.openstreetmap.josm.tools.Logging;
     
    254255        }
    255256
    256         Main.pref.putListOfMaps(PREFERENCE_ITEMS, toSave);
     257        Config.getPref().putListOfMaps(PREFERENCE_ITEMS, toSave);
    257258    }
    258259
     
    263264    private static Map<String, SelectorItem> restorePreferences() {
    264265        Collection<Map<String, String>> toRetrieve =
    265                 Main.pref.getListOfMaps(PREFERENCE_ITEMS, Collections.emptyList());
     266                Config.getPref().getListOfMaps(PREFERENCE_ITEMS, Collections.emptyList());
    266267        Map<String, SelectorItem> result = new HashMap<>();
    267268
  • trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java

    r12841 r12846  
    5555import org.openstreetmap.josm.io.NameFinder.SearchResult;
    5656import org.openstreetmap.josm.io.OsmTransferException;
     57import org.openstreetmap.josm.spi.preferences.Config;
    5758import org.openstreetmap.josm.tools.GBC;
    5859import org.openstreetmap.josm.tools.HttpClient;
     
    105106        lpanel.add(new JLabel(tr("Choose the server for searching:")));
    106107        lpanel.add(server);
    107         String s = Main.pref.get("namefinder.server", SERVERS[0].name);
     108        String s = Config.getPref().get("namefinder.server", SERVERS[0].name);
    108109        for (int i = 0; i < SERVERS.length; ++i) {
    109110            if (SERVERS[i].name.equals(s)) {
     
    115116        cbSearchExpression = new HistoryComboBox();
    116117        cbSearchExpression.setToolTipText(tr("Enter a place name to search for"));
    117         List<String> cmtHistory = new LinkedList<>(Main.pref.getList(HISTORY_KEY, new LinkedList<String>()));
     118        List<String> cmtHistory = new LinkedList<>(Config.getPref().getList(HISTORY_KEY, new LinkedList<String>()));
    118119        Collections.reverse(cmtHistory);
    119120        cbSearchExpression.setPossibleItems(cmtHistory);
     
    189190                return;
    190191            cbSearchExpression.addCurrentItemToHistory();
    191             Main.pref.putList(HISTORY_KEY, cbSearchExpression.getHistory());
     192            Config.getPref().putList(HISTORY_KEY, cbSearchExpression.getHistory());
    192193            NameQueryTask task = new NameQueryTask(cbSearchExpression.getText());
    193194            MainApplication.worker.submit(task);
     
    227228            this.searchExpression = searchExpression;
    228229            useserver = (Server) server.getSelectedItem();
    229             Main.pref.put("namefinder.server", useserver.name);
     230            Config.getPref().put("namefinder.server", useserver.name);
    230231        }
    231232
  • trunk/src/org/openstreetmap/josm/gui/help/HelpUtil.java

    r12643 r12846  
    1414import org.openstreetmap.josm.actions.HelpAction;
    1515import org.openstreetmap.josm.gui.MainApplication;
     16import org.openstreetmap.josm.spi.preferences.Config;
    1617import org.openstreetmap.josm.tools.LanguageInfo;
    1718import org.openstreetmap.josm.tools.LanguageInfo.LocaleType;
     
    3334     */
    3435    public static String getWikiBaseUrl() {
    35         return Main.pref.get("help.baseurl", Main.getJOSMWebsite());
     36        return Config.getPref().get("help.baseurl", Main.getJOSMWebsite());
    3637    }
    3738
     
    132133        if (ret == null)
    133134            return ret;
    134         ret = '/' + ret + Main.pref.get("help.pathhelp", "/Help").replaceAll("^\\/+", ""); // remove leading /
     135        ret = '/' + ret + Config.getPref().get("help.pathhelp", "/Help").replaceAll("^\\/+", ""); // remove leading /
    135136        return ret.replaceAll("\\/+", "\\/"); // collapse sequences of //
    136137    }
  • trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java

    r12841 r12846  
    3535import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
    3636import org.openstreetmap.josm.io.XmlWriter;
     37import org.openstreetmap.josm.spi.preferences.Config;
    3738import org.openstreetmap.josm.tools.ImageProvider;
    3839import org.openstreetmap.josm.tools.OpenBrowser;
     
    341342        Object val = tbl.getColumnModel().getColumn(col).getHeaderValue();
    342343        Component comp = tcr.getTableCellRendererComponent(tbl, val, false, false, -1, col);
    343         maxwidth = Math.max(comp.getPreferredSize().width + Main.pref.getInt("table.header-inset", 0), maxwidth);
     344        maxwidth = Math.max(comp.getPreferredSize().width + Config.getPref().getInt("table.header-inset", 0), maxwidth);
    344345
    345346        int spacing = tbl.getIntercellSpacing().width;
  • trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java

    r12841 r12846  
    2828import javax.swing.event.HyperlinkEvent;
    2929
    30 import org.openstreetmap.josm.Main;
    3130import org.openstreetmap.josm.data.osm.Changeset;
    3231import org.openstreetmap.josm.gui.MainApplication;
    3332import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
    3433import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
     34import org.openstreetmap.josm.spi.preferences.Config;
    3535import org.openstreetmap.josm.tools.CheckParameterUtil;
    3636import org.openstreetmap.josm.tools.GBC;
     
    7878        hcbUploadComment.setToolTipText(tr("Enter an upload comment"));
    7979        hcbUploadComment.setMaxTextLength(Changeset.MAX_CHANGESET_TAG_LENGTH);
    80         List<String> cmtHistory = new LinkedList<>(Main.pref.getList(HISTORY_KEY, new LinkedList<String>()));
     80        List<String> cmtHistory = new LinkedList<>(Config.getPref().getList(HISTORY_KEY, new LinkedList<String>()));
    8181        Collections.reverse(cmtHistory); // we have to reverse the history, because ComboBoxHistory will reverse it again in addElement()
    8282        hcbUploadComment.setPossibleItems(cmtHistory);
     
    100100        hcbUploadSource.setToolTipText(tr("Enter a source"));
    101101        hcbUploadSource.setMaxTextLength(Changeset.MAX_CHANGESET_TAG_LENGTH);
    102         List<String> sourceHistory = new LinkedList<>(Main.pref.getList(SOURCE_HISTORY_KEY, getDefaultSources()));
     102        List<String> sourceHistory = new LinkedList<>(Config.getPref().getList(SOURCE_HISTORY_KEY, getDefaultSources()));
    103103        Collections.reverse(sourceHistory); // we have to reverse the history, because ComboBoxHistory will reverse it again in addElement()
    104104        hcbUploadSource.setPossibleItems(sourceHistory);
     
    166166        // store the history of comments
    167167        hcbUploadComment.addCurrentItemToHistory();
    168         Main.pref.putList(HISTORY_KEY, hcbUploadComment.getHistory());
    169         Main.pref.putInt(HISTORY_LAST_USED_KEY, (int) (TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())));
     168        Config.getPref().putList(HISTORY_KEY, hcbUploadComment.getHistory());
     169        Config.getPref().putInt(HISTORY_LAST_USED_KEY, (int) (TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())));
    170170        // store the history of sources
    171171        hcbUploadSource.addCurrentItemToHistory();
    172         Main.pref.putList(SOURCE_HISTORY_KEY, hcbUploadSource.getHistory());
     172        Config.getPref().putList(SOURCE_HISTORY_KEY, hcbUploadSource.getHistory());
    173173    }
    174174
  • trunk/src/org/openstreetmap/josm/gui/io/ChangesetManagementPanel.java

    r12841 r12846  
    2323import javax.swing.event.ListDataListener;
    2424
    25 import org.openstreetmap.josm.Main;
    2625import org.openstreetmap.josm.data.osm.Changeset;
    2726import org.openstreetmap.josm.data.osm.ChangesetCache;
     
    2928import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
    3029import org.openstreetmap.josm.gui.widgets.JosmComboBox;
     30import org.openstreetmap.josm.spi.preferences.Config;
    3131import org.openstreetmap.josm.tools.CheckParameterUtil;
    3232import org.openstreetmap.josm.tools.ImageProvider;
     
    156156        cbCloseAfterUpload.setToolTipText(tr("Select to close the changeset after the next upload"));
    157157        add(cbCloseAfterUpload, gc);
    158         cbCloseAfterUpload.setSelected(Main.pref.getBoolean("upload.changeset.close", true));
     158        cbCloseAfterUpload.setSelected(Config.getPref().getBoolean("upload.changeset.close", true));
    159159        cbCloseAfterUpload.addItemListener(new CloseAfterUploadItemStateListener());
    160160
     
    256256            case ItemEvent.SELECTED:
    257257                firePropertyChange(CLOSE_CHANGESET_AFTER_UPLOAD, false, true);
    258                 Main.pref.putBoolean("upload.changeset.close", true);
     258                Config.getPref().putBoolean("upload.changeset.close", true);
    259259                break;
    260260            case ItemEvent.DESELECTED:
    261261                firePropertyChange(CLOSE_CHANGESET_AFTER_UPLOAD, true, false);
    262                 Main.pref.putBoolean("upload.changeset.close", false);
     262                Config.getPref().putBoolean("upload.changeset.close", false);
    263263                break;
    264264            default: // Do nothing
  • trunk/src/org/openstreetmap/josm/gui/io/CredentialDialog.java

    r12821 r12846  
    4242import org.openstreetmap.josm.io.auth.AbstractCredentialsAgent;
    4343import org.openstreetmap.josm.io.auth.CredentialsAgentResponse;
     44import org.openstreetmap.josm.spi.preferences.Config;
    4445import org.openstreetmap.josm.tools.ImageProvider;
    4546import org.openstreetmap.josm.tools.InputMapUtils;
     
    355356            tfUserName.setToolTipText(tr("Please enter the user name for authenticating at your proxy server"));
    356357            tfPassword.setToolTipText(tr("Please enter the password for authenticating at your proxy server"));
    357             lblHeading.setText(
    358                     "<html>" + tr("Authenticating at the HTTP proxy ''{0}'' failed. Please enter a valid username and a valid password.",
    359                             Main.pref.get(DefaultProxySelector.PROXY_HTTP_HOST) + ':' +
    360                             Main.pref.get(DefaultProxySelector.PROXY_HTTP_PORT)) + "</html>");
     358            lblHeading.setText("<html>" + tr("Authenticating at the HTTP proxy ''{0}'' failed. Please enter a valid username and a valid password.",
     359                            Config.getPref().get(DefaultProxySelector.PROXY_HTTP_HOST) + ':' +
     360                            Config.getPref().get(DefaultProxySelector.PROXY_HTTP_PORT)) + "</html>");
    361361            lblWarning.setText("<html>" +
    362362                    tr("Warning: depending on the authentication method the proxy server uses the password may be transferred unencrypted.")
  • trunk/src/org/openstreetmap/josm/gui/io/CustomConfigurator.java

    r12841 r12846  
    5050import org.openstreetmap.josm.plugins.PluginInformation;
    5151import org.openstreetmap.josm.plugins.ReadLocalPluginInformationTask;
     52import org.openstreetmap.josm.spi.preferences.Config;
    5253import org.openstreetmap.josm.tools.LanguageInfo;
    5354import org.openstreetmap.josm.tools.Logging;
     
    400401                        MainApplication.worker.submit(pluginDownloadTask);
    401402                    }
    402                     List<String> pls = new ArrayList<>(Main.pref.getList("plugins"));
     403                    List<String> pls = new ArrayList<>(Config.getPref().getList("plugins"));
    403404                    for (PluginInformation pi2: toInstallPlugins) {
    404405                        if (!pls.contains(pi2.name)) {
     
    413414                        new File(Main.pref.getPluginsDirectory(), pi4.name+".jar").deleteOnExit();
    414415                    }
    415                     Main.pref.putList("plugins", pls);
     416                    Config.getPref().putList("plugins", pls);
    416417                });
    417418            }
  • trunk/src/org/openstreetmap/josm/gui/io/RecentlyOpenedFilesMenu.java

    r12841 r12846  
    1717import javax.swing.event.MenuListener;
    1818
    19 import org.openstreetmap.josm.Main;
    2019import org.openstreetmap.josm.actions.OpenFileAction.OpenFileTask;
    2120import org.openstreetmap.josm.gui.MainApplication;
     21import org.openstreetmap.josm.spi.preferences.Config;
    2222import org.openstreetmap.josm.tools.ImageProvider;
    2323
     
    5858    private void rebuild() {
    5959        removeAll();
    60         Collection<String> fileHistory = Main.pref.getList("file-open.history");
     60        Collection<String> fileHistory = Config.getPref().getList("file-open.history");
    6161
    6262        for (final String file : fileHistory) {
     
    101101        @Override
    102102        public void actionPerformed(ActionEvent e) {
    103             Main.pref.putList("file-open.history", null);
     103            Config.getPref().putList("file-open.history", null);
    104104        }
    105105    }
  • trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java

    r12841 r12846  
    6060import org.openstreetmap.josm.io.UploadStrategy;
    6161import org.openstreetmap.josm.io.UploadStrategySpecification;
     62import org.openstreetmap.josm.spi.preferences.Config;
    6263import org.openstreetmap.josm.tools.GBC;
    6364import org.openstreetmap.josm.tools.ImageOverlay;
     
    252253        setMinimumSize(new Dimension(600, 350));
    253254
    254         Main.pref.addPreferenceChangeListener(this);
     255        Config.getPref().addPreferenceChangeListener(this);
    255256    }
    256257
     
    653654
    654655    private static String getLastChangesetTagFromHistory(String historyKey, List<String> def) {
    655         Collection<String> history = Main.pref.getList(historyKey, def);
    656         int age = (int) (System.currentTimeMillis() / 1000 - Main.pref.getInt(BasicUploadSettingsPanel.HISTORY_LAST_USED_KEY, 0));
     656        Collection<String> history = Config.getPref().getList(historyKey, def);
     657        int age = (int) (System.currentTimeMillis() / 1000 - Config.getPref().getInt(BasicUploadSettingsPanel.HISTORY_LAST_USED_KEY, 0));
    657658        if (history != null && age < Main.pref.getLong(BasicUploadSettingsPanel.HISTORY_MAX_AGE_KEY, TimeUnit.HOURS.toMillis(4))
    658659                && !history.isEmpty()) {
  • trunk/src/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanel.java

    r12841 r12846  
    3131import javax.swing.event.DocumentListener;
    3232
    33 import org.openstreetmap.josm.Main;
    3433import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
    3534import org.openstreetmap.josm.gui.widgets.JosmTextField;
     
    3938import org.openstreetmap.josm.io.UploadStrategy;
    4039import org.openstreetmap.josm.io.UploadStrategySpecification;
     40import org.openstreetmap.josm.spi.preferences.Config;
    4141import org.openstreetmap.josm.tools.Logging;
    4242
     
    323323        UploadStrategy strategy = UploadStrategy.getFromPreferences();
    324324        rbStrategy.get(strategy).setSelected(true);
    325         int chunkSize = Main.pref.getInt("osm-server.upload-strategy.chunk-size", 1);
     325        int chunkSize = Config.getPref().getInt("osm-server.upload-strategy.chunk-size", 1);
    326326        tfChunkSize.setText(Integer.toString(chunkSize));
    327327        updateNumRequestsLabels();
     
    337337        try {
    338338            chunkSize = Integer.parseInt(tfChunkSize.getText().trim());
    339             Main.pref.putInt("osm-server.upload-strategy.chunk-size", chunkSize);
     339            Config.getPref().putInt("osm-server.upload-strategy.chunk-size", chunkSize);
    340340        } catch (NumberFormatException e) {
    341341            // don't save invalid value to preferences
  • trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxExporter.java

    r12841 r12846  
    3636import org.openstreetmap.josm.io.Compression;
    3737import org.openstreetmap.josm.io.GpxWriter;
     38import org.openstreetmap.josm.spi.preferences.Config;
    3839import org.openstreetmap.josm.tools.CheckParameterUtil;
    3940import org.openstreetmap.josm.tools.GBC;
     
    110111        p.add(new JScrollPane(desc), GBC.eop().fill(GBC.BOTH));
    111112
    112         JCheckBox author = new JCheckBox(tr("Add author information"), Main.pref.getBoolean("lastAddAuthor", true));
     113        JCheckBox author = new JCheckBox(tr("Add author information"), Config.getPref().getBoolean("lastAddAuthor", true));
    113114        p.add(author, GBC.eol());
    114115
     
    162163        setCanceled(false);
    163164
    164         Main.pref.putBoolean("lastAddAuthor", author.isSelected());
     165        Config.getPref().putBoolean("lastAddAuthor", author.isSelected());
    165166        if (!authorName.getText().isEmpty()) {
    166             Main.pref.put("lastAuthorName", authorName.getText());
     167            Config.getPref().put("lastAuthorName", authorName.getText());
    167168        }
    168169        if (!copyright.getText().isEmpty()) {
    169             Main.pref.put("lastCopyright", copyright.getText());
     170            Config.getPref().put("lastCopyright", copyright.getText());
    170171        }
    171172
     
    231232            }
    232233            if (copyright.getText().isEmpty()) {
    233                 copyright.setText(Optional.ofNullable(data.getString(META_COPYRIGHT_LICENSE)).orElseGet(
    234                         () -> Main.pref.get("lastCopyright", "https://creativecommons.org/licenses/by-sa/2.5")));
     234                copyright.setText(Optional.ofNullable(data.getString(META_COPYRIGHT_LICENSE)).orElseGet(() -> Config.getPref().get("lastCopyright", "https://creativecommons.org/licenses/by-sa/2.5")));
    235235                copyright.setCaretPosition(0);
    236236            }
     
    280280            emailLabel.setEnabled(b);
    281281            if (b) {
    282                 authorName.setText(Optional.ofNullable(data.getString(META_AUTHOR_NAME)).orElseGet(() -> Main.pref.get("lastAuthorName")));
    283                 email.setText(Optional.ofNullable(data.getString(META_AUTHOR_EMAIL)).orElseGet(() -> Main.pref.get("lastAuthorEmail")));
     282                authorName.setText(Optional.ofNullable(data.getString(META_AUTHOR_NAME)).orElseGet(() -> Config.getPref().get("lastAuthorName")));
     283                email.setText(Optional.ofNullable(data.getString(META_AUTHOR_EMAIL)).orElseGet(() -> Config.getPref().get("lastAuthorEmail")));
    284284            } else {
    285285                authorName.setText("");
  • trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java

    r12671 r12846  
    1010import javax.swing.JOptionPane;
    1111
    12 import org.openstreetmap.josm.Main;
    1312import org.openstreetmap.josm.actions.ExtensionFileFilter;
    1413import org.openstreetmap.josm.data.gpx.GpxData;
     
    2019import org.openstreetmap.josm.io.Compression;
    2120import org.openstreetmap.josm.io.GpxReader;
     21import org.openstreetmap.josm.spi.preferences.Config;
    2222import org.openstreetmap.josm.tools.Logging;
    2323import org.xml.sax.SAXException;
     
    9595     */
    9696    public static ExtensionFileFilter getFileFilter() {
    97         return ExtensionFileFilter.newFilterWithArchiveExtensions(
    98             "gpx", Main.pref.get("save.extension.gpx", "gpx"), tr("GPX Files"), true);
     97        return ExtensionFileFilter.newFilterWithArchiveExtensions("gpx", Config.getPref().get("save.extension.gpx", "gpx"), tr("GPX Files"), true);
    9998    }
    10099
     
    148147            gpxLayer = new GpxLayer(data, gpxLayerName, data.storageFile != null);
    149148        }
    150         if (Main.pref.getBoolean("marker.makeautomarkers", true) && !data.waypoints.isEmpty()) {
     149        if (Config.getPref().getBoolean("marker.makeautomarkers", true) && !data.waypoints.isEmpty()) {
    151150            markerLayer = new MarkerLayer(data, markerLayerName, data.storageFile, gpxLayer);
    152151            if (markerLayer.data.isEmpty()) {
  • trunk/src/org/openstreetmap/josm/gui/io/importexport/NMEAImporter.java

    r12671 r12846  
    2323import org.openstreetmap.josm.io.Compression;
    2424import org.openstreetmap.josm.io.nmea.NmeaReader;
     25import org.openstreetmap.josm.spi.preferences.Config;
    2526
    2627/**
     
    5556                GuiHelper.runInEDT(() -> {
    5657                    MainApplication.getLayerManager().addLayer(gpxLayer);
    57                     if (Main.pref.getBoolean("marker.makeautomarkers", true)) {
     58                    if (Config.getPref().getBoolean("marker.makeautomarkers", true)) {
    5859                        MarkerLayer ml = new MarkerLayer(r.data, tr("Markers from {0}", fn), fileFinal, gpxLayer);
    5960                        if (!ml.data.isEmpty()) {
  • trunk/src/org/openstreetmap/josm/gui/io/importexport/OsmExporter.java

    r12800 r12846  
    2222import org.openstreetmap.josm.io.OsmWriter;
    2323import org.openstreetmap.josm.io.OsmWriterFactory;
     24import org.openstreetmap.josm.spi.preferences.Config;
    2425import org.openstreetmap.josm.tools.Logging;
    2526import org.openstreetmap.josm.tools.Utils;
     
    9091
    9192            doSave(file, layer);
    92             if ((noBackup || !Main.pref.getBoolean("save.keepbackup", false)) && tmpFile != null) {
     93            if ((noBackup || !Config.getPref().getBoolean("save.keepbackup", false)) && tmpFile != null) {
    9394                Utils.deleteFile(tmpFile);
    9495            }
  • trunk/src/org/openstreetmap/josm/gui/layer/AutosaveTask.java

    r12671 r12846  
    4646import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent;
    4747import org.openstreetmap.josm.gui.util.GuiHelper;
     48import org.openstreetmap.josm.spi.preferences.Config;
    4849import org.openstreetmap.josm.tools.Logging;
    4950import org.openstreetmap.josm.tools.Utils;
     
    193194            String filename = String.format("%1$s_%2$tY%2$tm%2$td_%2$tH%2$tM%2$tS%2$tL%3$s",
    194195                    layer.layerFileName, now, index == 0 ? "" : ('_' + Integer.toString(index)));
    195             File result = new File(autosaveDir, filename + '.' + Main.pref.get("autosave.extension", "osm"));
     196            File result = new File(autosaveDir, filename + '.' + Config.getPref().get("autosave.extension", "osm"));
    196197            try {
    197198                if (index > PROP_INDEX_LIMIT.get())
  • trunk/src/org/openstreetmap/josm/gui/layer/NoteLayer.java

    r12671 r12846  
    2323import javax.swing.SwingUtilities;
    2424
    25 import org.openstreetmap.josm.Main;
    2625import org.openstreetmap.josm.actions.SaveActionBase;
    2726import org.openstreetmap.josm.data.Bounds;
     
    4342import org.openstreetmap.josm.io.OsmApi;
    4443import org.openstreetmap.josm.io.XmlWriter;
     44import org.openstreetmap.josm.spi.preferences.Config;
    4545import org.openstreetmap.josm.tools.ColorHelper;
    4646import org.openstreetmap.josm.tools.ImageProvider;
     
    165165            Point p = mv.getPoint(noteData.getSelectedNote().getLatLon());
    166166
    167             g.setColor(ColorHelper.html2color(Main.pref.get("color.selected")));
     167            g.setColor(ColorHelper.html2color(Config.getPref().get("color.selected")));
    168168            g.drawRect(p.x - (iconWidth / 2), p.y - iconHeight,
    169169                    iconWidth - 1, iconHeight - 1);
  • trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

    r12809 r12846  
    104104import org.openstreetmap.josm.gui.widgets.FileChooserManager;
    105105import org.openstreetmap.josm.gui.widgets.JosmTextArea;
     106import org.openstreetmap.josm.spi.preferences.Config;
    106107import org.openstreetmap.josm.tools.AlphanumComparator;
    107108import org.openstreetmap.josm.tools.CheckParameterUtil;
     
    430431    @Override public void paint(final Graphics2D g, final MapView mv, Bounds box) {
    431432        boolean active = mv.getLayerManager().getActiveLayer() == this;
    432         boolean inactive = !active && Main.pref.getBoolean("draw.data.inactive_color", true);
     433        boolean inactive = !active && Config.getPref().getBoolean("draw.data.inactive_color", true);
    433434        boolean virtual = !inactive && mv.isVirtualNodesEnabled();
    434435
    435436        // draw the hatched area for non-downloaded region. only draw if we're the active
    436437        // and bounds are defined; don't draw for inactive layers or loaded GPX files etc
    437         if (active && Main.pref.getBoolean("draw.data.downloaded_area", true) && !data.getDataSources().isEmpty()) {
     438        if (active && Config.getPref().getBoolean("draw.data.downloaded_area", true) && !data.getDataSources().isEmpty()) {
    438439            // initialize area with current viewport
    439440            Rectangle b = mv.getBounds();
     
    872873            }
    873874            MainApplication.getLayerManager().addLayer(gpxLayer);
    874             if (Main.pref.getBoolean("marker.makeautomarkers", true) && !gpxData.waypoints.isEmpty()) {
     875            if (Config.getPref().getBoolean("marker.makeautomarkers", true) && !gpxData.waypoints.isEmpty()) {
    875876                MainApplication.getLayerManager().addLayer(new MarkerLayer(gpxData, tr("Converted from: {0}", getName()), null, gpxLayer));
    876877            }
     
    10891090        File file = getAssociatedFile();
    10901091        if (file == null && isRenamed()) {
    1091             StringBuilder filename = new StringBuilder(Main.pref.get("lastDirectory")).append('/').append(getName());
     1092            StringBuilder filename = new StringBuilder(Config.getPref().get("lastDirectory")).append('/').append(getName());
    10921093            if (!OsmImporter.FILE_FILTER.acceptName(filename.toString())) {
    10931094                filename.append('.').append(extension);
  • trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java

    r12841 r12846  
    7979import org.openstreetmap.josm.gui.widgets.JosmTextField;
    8080import org.openstreetmap.josm.io.GpxReader;
     81import org.openstreetmap.josm.spi.preferences.Config;
    8182import org.openstreetmap.josm.tools.ExifReader;
    8283import org.openstreetmap.josm.tools.GBC;
     
    172173                break;
    173174            case DONE:
    174                 Main.pref.put("geoimage.timezone", timezone.formatTimezone());
    175                 Main.pref.put("geoimage.delta", delta.formatOffset());
    176                 Main.pref.putBoolean("geoimage.showThumbs", yLayer.useThumbs);
     175                Config.getPref().put("geoimage.timezone", timezone.formatTimezone());
     176                Config.getPref().put("geoimage.delta", delta.formatOffset());
     177                Config.getPref().putBoolean("geoimage.showThumbs", yLayer.useThumbs);
    177178
    178179                yLayer.useThumbs = cbShowThumbs.isSelected();
     
    421422            JosmComboBox<String> cbTimezones = new JosmComboBox<>(vtTimezones.toArray(new String[vtTimezones.size()]));
    422423
    423             String tzId = Main.pref.get("geoimage.timezoneid", "");
     424            String tzId = Config.getPref().get("geoimage.timezoneid", "");
    424425            TimeZone defaultTz;
    425426            if (tzId.isEmpty()) {
     
    529530                String tzValue = selectedTz.substring(pos + 1, selectedTz.length() - 1);
    530531
    531                 Main.pref.put("geoimage.timezoneid", tzId);
     532                Config.getPref().put("geoimage.timezoneid", tzId);
    532533                tfOffset.setText(Offset.milliseconds(delta).formatOffset());
    533534                tfTimezone.setText(tzValue);
     
    584585
    585586        try {
    586             timezone = Timezone.parseTimezone(Optional.ofNullable(Main.pref.get("geoimage.timezone", "0:00")).orElse("0:00"));
     587            timezone = Timezone.parseTimezone(Optional.ofNullable(Config.getPref().get("geoimage.timezone", "0:00")).orElse("0:00"));
    587588        } catch (ParseException e) {
    588589            timezone = Timezone.ZERO;
     
    593594
    594595        try {
    595             delta = Offset.parseOffset(Main.pref.get("geoimage.delta", "0"));
     596            delta = Offset.parseOffset(Config.getPref().get("geoimage.delta", "0"));
    596597        } catch (ParseException e) {
    597598            delta = Offset.ZERO;
     
    627628        labelPosition.setEnabled(cbExifImg.isEnabled() || cbTaggedImg.isEnabled());
    628629
    629         boolean ticked = yLayer.thumbsLoaded || Main.pref.getBoolean("geoimage.showThumbs", false);
     630        boolean ticked = yLayer.thumbsLoaded || Config.getPref().getBoolean("geoimage.showThumbs", false);
    630631        cbShowThumbs = new JCheckBox(tr("Show Thumbnail images on the map"), ticked);
    631632        cbShowThumbs.setEnabled(!yLayer.thumbsLoaded);
  • trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java

    r12620 r12846  
    2626import javax.swing.JComponent;
    2727
    28 import org.openstreetmap.josm.Main;
     28import org.openstreetmap.josm.spi.preferences.Config;
    2929import org.openstreetmap.josm.tools.ExifReader;
    3030import org.openstreetmap.josm.tools.Logging;
     
    5858    private String osdText;
    5959
    60