- 浏览: 517107 次
- 性别:
- 来自: 长沙
-
文章分类
最新评论
-
wang1352083:
正在搭建tomcat源码.一会儿参照楼主经验搭建spring源 ...
Eclipse中阅读开源项目代码 -
w123456789zzzz:
谢谢你,问题解决了,楼主万岁!!
eclipse中如何安装插件 -
xiaoLee:
...
软件性能测试论文草稿 -
铃儿响叮当:
...
使用firefox调试js -
gogopengyou:
很细心啊
eclipse中如何安装插件
1、背景介绍:系统中含有事件模块,EventListView.mxml为对应的事件列表。其他有引用到事件列表的页面如下:
“资源管理”模块的主机页面和虚拟机页面;
”应用平台“模块对应的事件页面。
2、我起初在引用模块都是new EventListView();断点调试发现EventListView对应的查询事件的方法getEventsDataPage()总会被多次调用... ... 追踪发现原来mate框架中的Injectors是与对象一一对应的。
3、新建一个单例类并且在其中初始化EventListView,系统都通过单例类去获得EventLiseView的实例。
4、新问题:如何在不同分辨率下控制dataGrid中显示的事件数?
这种解决方式的确是可以让dataGrid根据页面的大小安排数目适当事件显示。现在的情况是系统中有A/B/C/D四个页面都引用到了事件列表并且每个页面的大小都不相同;这样子上述的方法就出现了问题:我每次切入新页面时事件列表的的高度还都是上一个页面的高度也即dataGrid.height是上一个引用事件列表页面的高度。
5、事件绑定
SystemEventView.mxml
在SystemEventModel中如图所示的方式进行引用:
在model中进行断点调试却出现了图上的错误,说是断点处是不可达的。
——换一种方式进行绑定:
变种:取消对第25行的注释同事注释第4行——queryAllEvents都没有能被调用。
6、继续想办法解决4... ... 事件绑定得作为专题进行学习。
—————— 附: 针对4的补充说明:——————
mate配置:
考虑到mate中Injectors引发的多次查询动作,我采用了单例模式,如下:
model为空异常:
第19行报model为空的异常!!!——为什么?
我的权宜之计是在此处添加了一个定时器,等待一秒之后再执行查询事件的方法此时model已经不为null了。
在此方法中断点调试时发现会生成ResizeEventListView1~4(resize对象的个数与被引用的个数一致); 因为EventListView只会执行一次CreateComplete方法导致只有第一次加载EventListView时通过如下的方法计算出来的RowCount值才是正确的:
“资源管理”模块的主机页面和虚拟机页面;
”应用平台“模块对应的事件页面。
2、我起初在引用模块都是new EventListView();断点调试发现EventListView对应的查询事件的方法getEventsDataPage()总会被多次调用... ... 追踪发现原来mate框架中的Injectors是与对象一一对应的。
3、新建一个单例类并且在其中初始化EventListView,系统都通过单例类去获得EventLiseView的实例。
4、新问题:如何在不同分辨率下控制dataGrid中显示的事件数?
public function eventCountPerDataPage():void{ if(dataPage.dataPage==null) dataPage.dataPage = new DataPage(); var rowCount:int = dataGrid.rowCount = (dataGrid.height-dataGrid.headerHeight)/dataGrid.rowHeight; dataPage.countPerPage = rowCount; }
这种解决方式的确是可以让dataGrid根据页面的大小安排数目适当事件显示。现在的情况是系统中有A/B/C/D四个页面都引用到了事件列表并且每个页面的大小都不相同;这样子上述的方法就出现了问题:我每次切入新页面时事件列表的的高度还都是上一个页面的高度也即dataGrid.height是上一个引用事件列表页面的高度。
5、事件绑定
SystemEventView.mxml
private function initEventListView():void{ eventListView.percentHeight = 100; eventListView.percentWidth = 100; eventListView.paddingLeft = 0; eventListView.paddingRight = 0; eventListView.paddingTop = 0; eventListView.paddingBottom = 0; eventListView.checkBoxPaddingLeft = 15; eventListView.lookDetailPaddingLeft = 18; eventListView.dgRowHeight = 25; eventContainer.addElement(eventListView); this.dispatchEvent(new Event("EventListViewCreated")); } [Bindable(Event="EventListViewCreated")] private function queryAllEvents():void{ if(firstTimeInitializeEventModel==""){ eventListView._referenceModuleName=""; eventListView.initEventPage(); } }
在SystemEventModel中如图所示的方式进行引用:

