动态改变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
<mx:List id="flatLister" width="100%" height="100%" fontSize="13" alternatingItemColors="[#EEEEEE, white]"
dataProvider="{infoArrColl}" click="ListItemChangeHandler(event);"
doubleClickEnabled="true" doubleClick="ListItemDoubleClickHandler(event);" >
</mx:List>

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";
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值