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}