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