ingo@927: package de.intevation.flys.artifacts.states; ingo@927: ingo@1622: import java.io.File; ingo@1622: ingo@1622: import org.w3c.dom.Element; ingo@1622: ingo@1622: import org.apache.log4j.Logger; ingo@1622: ingo@1622: import de.intevation.artifacts.CallContext; ingo@1622: ingo@1622: import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; ingo@1622: ingo@1743: import de.intevation.flys.artifacts.FLYSArtifact; ingo@1622: import de.intevation.flys.model.DGM; ingo@1622: ingo@1622: ingo@927: /** ingo@927: * @author Ingo Weinzierl ingo@927: */ ingo@927: public class DGMSelect extends DefaultState { ingo@927: ingo@1622: private static final Logger logger = Logger.getLogger(DGMSelect.class); ingo@1622: ingo@1622: ingo@927: @Override ingo@927: protected String getUIProvider() { ingo@1172: return "dgm_datacage_panel"; ingo@927: } ingo@1622: ingo@1622: ingo@1622: @Override ingo@1622: protected Element createStaticData( ingo@1743: FLYSArtifact flys, ingo@1622: ElementCreator creator, ingo@1622: CallContext cc, ingo@1622: String name, ingo@1622: String value, ingo@1622: String type ingo@1622: ) { ingo@1622: Element dataElement = creator.create("data"); ingo@1622: creator.addAttr(dataElement, "name", name, true); ingo@1622: creator.addAttr(dataElement, "type", type, true); ingo@1622: ingo@1622: Element itemElement = creator.create("item"); ingo@1622: creator.addAttr(itemElement, "value", value, true); ingo@1622: ingo@1622: creator.addAttr(itemElement, "label", getLabel(cc, value), true); ingo@1622: dataElement.appendChild(itemElement); ingo@1622: ingo@1622: return dataElement; ingo@1622: } ingo@1622: ingo@1622: ingo@1622: public static String getLabel(CallContext cc, String value) { ingo@1622: logger.debug("Create label for value: " + value); ingo@1622: ingo@1622: try { ingo@1622: DGM dgm = DGM.getDGM(Integer.parseInt(value)); ingo@1622: ingo@1622: File file = new File(dgm.getPath()); ingo@1622: return file.getName(); ingo@1622: } ingo@1622: catch (NumberFormatException nfe) { ingo@1622: logger.warn("Cannot parse int value: '" + value + "'"); ingo@1622: } ingo@1622: ingo@1622: return ""; ingo@1622: } ingo@927: } ingo@927: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :