// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.gui.preferences.projection;
import java.awt.event.ActionListener;
import java.util.Collection;
import java.util.Collections;
import javax.swing.JPanel;
/**
* ProjectionChoice, that offers just one projection as choice.
*
* The GUI is an empty panel.
*/
public class SingleProjectionChoice extends AbstractProjectionChoice {
protected String code;
/**
* Constructs a new {@code SingleProjectionChoice}.
*
* @param name short name of the projection choice as shown in the GUI
* @param id unique identifier for the projection choice, e.g. "core:thisproj"
* @param code the unique identifier for the projection, e.g. "EPSG:1234"
* @param cacheDir a cache directory name
*/
public SingleProjectionChoice(String name, String id, String code, String cacheDir) {
super(name, id, cacheDir);
this.code = code;
}
/**
* Constructs a new {@code SingleProjectionChoice}.
*
* @param name short name of the projection choice as shown in the GUI
* @param id unique identifier for the projection choice, e.g. "core:thisproj"
* @param code the unique identifier for the projection, e.g. "EPSG:1234"
*/
public SingleProjectionChoice(String name, String id, String code) {
super(name, id);
this.code = code;
}
@Override
public JPanel getPreferencePanel(ActionListener listener) {
return new JPanel();
}
@Override
public String[] allCodes() {
return new String[] {code};
}
@Override
public void setPreferences(Collection<String> args) {
// Do nothing
}
@Override
public Collection<String> getPreferences(JPanel p) {
return Collections.emptyList();
}
@Override
public Collection<String> getPreferencesFromCode(String code) {
if (code.equals(this.code))
return Collections.emptyList();
else
return null;
}
@Override
public String getCurrentCode() {
return code;
}
@Override
public String getProjectionName() {
return name; // the same name as the projection choice
}
}