91f85de5595c6e52d2ac4d5f4820ceb4def72b2c.svn-base 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package xin.glue.ui.common;
  2. import java.util.HashMap;
  3. import java.util.Iterator;
  4. import java.util.Map;
  5. import xin.glue.ui.common.component.PosMessageMap;
  6. import com.posdata.glue.biz.constants.PosBizControlConstants;
  7. import com.posdata.glue.context.PosContext;
  8. import com.posdata.glue.dao.vo.PosRowSet;
  9. import com.posdata.glue.msg.PosMESMessageImpl;
  10. import com.posdata.glue.msg.PosMessage;
  11. public class PosMsgInterface extends PosDBEngine {
  12. public String runActivity(PosContext ctx) {
  13. String msgID = getProperty("msgID");
  14. Map map = PosMessageMap.getMessageMap(msgID, getProperty("layout"));
  15. if (map == null || map.size() == 0)
  16. return PosBizControlConstants.SUCCESS;
  17. Initialize();
  18. PosMessage message = new PosMESMessageImpl();
  19. Map fields = new HashMap();
  20. fields.putAll(map);
  21. setParamMap(ctx, "sqlkey", "param");
  22. PosRowSet rowSet = (PosRowSet) Execute(ctx, "sqlkey", "param");
  23. if (rowSet != null) {
  24. for (Iterator iterator = rowSet.next().getAttributes().entrySet().iterator(); iterator.hasNext();) {
  25. Map.Entry entry = (Map.Entry) iterator.next();
  26. message.setObject(entry.getKey().toString(), entry.getValue());
  27. fields.remove(entry.getKey());
  28. }
  29. }
  30. for (Iterator iterator = fields.entrySet().iterator(); iterator.hasNext();) {
  31. Map.Entry entry = (Map.Entry) iterator.next();
  32. Object key = entry.getKey();
  33. Object value = ctx.get(key);
  34. if (value instanceof String[])
  35. message.setObject(key.toString(), ((String[])value)[0]);
  36. else
  37. message.setObject(key.toString(), value);
  38. }
  39. if ("true".equals(getProperty("parseMessage"))) {
  40. StringBuffer sb = new StringBuffer(1024);
  41. int length = 0;
  42. for (Iterator iterator = fields.entrySet().iterator(); iterator.hasNext();) {
  43. Map.Entry entry = (Map.Entry) iterator.next();
  44. sb.append(message.get(entry.getKey().toString()));
  45. length += Integer.parseInt(entry.getValue().toString());
  46. sb.setLength(length);
  47. }
  48. message.setTC(sb.toString());
  49. message.setTCID(msgID);
  50. }
  51. ctx.setMessage(message);
  52. return PosBizControlConstants.SUCCESS;
  53. }
  54. }