001 // License: GPL. For details, see LICENSE file. 002 package org.openstreetmap.josm.io.remotecontrol; 003 004 import java.util.Arrays; 005 import java.util.List; 006 import org.openstreetmap.josm.Main; 007 import static org.openstreetmap.josm.tools.I18n.tr; 008 009 /** 010 * Contains a preference name to control permission for the operation 011 * implemented by the RequestHandler, and an error message to be displayed if 012 * not permitted. 013 * 014 * @author Bodo Meissner 015 */ 016 public class PermissionPrefWithDefault { 017 018 public static final PermissionPrefWithDefault LOAD_DATA = 019 new PermissionPrefWithDefault("remotecontrol.permission.load-data", true, tr("Load data from API")); 020 public static final PermissionPrefWithDefault IMPORT_DATA = 021 new PermissionPrefWithDefault("remotecontrol.permission.import", true, tr("Import data from URL")); 022 public static final PermissionPrefWithDefault OPEN_FILES = 023 new PermissionPrefWithDefault("remotecontrol.permission.open-files", false, tr("Open local files")); 024 public static final PermissionPrefWithDefault LOAD_IMAGERY = 025 new PermissionPrefWithDefault("remotecontrol.permission.imagery", true, tr("Load imagery layers")); 026 public static final PermissionPrefWithDefault CHANGE_SELECTION = 027 new PermissionPrefWithDefault("remotecontrol.permission.change-selection", true, tr("Change the selection")); 028 public static final PermissionPrefWithDefault CHANGE_VIEWPORT = 029 new PermissionPrefWithDefault("remotecontrol.permission.change-viewport", true, tr("Change the viewport")); 030 public static final PermissionPrefWithDefault CREATE_OBJECTS = 031 new PermissionPrefWithDefault("remotecontrol.permission.create-objects", true, tr("Create new objects")); 032 public static final PermissionPrefWithDefault READ_PROTOCOL_VERSION = 033 new PermissionPrefWithDefault("remotecontrol.permission.read-protocolversion", true, tr("Read protocol version")); 034 /** 035 * name of the preference setting to permit the remote operation 036 */ 037 public final String pref; 038 /** 039 * default preference setting 040 */ 041 public final boolean defaultVal; 042 /** 043 * text for the preference dialog checkbox 044 */ 045 public final String preferenceText; 046 047 public PermissionPrefWithDefault(String pref, boolean defaultVal, String preferenceText) { 048 this.pref = pref; 049 this.defaultVal = defaultVal; 050 this.preferenceText = preferenceText; 051 } 052 053 public boolean isAllowed() { 054 return Main.pref.getBoolean(pref, defaultVal); 055 } 056 057 public static List<PermissionPrefWithDefault> getPermissionPrefs() { 058 return Arrays.asList( 059 LOAD_DATA, IMPORT_DATA, OPEN_FILES, LOAD_IMAGERY, 060 CHANGE_SELECTION, CHANGE_VIEWPORT, 061 CREATE_OBJECTS, READ_PROTOCOL_VERSION); 062 } 063 }