在model中进行断点调试却出现了图上的错误,说是断点处是不可达的。
——换一种方式进行绑定:
private function init():void { creationCompleteFlag = true; ModuleCreationCompleteFlagHelper.getInstance().eventManagementModuleCreationComplete = true; this.addEventListener("EventListViewCreated",queryAllEvents); } public function datacenterSwitch(event:DatacenterRemoteEvent):void { eventListView.initEventPage(); } private function initEventListView():void{ eventListView.percentHeight = 100; eventListView.percentWidth = 100; eventListView.paddingLeft = 0; eventListView.paddingRight = 0; eventListView.paddingTop = 0; eventListView.paddingBottom = 0; eventListView.checkBoxPaddingLeft = 15; eventListView.lookDetailPaddingLeft = 18; eventListView.dgRowHeight = 25; eventContainer.addElement(eventListView); this.dispatchEvent(new Event("EventListViewCreated")); } //[Bindable(Event="EventListViewCreated")] private function queryAllEvents(evt:Event):void{ if(firstTimeInitializeEventModel==""){ eventListView._referenceModuleName=""; eventListView.initEventPage(); } }
变种:取消对第25行的注释同事注释第4行——queryAllEvents都没有能被调用。
6、继续想办法解决4... ... 事件绑定得作为专题进行学习。
—————— 附: 针对4的补充说明:——————
mate配置:
<Injectors target="{EventListView}" > <PropertyInjector targetKey="model" source="{EventListModel}"/> <ListenerInjector eventType="{DataPageEvent.EVENT_DATAPAGECOMPONENT_CHANGED}" method="initDataPageComponent"/> <ListenerInjector eventType="{EventsDeleteEvent.EVENTS_DELETE_RESULT}" method="deleteEventsResult"/> <ListenerInjector eventType="{MarkAsReadedEvent.MARK_AS_READED_RESULT}" method="markedAsReadedResult"/> <ListenerInjector eventType="{EventsGetEvent.EVENTS_GET_FROM_TOOLBAR}" method="getEventsDataPageOnClickToolBarInEventModule"/> </Injectors>
考虑到mate中Injectors引发的多次查询动作,我采用了单例模式,如下:
public static function getEventViewInstance():EventListView{ if(eventListView==null){ eventListView = new EventListView(); } return eventListView; }
model为空异常:
[Bindable] public var model:EventListModel; private function getEventsDataPage(event:MouseEvent,referenceModuleName:String):void {//点击导航中的”事件“或者在其他引用模块查询事件 if(referenceModuleName==""){//当点击导航中的"事件"进行查询时,清空查询条件 queryEventCondition.cleanQueryCondition(); } if(event != null && dataPage.dataPage != null) { dataPage.dataPage.startPageIndex = 1; } if(this.currentState == "filter" ) { queryEventCondition.level = levelComb.selectedItem.value as String; queryEventCondition.statusStr = (readStatus.selectedValue==null) ? null :readStatus.selectedValue.toString(); queryEventCondition.eventCategory = (eventType.selectedValue==null) ? null : eventType.selectedValue.toString(); queryEventCondition.startTime = startTime; queryEventCondition.endTime = endTime; } eventCountPerDataPage(); model.getEvents(queryEventCondition,dataPage.dataPage); }
第19行报model为空的异常!!!——为什么?
我的权宜之计是在此处添加了一个定时器,等待一秒之后再执行查询事件的方法此时model已经不为null了。
在此方法中断点调试时发现会生成ResizeEventListView1~4(resize对象的个数与被引用的个数一致); 因为EventListView只会执行一次CreateComplete方法导致只有第一次加载EventListView时通过如下的方法计算出来的RowCount值才是正确的:
public function eventCountPerDataPage():void{ if(dataPage.dataPage==null) dataPage.dataPage = new DataPage(); var rowCount:int = dataGrid.rowCount = (dataGrid.height-dataGrid.headerHeight)/dataGrid.rowHeight; dataPage.countPerPage = rowCount; }而后面加载EventListView时计算出来的dataGrid.height都是上一次加载的EventListView的dataGrid.height。
发表评论
-
手续材料
2012-03-25 22:40 0所发生大幅 <SERVICE CLASS ... -
amcharts
2011-12-18 23:46 41171、AmLegend 2、当宽度不够时出现,解决方案设置Ca ... -
flex4中使用backgroundImage
2011-04-20 17:04 16851、 方式一 可以用BorderContainer把内容包涵进 ... -
Flex PopUpManager总结
2011-04-10 23:51 1229PopUpManager弹出的普通组件与TitleWindow ... -
右键&FVNC
2011-03-28 20:46 14201、需了解的Flex类:Security、 ProgressE ... -
3月份FLex工作日志
2011-03-20 21:39 10911、异常:LabelToolTip655 can only h ... -
我与GEF有个约会
2011-03-13 23:19 869我们的Desinger是基于GEF做的,而如今我可能需要 ... -
Flex组件以几何中心作为中心进行缩放
2011-01-26 21:38 1454控制BlurPopUpEffect控制弹出窗体的位置 ... -
Flex初始化探究
2011-01-26 21:37 923a、 FLex的初始化顺序? 拓展 ... -
Flex样式、图片以及组件
2011-01-20 19:22 27021、 指定组件的相对高度可以使用percentWidth和pe ... -
Flex个人知识库之Apple组件
2011-01-04 23:08 15222、 如何将网页上复制 ... -
OffLineMap替代方案研究
2010-12-30 22:33 992这个dc展示方案始终是得解决的,我感觉鸭梨很大。花在这个 ... -
Java-Flex通信
2010-12-27 23:09 1375背景:在内网访问 ... -
Flex个人知识库之样式皮肤
2010-12-18 08:58 969学习Flex已经有4、5个月了,也算是入了门吧,基本的 ... -
Flex个人知识库之工作日志2
2010-12-15 22:51 9981、 在dataGrid中设置某特定单元格的样式 使 ... -
Flex资源导航
2010-12-12 09:42 646将自己平时遇到的一些不错的FLex站点、博客等予以记录, ... -
个人FLex知识库之工作笔记
2010-12-12 09:18 1037[size=large]1、 private functio ... -
几条常用的Flex代码
2010-12-12 09:11 6751.复制内容到系统剪贴板 System.setCli ... -
中国城市经纬度数据
2010-12-10 08:38 2255前言暂时空缺... ... – – 表的结构 `cit ... -
Java-Pojo类转Flex-Vo类
2010-12-09 22:50 1320[size=large] 在使用openamf的类映射功能 ...
评论