001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.preferences.projection; 003 004import static org.openstreetmap.josm.tools.I18n.tr; 005 006import java.util.Collection; 007import java.util.Collections; 008 009import org.openstreetmap.josm.Main; 010 011public class GaussKruegerProjectionChoice extends ListProjectionChoice { 012 013 private static String[] zones = {"2", "3", "4", "5"}; 014 015 /** 016 * Constructs a new {@code GaussKruegerProjectionChoice}. 017 */ 018 public GaussKruegerProjectionChoice() { 019 super(tr("Gau\u00DF-Kr\u00FCger"), /* NO-ICON */ "core:gauss-krueger", zones, tr("GK Zone")); 020 } 021 022 @Override 023 public String getCurrentCode() { 024 return "EPSG:"+Integer.toString(31466 + index); 025 } 026 027 @Override 028 protected String indexToZone(int index) { 029 return Integer.toString(index + 2); 030 } 031 032 @Override 033 protected int zoneToIndex(String zone) { 034 try { 035 return Integer.parseInt(zone) - 2; 036 } catch (NumberFormatException e) { 037 Main.warn(e); 038 } 039 return defaultIndex; 040 } 041 042 @Override 043 public String[] allCodes() { 044 String[] codes = new String[4]; 045 for (int zone = 2; zone <= 5; zone++) { 046 codes[zone-2] = "EPSG:" + (31464 + zone); 047 } 048 return codes; 049 } 050 051 @Override 052 public Collection<String> getPreferencesFromCode(String code) { 053 //zone 2 = EPSG:31466 up to zone 5 = EPSG:31469 054 for (int zone = 2; zone <= 5; zone++) { 055 String epsg = "EPSG:" + (31464 + zone); 056 if (epsg.equals(code)) 057 return Collections.singleton(String.valueOf(zone)); 058 } 059 return null; 060 } 061 062 @Override 063 public String getProjectionName() { 064 return tr("Gau\u00DF-Kr\u00FCger Zone {0}", index + 2); 065 } 066 067}