001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.preferences.projection; 003 004import java.awt.event.ActionListener; 005import java.util.Collection; 006import java.util.Collections; 007 008import javax.swing.JPanel; 009 010/** 011 * ProjectionChoice, that offers just one projection as choice. 012 * 013 * The GUI is an empty panel. 014 */ 015public class SingleProjectionChoice extends AbstractProjectionChoice { 016 017 protected String code; 018 019 /** 020 * Constructor. 021 * 022 * @param name short name of the projection choice as shown in the GUI 023 * @param id unique identifier for the projection choice, e.g. "core:thisproj" 024 * @param code the unique identifier for the projection, e.g. "EPSG:1234" 025 * @param cacheDir a cache directory name 026 */ 027 public SingleProjectionChoice(String name, String id, String code, String cacheDir) { 028 super(name, id, cacheDir); 029 this.code = code; 030 } 031 032 public SingleProjectionChoice(String name, String id, String code) { 033 super(name, id); 034 this.code = code; 035 } 036 037 @Override 038 public JPanel getPreferencePanel(ActionListener listener) { 039 return new JPanel(); 040 } 041 042 @Override 043 public String[] allCodes() { 044 return new String[] { code }; 045 } 046 047 @Override 048 public void setPreferences(Collection<String> args) { 049 } 050 051 @Override 052 public Collection<String> getPreferences(JPanel p) { 053 return Collections.emptyList(); 054 } 055 056 @Override 057 public String toString() { 058 return name; 059 } 060 061 @Override 062 public Collection<String> getPreferencesFromCode(String code) { 063 if (code.equals(this.code)) 064 return Collections.emptyList(); 065 else 066 return null; 067 } 068 069 @Override 070 public String getCurrentCode() { 071 return code; 072 } 073 074 @Override 075 public String getProjectionName() { 076 return name; // the same name as the projection choice 077 } 078 079}