当前位置:我的异常网» Web前端 » 动态改变LIST的展示状态(动态图标实现)
动态改变LIST的展示状态(动态图标实现)
www.myexceptions.net 网友分享于:2013-10-16 浏览:34次
动态改变LIST的显示状态(动态图标实现)
项目中需要定时刷新一个LIST,且根据内容不同动态显示其状态。原来想用CHECKBOX来实现,但由于鼠标可以对显示正确的CHECKBOX进行修改,所以没有达到状态变更后不能修改的效果。相了很久,后来通过对与LIST的dataProvider进行绑定的ArrayCollection的每个对象的ICON进行动态生成解决了问题。:)
代码如下:
1、在动态监控的MXML显示页面,对状态图标类说明,用于TIMER刷新LIST的dataProvider显示图标。
//2011-03-31
[Bindable]
[Embed(source="images/playNotFinish.jpg")]
public var playNotFinishPicFile:Class;
[Bindable]
[Embed(source="images/playFinish.jpg")]
public var playFinishPicFile:Class;
[Bindable]
[Embed(source="images/playStop.jpg")]
public var playStopPicFile:Class;
[Bindable]
[Embed(source="images/playDel.jpg")]
public var playDelPicFile:Class;
2、LIST设置绑定的ArrayCollection--- infoArrColl
dataProvider="{infoArrColl}" click="ListItemChangeHandler(event);"
doubleClickEnabled="true" doubleClick="ListItemDoubleClickHandler(event);" >
3、定时器刷新,MXML初始化时载入
autoRefreshTimer=new Timer(1000*sysinfoobjvo.monitorPanelRefreshTimes);
autoRefreshTimer.addEventListener(TimerEvent.TIMER,autoRefreshTimer_timer);
autoRefreshTimer.start();
4、调用方法直接CALL后台的RemoteObject 的JAVA方法构建infoArrColl,这里不说了。
5、后台的JAVA方法构建infoArrColl,在这里是oldList
for (int j = 0; j < oldList.size(); j++) {
xml_fltinfo oldObj = (xml_fltinfo) oldList.get(j);
if ((!oldObj.getPoint()) && (oldObj.getFinishTime().equals(""))) {
oldObj.setItemStatus(3);
oldObj.setProcess(100);
// 2011-03-31
oldObj.setIcon(BdsConstant.playFinishPicFile);
oldObj.setIsSelected(true);
oldObj.setFinishTime(CommonFun.getCurTime());
}
}
主要通过增加icon属性,并动态对其赋予不同的图标名称来实现OBJECT2VO映射后的图标显示
public class BdsConstant {
static String playFinishPicFile="playFinishPicFile";
static String playDelPicFile="playDelPicFile";
static String playNotFinishPicFile="playNotFinishPicFile";
static String playStopPicFile="playStopPicFile";
}
文章评论