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.Arrays; 007import java.util.Collection; 008import java.util.Collections; 009 010public class PuwgProjectionChoice extends ListProjectionChoice { 011 012 private static final String[] CODES = { 013 "EPSG:2180", 014 "EPSG:2176", 015 "EPSG:2177", 016 "EPSG:2178", 017 "EPSG:2179" 018 }; 019 020 private static final String[] NAMES = { 021 tr("PUWG 1992 (Poland)"), 022 tr("PUWG 2000 Zone {0} (Poland)", 5), 023 tr("PUWG 2000 Zone {0} (Poland)", 6), 024 tr("PUWG 2000 Zone {0} (Poland)", 7), 025 tr("PUWG 2000 Zone {0} (Poland)", 8) 026 }; 027 028 /** 029 * Constructs a new {@code PuwgProjectionChoice}. 030 */ 031 public PuwgProjectionChoice() { 032 super(tr("PUWG (Poland)"), "core:puwg", NAMES, tr("PUWG Zone")); 033 } 034 035 @Override 036 public String getCurrentCode() { 037 return CODES[index]; 038 } 039 040 @Override 041 public String getProjectionName() { 042 return NAMES[index]; 043 } 044 045 046 @Override 047 public String[] allCodes() { 048 return Arrays.copyOf(CODES, CODES.length); 049 } 050 051 @Override 052 public Collection<String> getPreferencesFromCode(String code) { 053 for (String code2 : CODES) { 054 if (code.equals(code2)) 055 return Collections.singleton(code2); 056 } 057 return null; 058 } 059 060 @Override 061 protected String indexToZone(int index) { 062 return CODES[index]; 063 } 064 065 @Override 066 protected int zoneToIndex(String zone) { 067 for (int i=0; i<CODES.length; i++) { 068 if (zone.equals(CODES[i])) { 069 return i; 070 } 071 } 072 return defaultIndex; 073 } 074 075}