首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

动态改变LIST的展示状态(动态图标实现)

2012-10-15 
动态改变LIST的显示状态(动态图标实现)项目中需要定时刷新一个LIST,且根据内容不同动态显示其状态。原来想

动态改变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";
}

热点排行