ingo@2709: package de.intevation.flys.artifacts.states; ingo@2709: ingo@2709: import org.apache.log4j.Logger; ingo@2709: ingo@2709: import de.intevation.artifacts.Artifact; ingo@2709: import de.intevation.artifacts.CallContext; ingo@2709: ingo@2709: import de.intevation.artifacts.common.model.KVP; ingo@2709: ingo@2709: ingo@2709: public class SoundingsSelect extends MultiStringArrayState { ingo@2709: ingo@2709: public static final String SOUNDINGS = "soundings"; ingo@2709: ingo@2709: ingo@2709: private static final Logger logger = Logger.getLogger(SoundingsSelect.class); ingo@2709: ingo@2709: ingo@2709: @Override ingo@2709: public String getUIProvider() { ingo@2709: return "parameter-matrix"; ingo@2709: } ingo@2709: ingo@2709: ingo@2709: @Override ingo@2709: protected KVP[] getOptions( ingo@2709: Artifact artifact, ingo@2709: String parameterName ingo@2709: ) ingo@2709: throws IllegalArgumentException ingo@2709: { ingo@2709: logger.debug("Get options for parameter: '" + parameterName + "'"); ingo@2709: ingo@2709: if (!testParameterName(parameterName)) { ingo@2709: throw new IllegalArgumentException( ingo@2709: "Invalid parameter for state: '" + parameterName + "'"); ingo@2709: } ingo@2709: ingo@2709: KVP[] kvp = new KVP[10]; ingo@2709: ingo@2709: for (int i = 0; i < 10; i++) { ingo@2709: String id = String.valueOf(i); ingo@2709: String value = "#" + id; ingo@2709: ingo@2709: kvp[i] = new KVP(id, value); ingo@2709: } ingo@2709: ingo@2709: return kvp; ingo@2709: } ingo@2709: ingo@2709: ingo@2709: @Override ingo@2709: protected String getLabelFor( ingo@2709: CallContext cc, ingo@2709: String parameterName, ingo@2709: String value ingo@2709: ) throws IllegalArgumentException ingo@2709: { ingo@2709: if (!testParameterName(parameterName)) { ingo@2709: throw new IllegalArgumentException( ingo@2709: "Invalid parameter for state: '" + parameterName + "'"); ingo@2709: } ingo@2709: ingo@2709: return "#" + value; ingo@2709: } ingo@2709: ingo@2709: ingo@2709: /** ingo@2709: * This method might be used to test, if a parameter name is handled by this ingo@2709: * state. ingo@2709: * ingo@2709: * @param parameterName The name of a parameter. ingo@2709: * ingo@2709: * @return true, if parameterName is one of MAIN_CHANNEL or ingo@2709: * TOTAL_CHANNEL. Otherwise false. ingo@2709: */ ingo@2709: protected boolean testParameterName(String parameterName) { ingo@2709: if (parameterName == null || parameterName.length() == 0) { ingo@2709: return false; ingo@2709: } ingo@2709: else if (parameterName.equals(SOUNDINGS)) { ingo@2709: return true; ingo@2709: } ingo@2709: else { ingo@2709: return false; ingo@2709: } ingo@2709: } ingo@2709: } ingo@2709: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :