ingo@1115: /* ingo@1115: * Copyright (c) 2010 by Intevation GmbH ingo@1115: * ingo@1115: * This program is free software under the LGPL (>=v2.1) ingo@1115: * Read the file LGPL.txt coming with the software for details ingo@1115: * or visit http://www.gnu.org/licenses/ if it does not exist. ingo@1115: */ ingo@1115: tim@335: package de.intevation.gnv.state.profile.horizontal; tim@335: ingo@493: import de.intevation.artifacts.CallContext; ingo@493: import de.intevation.artifacts.CallMeta; tim@335: tim@335: import de.intevation.gnv.artifacts.ressource.RessourceFactory; ingo@493: tim@335: import de.intevation.gnv.geobackend.base.Result; ingo@493: tim@335: import de.intevation.gnv.state.StateBase; ingo@493: tim@335: import de.intevation.gnv.state.describedata.DefaultKeyValueDescribeData; tim@335: import de.intevation.gnv.state.describedata.KeyValueDescibeData; tim@335: import de.intevation.gnv.state.describedata.NamedArrayList; tim@335: import de.intevation.gnv.state.describedata.NamedCollection; ingo@493: tim@335: import de.intevation.gnv.state.exception.StateException; tim@335: ingo@493: import java.util.ArrayList; ingo@493: import java.util.Collection; ingo@607: import java.util.List; ingo@493: tim@335: /** ingo@811: * This states handles coordinate inputs. sascha@835: * sascha@780: * @author Tim Englich tim@335: */ tim@335: public class NorthSouthEastWestState extends StateBase { tim@335: sascha@778: tim@335: /** tim@335: * The UID of this Class tim@335: */ tim@335: private static final long serialVersionUID = -7989531326553305293L; tim@335: ingo@638: protected String ipos; ingo@638: protected String jpos; ingo@607: tim@335: /** tim@335: * Constructor tim@335: */ tim@335: public NorthSouthEastWestState() { tim@335: } tim@335: ingo@811: tim@335: @Override ingo@607: protected List purifyResult(Collection result, String uuid) { ingo@607: List describeData = new ArrayList(); ingo@607: ingo@607: NamedCollection keyValueDescibeData = ingo@607: new NamedArrayList(dataName, 2); ingo@607: tim@335: keyValueDescibeData.setMultiSelect(super.dataMultiSelect); ingo@638: keyValueDescibeData.add(new DefaultKeyValueDescribeData( ingo@638: "IPOSITION", ipos)); ingo@638: keyValueDescibeData.add(new DefaultKeyValueDescribeData( ingo@638: "JPOSITION", jpos)); tim@335: describeData.add(keyValueDescibeData); ingo@607: ingo@607: return describeData; ingo@607: } ingo@607: ingo@811: ingo@607: @Override ingo@607: public void initialize(String uuid, CallContext context) ingo@607: throws StateException ingo@607: { ingo@638: CallMeta callMeta = context.getMeta(); ingo@638: RessourceFactory factory = RessourceFactory.getInstance(); ingo@638: ingo@638: // XXX Workarround - we need these strings in purifyResult, but have no sascha@778: // CallMeta object there which is necessary to get resources from sascha@778: // RessourceFactory. Storing the strings here is not nice, because the ingo@638: // Locale object could change! ingo@638: ipos = factory.getRessource( ingo@638: callMeta.getLanguages(), "iposition", "iposition"); ingo@638: jpos = factory.getRessource( ingo@638: callMeta.getLanguages(), "jposition", "jposition"); tim@335: } tim@335: } sascha@836: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :