57 lines
1.4 KiB
Java
57 lines
1.4 KiB
Java
package org.hwo.servicelink.register.basetypes;
|
|
|
|
import java.util.Hashtable;
|
|
|
|
import javax.xml.xpath.XPathConstants;
|
|
|
|
import org.hwo.servicelink.register.RegisterType;
|
|
import org.hwo.xml.NodeListIterator;
|
|
import org.w3c.dom.Element;
|
|
import org.w3c.dom.Node;
|
|
import org.w3c.dom.NodeList;
|
|
|
|
public class IndexedList extends RegisterType {
|
|
|
|
Hashtable<java.lang.Integer, String> listItems;
|
|
|
|
public IndexedList(){
|
|
super("IndexedList");
|
|
listItems = new Hashtable<java.lang.Integer, String>();
|
|
}
|
|
|
|
@Override
|
|
public void createFromTypeNode(Node typeNode) {
|
|
try {
|
|
NodeList itemNodes = (NodeList)getXPath().evaluate("List/Item", typeNode, XPathConstants.NODESET);
|
|
for (Node itemNode: NodeListIterator.create(itemNodes)){
|
|
Element itemElement = (Element)itemNode;
|
|
|
|
java.lang.Integer ind = java.lang.Integer.parseInt( itemElement.getAttribute("index") );
|
|
listItems.put(ind, itemElement.getFirstChild().getNodeValue());
|
|
}
|
|
|
|
} catch (Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
String getListItem(java.lang.Integer index){
|
|
return listItems.get(index);
|
|
}
|
|
|
|
Hashtable<java.lang.Integer, String> getListItems(){
|
|
return listItems;
|
|
}
|
|
|
|
|
|
@Override
|
|
public String getDisplayValue(Object regValue) {
|
|
if (listItems.containsKey(valueAsInteger(regValue))){
|
|
return listItems.get(valueAsInteger(regValue));
|
|
} else {
|
|
return String.format("(%d)", valueAsInteger(regValue));
|
|
}
|
|
}
|
|
|
|
}
|