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 :