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