raimund@2668: package de.intevation.flys.artifacts.states.fixation;
raimund@2668:
raimund@2719: import java.util.List;
raimund@2719:
raimund@2668: import org.apache.log4j.Logger;
raimund@2668:
raimund@2719: import org.w3c.dom.Element;
raimund@2719:
raimund@2719: import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator;
raimund@2719:
raimund@2719: import de.intevation.artifacts.CallContext;
raimund@2719:
raimund@2668: import de.intevation.flys.artifacts.states.DefaultState;
raimund@2719: import de.intevation.flys.artifacts.FLYSArtifact;
raimund@2719: import de.intevation.flys.utils.FLYSUtils;
raimund@2719:
raimund@2719: import de.intevation.flys.artifacts.model.FixingsOverview;
raimund@2719: import de.intevation.flys.artifacts.model.FixingsOverviewFactory;
raimund@2719: import de.intevation.flys.artifacts.model.FixingsOverview.IdFilter;
raimund@2719: import de.intevation.flys.artifacts.model.FixingsOverview.Fixing;
raimund@2719:
raimund@2668:
raimund@2668: /**
raimund@2668: * @author Raimund Renkert
raimund@2668: */
raimund@2668: public class EventSelect extends DefaultState {
raimund@2668:
raimund@2668: /** The logger used in this class. */
raimund@2668: private static Logger logger = Logger.getLogger(EventSelect.class);
raimund@2668:
raimund@2668:
raimund@2668: /**
raimund@2668: * The default constructor that initializes an empty State object.
raimund@2668: */
raimund@2668: public EventSelect() {
raimund@2668: }
raimund@2668:
raimund@2668: @Override
raimund@2668: protected String getUIProvider() {
raimund@2668: return "fix.event_panel";
raimund@2668: }
raimund@2719:
raimund@2719: @Override
raimund@2719: protected Element createStaticData(
raimund@2719: FLYSArtifact flys,
raimund@2719: ElementCreator creator,
raimund@2719: CallContext cc,
raimund@2719: String name,
raimund@2719: String value,
raimund@2719: String type
raimund@2719: ) {
raimund@2719: int[] array = FLYSUtils.intArrayFromString(value);
raimund@2719:
raimund@2719: Element dataElement = creator.create("data");
raimund@2719: creator.addAttr(dataElement, "name", name, true);
raimund@2719: creator.addAttr(dataElement, "type", type, true);
raimund@2719:
raimund@2719: String river = FLYSUtils.getRiver(flys).getName();
raimund@2719:
raimund@2719: FixingsOverview overview = FixingsOverviewFactory.getOverview(river);
raimund@2719:
raimund@2719: for (int i = 0; i < array.length; i++) {
raimund@2719: Element itemElement = creator.create("item");
raimund@2719: creator.addAttr(
raimund@2719: itemElement,
raimund@2719: "value",
raimund@2719: String.valueOf(array[i]),
raimund@2719: true);
raimund@2719:
raimund@2719: creator.addAttr(
raimund@2719: itemElement,
raimund@2719: "label",
raimund@2719: getLabel(cc, array[i], overview),
raimund@2719: true);
raimund@2719: dataElement.appendChild(itemElement);
raimund@2719: }
raimund@2719: return dataElement;
raimund@2719: }
raimund@2719:
raimund@2719:
raimund@2719: public static String getLabel(
raimund@2719: CallContext cc,
raimund@2719: int value,
raimund@2719: FixingsOverview overview
raimund@2719: ) {
raimund@2719: logger.debug("Create label for value: " + value);
raimund@2719:
raimund@2719: IdFilter filter = new IdFilter(value);
raimund@2719: List columns = overview.filter(null, filter);
raimund@2719: if (!columns.isEmpty()) {
raimund@2719: return columns.get(0).getDescription();
raimund@2719: }
raimund@2719:
raimund@2719: return "";
raimund@2719: }
raimund@2668: }
raimund@2668: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :