Ticket #18292: 18292.patch

File 18292.patch, 3.8 KB (added by taylor.smock, 6 years ago)

Initialize pref list for remote control (by manually calling RequestProcessor)

  • src/org/openstreetmap/josm/io/remotecontrol/PermissionPrefWithDefault.java

     
    7575     * @return A non-modifiable list of permission preferences for Remote Control
    7676     */
    7777    public static List<PermissionPrefWithDefault> getPermissionPrefs() {
     78        if (PREFS.isEmpty())
     79            RequestProcessor.initialize();
    7880        return Collections.unmodifiableList(PREFS);
    7981    }
    8082
  • src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java

     
    7373     */
    7474    private static Map<String, Class<? extends RequestHandler>> handlers = new TreeMap<>();
    7575
     76    static {
     77        initialize();
     78    }
     79
    7680    /**
    7781     * Constructor
    7882     *
     
    136140        }
    137141    }
    138142
     143
    139144    /**
    140      * Add default request handlers and permission preferences (order is important)
     145     * Force the class to initialize and load the handlers
    141146     */
    142     static {
    143         addRequestHandlerClass(LoadAndZoomHandler.command, LoadAndZoomHandler.class, true);
    144         addRequestHandlerClass(LoadAndZoomHandler.command2, LoadAndZoomHandler.class, true);
    145         addRequestHandlerClass(LoadObjectHandler.command, LoadObjectHandler.class, true);
    146         addRequestHandlerClass(LoadDataHandler.command, LoadDataHandler.class, true);
    147         addRequestHandlerClass(ImportHandler.command, ImportHandler.class, true);
    148         addRequestHandlerClass(OpenFileHandler.command, OpenFileHandler.class, true);
    149         addRequestHandlerClass(ImageryHandler.command, ImageryHandler.class, true);
    150         PermissionPrefWithDefault.addPermissionPref(PermissionPrefWithDefault.CHANGE_SELECTION);
    151         PermissionPrefWithDefault.addPermissionPref(PermissionPrefWithDefault.CHANGE_VIEWPORT);
    152         addRequestHandlerClass(AddNodeHandler.command, AddNodeHandler.class, true);
    153         addRequestHandlerClass(AddWayHandler.command, AddWayHandler.class, true);
    154         addRequestHandlerClass(VersionHandler.command, VersionHandler.class, true);
    155         addRequestHandlerClass(FeaturesHandler.command, FeaturesHandler.class, true);
     147    public static void initialize() {
     148        if (handlers.isEmpty()) {
     149            addRequestHandlerClass(LoadAndZoomHandler.command, LoadAndZoomHandler.class, true);
     150            addRequestHandlerClass(LoadAndZoomHandler.command2, LoadAndZoomHandler.class, true);
     151            addRequestHandlerClass(LoadObjectHandler.command, LoadObjectHandler.class, true);
     152            addRequestHandlerClass(LoadDataHandler.command, LoadDataHandler.class, true);
     153            addRequestHandlerClass(ImportHandler.command, ImportHandler.class, true);
     154            addRequestHandlerClass(OpenFileHandler.command, OpenFileHandler.class, true);
     155            addRequestHandlerClass(ImageryHandler.command, ImageryHandler.class, true);
     156            PermissionPrefWithDefault.addPermissionPref(PermissionPrefWithDefault.CHANGE_SELECTION);
     157            PermissionPrefWithDefault.addPermissionPref(PermissionPrefWithDefault.CHANGE_VIEWPORT);
     158            addRequestHandlerClass(AddNodeHandler.command, AddNodeHandler.class, true);
     159            addRequestHandlerClass(AddWayHandler.command, AddWayHandler.class, true);
     160            addRequestHandlerClass(VersionHandler.command, VersionHandler.class, true);
     161            addRequestHandlerClass(FeaturesHandler.command, FeaturesHandler.class, true);
     162        }
    156163    }
    157164
    158165    /**