// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.io.remotecontrol.handler; import static org.openstreetmap.josm.tools.I18n.tr; import java.io.File; import java.util.Arrays; import org.openstreetmap.josm.actions.OpenFileAction; import org.openstreetmap.josm.gui.util.GuiHelper; import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault; /** * Opens a local file */ public class OpenFileHandler extends RequestHandler { /** * The remote control command name used to open a local file. */ public static final String command = "open_file"; @Override public String[] getMandatoryParams() { return new String[]{"filename"}; } @Override public String getUsage() { return "opens a local file in JOSM"; } @Override public String[] getUsageExamples() { return new String[] {"/open_file?filename=/tmp/test.osm"}; } @Override public PermissionPrefWithDefault getPermissionPref() { return PermissionPrefWithDefault.OPEN_FILES; } @Override protected void handleRequest() throws RequestHandlerErrorException, RequestHandlerBadRequestException { GuiHelper.runInEDTAndWait(() -> OpenFileAction.openFiles(Arrays.asList(new File(args.get("filename"))))); } @Override public String getPermissionMessage() { return tr("Remote Control has been asked to open a local file."); } @Override protected void validateRequest() throws RequestHandlerBadRequestException { // Nothing to do } }