`
Lianzhong.Huang
  • 浏览: 10804 次
  • 性别: Icon_minigender_1
  • 来自: 云南
最近访客 更多访客>>
社区版块
存档分类
最新评论

仿照Flexstroe3写的一个员工管理应用 (四)

    博客分类:
  • Flex
 
阅读更多

本篇内容为创建员工缩略图以及员工详细信息,如图。

 

 

1.在views.personnel包下创建一个名为EmployeeCatalogPanel的Panel组件,分别用【browse】和【details】两个state显示员工列表和员工详细信息。

 

	<s:states>
		<s:State name="details" />
		<s:State name="browse" />
	</s:states>

2. 在EmployeeCatalogPanel中创建一个BorderContainer,里面包含一个Cavas用于显示员工列表。

 

	<s:BorderContainer width="100%" height="100%" >
		<mx:Canvas id="thumbContent" width="100%" height="100%" horizontalScrollPolicy="off" />
		<!--tetails-->
	</s:BorderContainer>

 

 3. 创建一个类型为ArrayCollection的变量_catalog,用于存放Employee List,重写其set和get。

 

private var _catalog:ArrayCollection = new ArrayCollection; // 用于存放employees

[Bindable]
public function set catalog(value:ArrayCollection):void{
	_catalog = value;
	createThumbnails(); // 创建缩略图
}

public function get catalog():ArrayCollection{
	return _catalog;
}

 

 

4. 在views.personnel包下创建一个名为EmployeeCatalogThumbnail的BorderContainer组件,为其声明一个pubilc的Employee变量。

 

[Bindable]
public var employee:Employee;
 

 

5. 在EmployeeCatalogThumbnail中拖入一个Image用于显示Employee的头像,用两个label控件显示Employee的姓名和性别,参照附件。

 

6. 分别用【cols2】、【cols3】、【cols4】3个State显示EmployeeCatalogThumbnail在员工总数发生变化时的大小,总数大于9时,每行显示最多显示4名员工;总数在4~9之间,每行最多显示3名员工;否则显示2名员工。

 

width.cols4="{COL_WIDTH_4}" height.cols4="{COL_HEIGHT_4}"
width.cols3="{COL_WIDTH_3}" height.cols3="{COL_HEIGHT_3}"
width.cols2="{COL_WIDTH_3}" height.cols2="{COL_HEIGHT_3}"
 

 

7.为EmployeeCatalogThumbnail加入rollOver、rollOut、click的事件处理函数。

 

8.回到EmployeeCatalogPanel,创建一个Array对象,用于存放EmployeeCatalogThumbnails

 

private var thumbnails:Array = new Array(); // 用于存放???CatalogThumbnail
private var filterCount:int; // 
private var accepted:Dictionary = new Dictionary();

 

 

9.在createThumbnails()中,根据catalog逐个创建EmployeeCatalogThumbnail,在结束时调用layoutCatalog函数

 

private function createThumbnails():void {
	var i:int; 
	if (null != thumbnails) { // 清空缩略图
		for (i=0; i < thumbnails.length; i++) {
			thumbContent.removeElement(thumbnails[i]);
		}
	}
	
	var row:int = 0;
	var col:int = -1;
	var n:int = catalog.length;
	thumbnails = new Array(n);
	filterCount = n;
	
	// 创建CatalogThumbnails
	for (i=0; i < n; i++) {
		var thumb:EmployeeCatalogThumbnail = new EmployeeCatalogThumbnail();
		thumbnails[i] = thumb;
		thumbnails[i].showInAutomationHierarchy = true;
		thumb.employee = catalog.getItemAt(i) as Employee;
		accepted[thumb.employee] = true;
		thumbContent.addElement(thumb);
		thumb.addEventListener(EmployeeThumbEvent.DETAILS, employeeThumbEventHandler);
	}
	
	layoutCatalog(); // 布局
}
 

10. 员工管理的动画效果放在layoutCatalog中处理,请参照代码中的注释。

 

11. 在主应用程序中加入EmployeeCatalogPanel控件,并加入加载员工的方法,运行程序。

 

<personnel:EmployeeCatalogPanel id="catalogPanel" x="176" y="26" width="660" height="600"/>
<s:Button x="76" y="26" label="加载员工" click="employeeManager.queryEmployees(null)" />

 

12. 在views.personnel包下创建一个名为EmployeeDetails的BorderContainer组件,用于显示员工详细信息,其内容如图,代码参照附件。

 

13. 回到EmployeeCatalogPanel,在thumbContent下面加入EmployeeDetails

 

<s:BorderContainer width="100%" height="100%" >
	<mx:Canvas id="thumbContent" width="100%" height="100%" horizontalScrollPolicy="off" />
	<personnel:EmployeeDetails id="details" visible="false" visible.details="true"
								   width="{EmployeeCatalogThumbnail.COL_WIDTH_4 * 3}" height="100%"
								   addEmployee="thumbEventHandler(event)"
								   browse="thumbEventHandler(event)"
								   updateEmployee="thumbEventHandler(event)"/>
</s:BorderContainer>
 

 

 

14. 在showDetails()中将显示detail,并将其余的thumbnail移动到右手边。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    仿照Flexstroe3写的一个员工管理应用 (三)

    【标题】"仿照Flexstroe3写的一个员工管理应用(三)"涉及的主要知识点是基于Flexstroe3框架开发的员工管理系统。Flexstroe3是一个流行的企业级应用框架,主要用于构建富互联网应用程序(Rich Internet Applications...

    仿照Flexstroe3写的一个员工管理应用 (二)

    【标题】:“仿照Flexstroe3写的一个员工管理应用(二)” 在这个主题中,我们探讨的是如何基于Flexstore3的设计模式构建一个员工管理应用的第二个部分。Flexstore3是一个用于数据存储和管理的框架,它在JavaScript...

    仿照windows记事本写的一个小程序

    【描述】: "仿照Windows记事本的小程序是一个适合初学者实践的项目,它将帮助你掌握基础编程技巧。在这个过程中,你会遇到如何创建一个简单的图形用户界面(GUI),处理用户输入,读写文件,以及实现文本编辑功能的...

    仿照wireshark写的一个网络流量监测应用,前端用的pyqt,界面还蛮好看的,具体

    仿照wireshark写的一个网络流量监测应用,前端用的pyqt,界面还蛮好看的,具体功能包括抓包,_Network-monitoring

    仿照淘宝做的一个ASP电子商务网站

    本项目“仿照淘宝做的一个ASP电子商务网站”旨在提供一个基于B2B(Business-to-Business)模式的在线交易平台。在ASP(Active Server Pages)技术的支持下,该网站实现了诸如商品浏览、购物车、订单处理、用户管理等...

    仿照内核makefile写的一个测试小工程

    在“仿照内核makefile写的一个测试小工程”中,我们可以找到一些关键的元素和概念: 1. **目标与依赖关系**:在Makefile中,每个目标(target)都有一个或多个依赖文件(dependency)。当依赖文件改变时,Makefile...

    仿照MyBatis手写一个持久层框架对应源码

    仿照MyBatis手写一个持久层框架对应源码,适用于文档学习下载使用

    仿照知乎做的一个Java web项目,是一个sns+资讯的web应用。.zip

    仿照知乎做的一个Java web项目,是一个sns+资讯的web应用。使用SpringBoot+Mybatis+velocity开发。数据库使用了redis和mysql,同时加入了异步消息等进阶功能,同时使用python爬虫进行数据填充。 软件开发设计:应用...

    vue仿支付宝拖拽添加删除.zip

    3. **删除应用**:删除操作通常涉及一个移除元素的过程。在Vue中,可以使用`v-if`或`v-show`指令根据数据模型的状态决定某个应用组件是否显示。当用户选择删除某个应用时,对应的模型数据会被移除,从而导致该应用...

    仿照知乎做的一个Java web项目,是一个sns+资讯的web应用。

    仿照知乎做的一个Java web项目,是一个sns+资讯的web应用。使用SpringBoot+Mybatis+velocity开发。数据库使用了redis和mysql,同时加入了异步消息等进阶功能,同时使用python爬虫进行数据填充。 适合学习/练手、毕业...

    仿照微信界面写的app

    【标题】"仿照微信界面写的app"是一个项目,旨在创建一个与微信用户界面高度相似的应用程序。这个项目的核心目标是复制微信的90%的UI设计,为开发者提供一个研究和学习移动应用界面设计的实例。 【描述】中提到,这...

    任务管理器自己仿照windows任务管理器做的程序管理器

    在计算机操作系统中,任务管理器是一个至关重要的工具,它允许用户监控和控制正在运行的进程、查看系统性能信息以及管理启动项等。本项目是针对Windows任务管理器的一个仿制品,旨在提供类似的用户界面和功能,帮助...

    使用c++基于Qt框架开发的任务管理器,UI仿照win10.zip

    使用c++基于Qt框架开发的任务管理器,UI仿照win10.zip 使用c++基于Qt框架开发的任务管理器,UI仿照win10.zip 使用c++基于Qt框架开发的任务管理器,UI仿照win10.zip 使用c++基于Qt框架开发的任务管理器,UI仿照win10....

    直播课堂管理系统(MySQL+JavaWeb).zip

    直播课堂管理系统是一个基于MySQL数据库和JavaWeb技术构建的教育平台,用于实现在线教学的管理和交互。这个系统的主要功能包括课程管理、用户管理、查询操作、数据的增删改查等,旨在提供一个高效、便捷的教学环境。...

    c++版本libevent,仿照libevent写的一个服务器框架

    c++版本libevent,仿照libevent写的一个服务器框架,libevent的基本功能已实现,暂时不能在windows平台上使用,定时器是纯粹的timer wheel方式,与libevent的小根堆不一样,而且最大定时时间是固定的,暂时不支持...

    仿照知乎做的一个Java web项目

    【标题】"仿照知乎做的一个Java web项目"与【描述】中的"python项目"存在不一致,这可能是因为信息提供有误。但从标题来看,我们可以聚焦于Java Web项目的相关知识点。 Java Web项目通常指的是使用Java语言开发的、...

    C#写的记事本,仿照windows的记事本写的

    标题中的"C#写的记事本"指的是使用C#编程语言开发的一个文本编辑器,它旨在模仿Windows操作系统内置的记事本应用程序。C#是微软公司推出的一种面向对象的、现代的编程语言,常用于开发Windows桌面应用、Web应用以及...

    仿照github实现客户端

    在本项目中,"仿照github实现客户端"是开发者基于Android Studio使用MVP(Model-View-Presenter)架构模式创建的一个GitHub的安卓平台客户端应用,名为GitDroid。这个应用旨在提供与GitHub官方客户端类似的用户体验...

    C#写的仿照Windows资源管理器的小程序:File Explorer(含代码)

    本项目是使用C#编写的一个仿照Windows资源管理器的小程序——File Explorer,它实现了浏览、操作文件和目录的基本功能,为用户提供了一种熟悉且便捷的文件管理体验。 1. **基础架构**: - File Explorer基于WPF...

Global site tag (gtag.js) - Google Analytics