- 浏览: 7238506 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
flex项目中对象的和组件的绑定的使用开发:
package controller.utils{
import com.unutrip.collections.HashMap;
import com.unutrip.collections.IMap;
import flash.display.DisplayObject;
import flash.utils.describeType;
import mx.binding.utils.BindingUtils;
import mx.binding.utils.ChangeWatcher;
import mx.events.PropertyChangeEvent;
import mx.utils.ObjectProxy;
/**
* @Description: BindingHelper
* @author 白龙岗
*/
public class BindingHelper{
/**
* 目前支持的绑定组件类型
*/
private static const typeMap: Object = { 'mx.controls::TextInput' : 'text',
'mx.controls::DateField' : 'selectedDate',
'mx.controls::ComboBox': 'selectedItem'
};
/**
* 存储监控对象的句柄
* key: entityObj
* value: ChangeWatcher
*/
private static var handleList:IMap = new HashMap();
/**
* 对象与组件的数据动态双向绑定
* @param entityObj Entity Object
* @param displayObj MX控件
* @param type 控件类型,如:'mx.controls::TextInput'
* @exclude 需要排除的property
* @bidirectional 是否做双向绑定(如果为false,那么只做entity到displayObject的绑定)
* @param commitOnly
*/
public static function bidirectionalDataBind(
entityObj:Object,
displayObj:DisplayObject,
exclude:Array=null,
bidirectional:Boolean=true,
type:String='ALL',
commitOnly:Boolean = false):void{
if(type == 'ALL'){
for (var typeTmp:String in typeMap){
bidirectionalDataBind(entityObj,displayObj,exclude,bidirectional,typeTmp,commitOnly);
}
}else{
//通过反射机制取出当前MXML中的信息
var instanceInfo:XML=flash.utils.describeType(displayObj);
var properties:XMLList =instanceInfo..accessor.(@type==type);
var tmpObj:ObjectProxy;
// trace(instanceInfo..accessor.(@type==type));
var prop:String = BindingHelper.getSiteProp(type);
for each(var propertyInfo:XML in properties){
//此处取出的为textinput的id
var proName:String = propertyInfo.@name;
// 需要排除的property
if(exclude != null && exclude.indexOf(proName) != -1){
continue;
}
// 检查该property是否存在
if(BeanUtils.checkPropertyExist(entityObj,proName) == false){
continue;
}
try{
// ComboBox
if(type == 'mx.controls::ComboBox'){
if(handleList.getValue(entityObj) == null){
handleList.put(entityObj,new HandleObject(entityObj));
}
var cw:ChangeWatcher = ChangeWatcher.watch(entityObj,proName,setData);
HandleObject(handleList.getValue(entityObj)).addChangeWatcher(proName,cw);
BindingUtils.bindProperty(entityObj,proName,DisplayObject(displayObj[proName]),prop,commitOnly);
}else{
BindingUtils.bindProperty(DisplayObject(displayObj[proName]),prop,entityObj,proName,commitOnly);
if(bidirectional == true)
BindingUtils.bindProperty(entityObj,proName,DisplayObject(displayObj[proName]),prop,commitOnly);
}
}catch(err:Error){
trace(err.message);
}
}
}
}
/**
* 清空监控对象的句柄集合
*/
public static function clean():void{
if(handleList != null){
for each(var ho:Object in handleList.getValues()){
HandleObject(ho).clean();
}
handleList.clear();
}
}
/**
* 监听ComboBox事件的变化
* @param obj
*/
private static function setData(obj:PropertyChangeEvent):void{
if(obj.newValue == null){
return;
}
var ho:HandleObject = handleList.getValue(obj.source);
var cw:ChangeWatcher = ho.getChangeWatcher(obj.property);
if(obj.newValue is String){
cw.unwatch();
cw = ChangeWatcher.watch(obj.source,obj.property,setData);
ho.addChangeWatcher(obj.property,cw);
return;
}else{
var code:Object = obj.newValue.code;
obj.source[obj.property] = code;
}
}
/**
* 返回组件TYPE对应的需要填充的属性名称
* @param type
* @return
*/
private static function getSiteProp(type: String): String{
for (var name:String in typeMap){
if(name == type){
return typeMap[name];
}
}
return null;
}
}
}
import mx.binding.utils.ChangeWatcher;
import com.unutrip.collections.HashMap;
import com.unutrip.collections.IMap;
internal class HandleObject{
private var entityObject:*;
private var properityList:IMap;
public function HandleObject(entityObject:*):void{
this.entityObject = entityObject;
properityList = new HashMap();
}
public function addChangeWatcher(propName:Object, cw:ChangeWatcher):void{
properityList.put(propName,cw);
}
public function getChangeWatcher(propName:Object):ChangeWatcher{
return properityList.getValue(propName);
}
public function clean():void{
for each(var cw:Object in properityList.getValues()){
ChangeWatcher(cw).unwatch();
}
properityList.clear();
}
}
package controller.utils{
import com.adobe.serialization.json.JSON;
import mx.collections.ArrayCollection;
import mx.utils.ObjectUtil;
import mx.utils.StringUtil;
/**
* @Description: Object Utils
* @author bailonggang
*/
public class BeanUtils{
/**
* 检查对象的property是否存在
* @param obj
* @param proName
* @return
*/
public static function checkPropertyExist(targetObj:*, proName:String):Boolean{
if(targetObj as String
|| targetObj as int
|| targetObj as Date
|| targetObj as Number){
return false;
}
var objInfo:Object = ObjectUtil.getClassInfo(targetObj);
for each(var name:String in objInfo.properties){
if(name == proName){
return true;
}
}
return false;
}
发表评论
-
flex 中As3Commons的使用學習
2009-10-15 12:53 3655學習Java的人,知道java中反射的强大, ... -
flex的国家化的应用
2009-09-23 08:59 2043在项目中需要使用发送短信模板的功能的,根据主题不同,模板不同, ... -
flex的沙箱问题
2009-09-14 17:14 5400在flex与google的地图整合中发现,点击了goog ... -
Flex 常用技巧
2009-09-04 13:00 2519flex是一种异步请求的技术,如果要实现同步必须在传递函 ... -
Flex 開發Google地圖
2009-08-24 13:16 23981 .获取googe的key 2.下载google的fle ... -
查询之order by,group by和having的使用
2009-08-08 15:48 4663在项目中查询常驻酒店的中住的次数最多的前10个酒店: 代码如 ... -
objectProxy的监控对象应用
2009-08-08 13:46 2627在项目中查询根据一个字段发生实现需要特殊的功能,作出相应的动作 ... -
Flex 依赖注入
2009-08-08 13:41 2031了解依赖注入 众所周 ... -
Flex 与外部的数据通信(HTTPService,URLLoader和URLRequest)
2009-08-08 13:36 7360ActionScript 3.0中提供的数据加载请求类主要是H ... -
flex 数据绑定
2009-08-08 13:31 23649.2.1 函数和类级别的绑定 [Bindable]标签打使 ... -
学习ActionScript 3.0的新特点
2009-08-06 13:05 1936ActionScript3.0 是一种类型 ... -
理解 Flex itemRenderer - 第 1 部分: 内联渲染器
2009-08-05 16:37 3089Flex 提供许多控制, 它们可以按不同方式显示大量数据。Li ... -
flex 中类似Google的提示下拉菜单实现
2009-08-01 16:28 5362项目中使用类似Gooogle输入提示菜单的实现如下 ... -
针对Flex中组件的扩展的应用开发
2009-08-01 16:04 2815在项目中使用一个自定义的CheckboxGroup组件继承自C ... -
Flex类似Google搜索提示的两种做法思路
2009-08-01 15:52 2631做了个简单的搜索提示 ... -
Flex中直接获取某个组件的对象
2009-08-01 15:47 2398Flex中直接获取某个组件的对象方案1: 遍历这些butto ... -
flex 查看类的各种数据的权限
2009-08-01 15:18 1809查看类的一些属性的信息:可读,可写,可读可写。 ... -
flex中getDefinitionByName 函数的使用
2009-08-01 12:40 6656在项目中自定义一个CheckboxGroup,这个控件里面 ... -
Flex 学习中数据类型必须注意的几点
2009-08-01 12:36 2167在字符串转换为int类型必须使用 最好如下: var a:i ... -
flex BindUtils的扩展的样式表绑定工具类StyleBindingUtils
2009-07-30 13:06 2154项目中使用的样式表绑定类如下: package uti ...
相关推荐
Cesium 中 实体类entity多种实例对象-实现点击事件
C#:此小程序实现将复杂的 json 格式数据转换为对应的实体类对象,对象与对象之间的关系采用了 ImplementFactory 组件提供的 Constraint 属性,可以在 Visual Studio 里使用 Nuget 搜索并引用该组件,该组件可实现...
本教程介绍如何创建使用 Entity Framework (EF) Core 进行数据访问的 ASP.NET Core Razor Pages Web 应用。 Razor 页面是 ASP.NET Core MVC 的一个新特性,它可以使基于页面的编码方式更简单高效。 Entity Framework...
flex解析json的swc包(entity-flex-v1-02)及例子
freebase的实体id到真实实体的映射 数据集
mybatisGan自动生成mapper和entity对象,支持mysql 和oracle数据库
Entity Framework技术系列之1:数据访问技术概述
HW1 entity Resolution数据分析训练题,入门数据科学的经典题目
这些映射视图是一系列对数据库中对象的抽象声明,这些数据同时也是app domain的缓存元数据的一部分,在同一应用程序作用域里面,创建多个数据库访问上下文时可以重用这部分对象。因为在第一次查询的时候,生成映射...
可以将point lable entity导出文件
第40部分 使用对象服务之从跟踪器中获取实体与从命令行生成模型(想解决EF第一次查询慢的,请阅读) 第41部分 使用对象服务之标识关系中使用依赖实体与异步查询保存 第42部分 POCO之使用POCO 第43部分 POCO之使用...
实体框架有助于将逻辑数据架构抽象为概念模型,并且允许以多种方式通过对象服务和名为“EntityClient”的新数据提供程序与概念模型交互。 实体框架使用概念层(ConceptualModels)、映射层(Mappings)和逻辑层...
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,早期被称为 ObjectSpace,现已经包含在 Visual Studio 2008 Service Pack 1 以及 .NET Framework 3.5 Service ...
在多层架构使用Entity Framework 6.0和CodeFirst进行数据迁移。
对象初始化器与集合初始化器 3 匿名类 3 扩展方法 4 Lambda表达式 4 .NET中的数据访问 4 DataSet方案 5 改进的的DataSet方案 5 手写代码通过ADO.NET2.0连接类与数据库交互 5 ORM – LINQ to SQL 6 深入了解...
反射对象生成sql,保存对象。 里面还差,存储过程、批量操作、动态sql 还差一个配套的工具(根据数据库字段生成对象)
语言集成查询 (LINQ) 在对象领域和数据领域之间架起了一座桥梁。具有完全类型检查和 IntelliSense 支持。 2) LINQ query with a lambda 使用lambda表达式操作数据查询。 3) Entity SQL Entity SQL类似SQL语言,它...
Entity Framework Repository(含依赖注入)
解压后得到sp_GenerateEntity.sql在SQL Server中执行,调用时在SQL Server中使用EXEC 带表名和C#命名空间参数,自动生成实体对象;BaseDAL.cs是使用实体进行数据插入更新删除等操作的数据访问层基类,使用了单态模式...
首先介绍一下Entity Framework(个人使用的方式,我没有深入研究),Entity Framework后面简称EF,EF对象关系解决方案,让程序设计者专心于程序设计,不用花时间去研究SQL语句。那么EF是怎么创建数据库,怎么和数据库...