对于dataset监听器:
可以做逻辑,好处是分开了dorado和j2se的api,使得后面的框架有重用性,此时的dataset类似controller的功能,但毕竟是ajax调用,不是传统mvc的做法。并且运行的过程,无论循环放在service里面还是放在此处,这个试图方法必须要作完了才能够结束此方法,性能上是一样的。
所以综合考虑 对于dorado的监听器方法中需要实现部分框架式的代码。
代码如下:
java 代码
- public void afterUpdateData(Dataset dataset)
- throws Exception {
- System.out.println("========afterUpdateData========");
- RecordIterator ri = dataset.recordIterator();
- ri.setVisibility(Dataset.FILTER_CHANGED);
- Record record = null;
- ClientGroupClient temp = null;
- List deletes = new ArrayList();
- List inserts = new ArrayList();
- List updates = new ArrayList();
- while (ri.hasNext()) {
- temp = new ClientGroupClient();
- record = ri.nextRecord();
- //temp.setObjectID(new Long(SecurityUtils.getLoginUserInfo().getLoginId()));
- String oid = record.getString("objectID");
- if(oid!=null)
- temp.setObjectID(new Long(oid));
- temp.setCreater("admin");
- temp.setGroupID(new Long(record.getLong("groupID")));
- temp.setClientID(record.getString("clientID"));
- temp.setUpdater("admin");
- switch (record.getState()) {
- case Record.STATE_NEW:
- inserts.add(temp);
- break;
- case Record.STATE_MODIFIED:
- updates.add(temp);
- break;
- case Record.STATE_DELETED:
- deletes.add(temp);
- break;
- default:
- }
- }
- MessageHelper.addMessage(DoradoContext.getContext(), cgcservice.batchCRUD(inserts, updates, deletes));
- cgcservice = null;
- }