`

Cairngorm2/3 框架 烟水晶 HelloWorld 源代码案例

    博客分类:
  • Flex
 
阅读更多
我使用的是Flash Builder 4.6和BlazeDS4;附件为Cairgorm2所需的类库和我写的HelloWorld源代码

标准项目结构如图所示:



调用Java端List成功后如图所示:

package com.demo.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class UserService {

	public List getUserList() {
		List resultList = new ArrayList();
		for (int i = 1; i <= 10; i++) {
			Map map = new HashMap();
			map.put("id", i);
			map.put("name", "name" + i);
			map.put("age", 17 + i);
			map.put("email", "China" + i + "@gmail.com");
			resultList.add(map);
		}
		return resultList;
	}
}

package com.user.command
{
	import com.adobe.cairngorm.commands.ICommand;
	import com.adobe.cairngorm.control.CairngormEvent;
	import com.user.event.UserEvent;
	import com.user.service.UserProxy;
	
	import mx.collections.ArrayCollection;
	import mx.rpc.IResponder;
	import com.user.model.UserModelLocator;
	import mx.controls.Alert;
	
	public class UserCommand implements ICommand, IResponder
	{
		public function UserCommand()
		{
		}
		
		//执行调用
		public function execute(event:CairngormEvent):void
		{
			var userEvent:UserEvent=UserEvent(event);
			var userService:UserProxy=new UserProxy(this);
			userService.queryStudentList();
		}
		
		//更新模型
		public function result(data:Object):void
		{
			var userList:ArrayCollection=data.result as ArrayCollection;
			UserModelLocator.getInstance().userList=userList;
		}
		
		public function fault(info:Object):void
		{
			Alert.show("Fail Error ");
		}
	}
}

package com.user.service
{
	import com.adobe.cairngorm.business.ServiceLocator;
	import mx.rpc.IResponder;
	public class UserProxy
	{
		private var responder:IResponder;
		private var service:Object;
		public function UserProxy(responder:IResponder)
		{
			//获取远程对象
			this.service=ServiceLocator.getInstance().getRemoteObject("UserService");
			this.responder=responder;
		}
		public function queryStudentList():void
		{
			//调用方法
			var call:Object=this.service.getUserList();
			call.addResponder(responder);
		}
	}
}

<?xml version="1.0" encoding="utf-8"?>
<s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009"
		 xmlns:s="library://ns.adobe.com/flex/spark"
		 xmlns:mx="library://ns.adobe.com/flex/mx"
		 width="400" height="300" creationComplete="init()">
	<fx:Script>
		<![CDATA[
			import com.user.event.UserEvent;
			
			import mx.collections.ArrayCollection;
			import com.adobe.cairngorm.control.CairngormEventDispatcher;
			[Bindable]
			public var userList:ArrayCollection;
			private function init():void{
				
				var userEvent:UserEvent=new UserEvent();
				CairngormEventDispatcher.getInstance().dispatchEvent(userEvent);
			}
		]]>
	</fx:Script>
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<s:DataGrid x="0" y="0" width="100%" height="100%" dataProvider="{userList}"
				requestedRowCount="10">
		<s:columns>
			<s:ArrayList>
				<s:GridColumn dataField="id" headerText="ID"></s:GridColumn>
				<s:GridColumn dataField="name" headerText="姓名"></s:GridColumn>
				<s:GridColumn dataField="age" headerText="年龄"></s:GridColumn>
				<s:GridColumn dataField="email" headerText="邮箱"></s:GridColumn>
			</s:ArrayList>
		</s:columns>
	</s:DataGrid>
</s:Panel>

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   xmlns:service="com.user.service.*"
			   xmlns:controller="com.user.controller.*"
			   xmlns:view="com.user.view.*"
			   minWidth="955" minHeight="600">
	<fx:Script>
		<![CDATA[
			import com.user.model.UserModelLocator;
			[Bindable]
			public var userModel:UserModelLocator=UserModelLocator.getInstance();
		]]>
	</fx:Script>
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
		<!--实例化-->
		<service:UserServiceLocator id="userServiceLocater1"/>
		<!--实例化-->
		<controller:UserController id="userController1"/>
	</fx:Declarations>
	<!--导入组件-->
	<view:UserListView x="100" y="100" userList="{userModel.userList}"/>
</s:Application>


cairngorm3:http://opensource.adobe.com/svn///opensource/cairngorm3/
cairngorm2:http://www.adobe.com/devnet/flex/articles/cairngorm_pt1.html
http://sourceforge.net/adobe/cairngorm/wiki/Downloads/
分享到:
评论

相关推荐

    Cairngorm的helloWorld(附源码)

    这个"helloWorld"示例是Cairngorm框架的基础教程,它帮助开发者了解如何使用该框架来组织和管理Flex项目的结构。 在Cairngorm框架中,主要包含以下几个核心组件: 1. **模型(Model)**:负责存储应用的数据。在...

    Flex框架Cairngorm经典案例源码

    通过深入学习和分析这个案例源码,你可以更深刻地理解Cairngorm框架的架构和工作原理,了解如何在实际项目中有效地组织和管理代码,提高Flex应用的开发效率。这将有助于你成为一名精通Flex框架和Cairngorm的开发者,...

    flex_cairngorm_Mvc_HelloWorld

    标题“flex_cairngorm_Mvc_HelloWorld”暗示了我们正在探讨的是一个关于Adobe Flex与Cairngorm框架的简单MVC(Model-View-Controller)应用示例。Flex是一种用于构建富互联网应用程序(RIA)的开源框架,而Cairngorm...

    Flex+.Net+Cairngorm+Fluorine的HelloWorld演示

    这个“Flex+.Net+Cairngorm+Fluorine的HelloWorld演示”旨在帮助开发者理解如何将这些技术整合在一起,实现跨平台的通信,并掌握Cairngorm框架的应用。 Flex 是一种基于ActionScript和MXML的开源框架,由Adobe提供...

    Cairngorm框架学习

    Cairngorm框架是Adobe开发的一个轻量级的富互联网应用程序(RIA)开发框架,特别针对Flex应用设计。它的核心目标是提高程序的可扩展性和可维护性,为开发者提供了一个结构化的开发模板,而非一个完整的应用程序解决...

    flex框架之Cairngorm框架(二)

    Flex框架是Adobe开发的一种用于构建富互联网应用(RIA)的技术,它基于ActionScript和MXML。...学习和掌握Cairngorm框架,能帮助开发者更好地组织Flex项目,提升开发效率,同时确保代码的可维护性和可测试性。

    flex框架之Cairngorm框架(一)

    flex框架之Cairngorm框架,包括Cairngorm框架

    cairngorm 框架介绍(详细介绍了Adobe Cairngorm框架)

    **Cairngorm框架详解** Adobe Cairngorm是一款开源的Model-View-Controller(MVC)框架,专门针对Adobe Flex和ActionScript 3.0开发。这个框架为构建可维护和可扩展的富互联网应用程序(RIA)提供了强大的支持。...

    Cairngorm2.rar

    `cairngorm2_2_1-src.zip` 提供了Cairngorm框架的源代码。对于想要深入研究框架内部工作方式或者想要进行定制化开发的开发者来说,这是一个宝贵的资源。源代码提供了对框架组件的完全访问,可以查看每个类的实现细节...

    flex开发系列书籍:Cairngorm_MVC_框架

    Cairngorm 框架是 Adobe Flex 开发中的一个著名模型-视图-控制器(MVC)架构,它提供了一种结构化的方法来组织和管理应用程序代码,从而提高开发效率和代码可维护性。该框架的核心思想是将应用程序的不同部分——...

    Flex开发框架cairngorm入门实例教程

    Cairngorm是一个轻量级的MVC框架,专门用于Adobe Flex应用程序的开发。这个框架的设计目的是为了提高Flex项目的可维护性和可扩展性,通过分离业务逻辑、视图和控制层,使得代码更加模块化。在Cairngorm中,模型...

    Flex3/4 Cairngorm框架 入门 源码 主要是登陆注册功能。

    通过这个入门示例,你将学习如何设置Cairngorm框架,创建命令,订阅和发布事件,以及如何在Flex应用中有效地组织代码。实践这个项目将帮助你深入理解MVC模式以及Cairngorm如何支持它。记得在学习过程中,不断尝试...

    Flash/Flex 框架应用 Cairngorm、Mate、PureMVC以及Swiz 的典型例子

    附件是关于 Flash/Flex 几个重要框架 Cairngorm、Mate、PureMVC以及Swiz 的典型例子,由 Tony Hillerson 提供 Homepage: http://insideria.com

    flex Cairngorm框架实例

    Flex Cairngorm框架是一个强大的轻量级MVC(模型-视图-控制器)架构,用于构建富互联网应用程序(RIA)。这个框架是Adobe Flex开发者社区中的一个流行选择,它旨在提高代码组织、可维护性和可扩展性。让我们深入探讨...

    cairngorm3实践源码

    4. **改进的ModelLocator**: ModelLocator在Cairngorm3中进行了优化,可以更好地支持依赖注入,提高了代码的可测试性和可维护性。 5. **更明确的架构划分**: Cairngorm3对MVC组件的职责进行了更清晰的定义,使得...

    Flex Cairngorm框架生成器

    Flex Cairngorm框架生成器是一款专门针对Adobe Flex开发的工具,旨在简化Cairngorm框架的应用构建过程。Cairngorm是ActionScript和Flex社区中广泛使用的轻量级MVC(Model-View-Controller)框架,它帮助开发者组织和...

    Cairngorm_Help.chm

    Cairngorm 帮助文档 CHM help 烟水晶 Flex adobe

Global site tag (gtag.js) - Google Analytics