| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package xin.glue.ui.common.component;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import com.posdata.glue.msg.util.PosMessageUtil;
- import com.posdata.glue.util.xml.PosXMLUtil;
- public class PosMessageMap {
- public static Map getMessageMap(String MsgID) {
- return getMessageMap(MsgID, null);
- }
- public static Map getMessageMap(String MsgID, String layoutXML) {
- MsgID = MsgID.trim();
- if (layoutXML == null)
- layoutXML = "layout/" + MsgID + "-msg.xml";
- else
- layoutXML = "layout/" + layoutXML.trim() + "-msg.xml";
- Object obj = null;
- try {
- obj = (new PosXMLUtil()).loadXMLFromClasspath(layoutXML);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- obj = PosMessageUtil.getSource(obj, "msgs");
- obj = PosMessageUtil.getSource(obj, "msg");
- Map map = null;
- if (PosMessageUtil.isList(obj)) {
- int count = ((List)obj).size();
- for (int i=0; i<count; i++) {
- map = (Map)PosMessageUtil.getSource(obj, String.valueOf(i));
- if (map.get("id").equals(MsgID)) break;
- }
- } else map = (Map) obj;
- obj = PosMessageUtil.getSource(map, "attribute");
- Map fields = new HashMap();
- if (PosMessageUtil.isList(obj)) {
- int count = ((List)obj).size();
- Collections.sort((List)obj, new Comparator() {
- public int compare(Object o1, Object o2) {
- Map m1 = (Map)o1;
- Map m2 = (Map)o2;
- return (Integer.parseInt(m1.get("seq").toString()) - Integer.parseInt(m2.get("seq").toString()));
- }});
- for (int i=0; i<count; i++) {
- map = (Map)PosMessageUtil.getSource(obj, String.valueOf(i));
- fields.put(map.get("id"), map.get("length"));
- }
- }
-
- return fields;
- }
- }
|