// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.preferences.projection; import static org.openstreetmap.josm.tools.I18n.tr; import java.util.Collection; import java.util.Collections; import org.openstreetmap.josm.Main; public class GaussKruegerProjectionChoice extends ListProjectionChoice { private static String[] zones = {"2", "3", "4", "5"}; /** * Constructs a new {@code GaussKruegerProjectionChoice}. */ public GaussKruegerProjectionChoice() { super(tr("Gau\u00DF-Kr\u00FCger"), /* NO-ICON */ "core:gauss-krueger", zones, tr("GK Zone")); } @Override public String getCurrentCode() { return "EPSG:"+Integer.toString(31466 + index); } @Override protected String indexToZone(int index) { return Integer.toString(index + 2); } @Override protected int zoneToIndex(String zone) { try { return Integer.parseInt(zone) - 2; } catch (NumberFormatException e) { Main.warn(e); } return defaultIndex; } @Override public String[] allCodes() { String[] codes = new String[4]; for (int zone = 2; zone <= 5; zone++) { codes[zone-2] = "EPSG:" + (31464 + zone); } return codes; } @Override public Collection<String> getPreferencesFromCode(String code) { //zone 2 = EPSG:31466 up to zone 5 = EPSG:31469 for (int zone = 2; zone <= 5; zone++) { String epsg = "EPSG:" + (31464 + zone); if (epsg.equals(code)) return Collections.singleton(String.valueOf(zone)); } return null; } @Override public String getProjectionName() { return tr("Gau\u00DF-Kr\u00FCger Zone {0}", index + 2); } }