mxml中动态生成组件的OO重写
来源:互联网 发布:儿童练功服 淘宝 编辑:程序博客网 时间:2024/05/14 04:09
参考我前面的文章http://blog.csdn.net/rubyzhudragon/archive/2009/06/10/4257836.aspx
因为项目开始需求还不清楚,代码几乎没有遵循OO原则,今天有空重写了一些代码,
这样的话无需太多的if-else了。
public class XComponent{
public function reset():void{}
public function getVal():String{
return "";
}
public function getVo():IdNameVo{
return null;
}
}
public class XTextInput extends XComponent
{
public var idname:String;
public var t:TextInput;
public var validator:Validator;
public function XTextInput(idname:String,len:int,val:String)
{
t=new IextInput();
this.idname=idname;
init(idname,len,val);
}
public function XTextInput(idname:String,len:int)
{
super(idname,len);
}
private function init(len:int,val:String):void{
t.id=this.idname;
t.visible=true;
t.height=20;
if(len!=0){
t.width=len*12;
}
t.text=val;
}
override public function reset():void{
t.text="";
}
override public function getVal():String{
return t.text;
}
override public function getVo():IdNameVo{
if(t.text!=""){
vo=new IdNameVo();
vo.name=idname;
vo.desc=t.text;
return vo;
}
}
public function resetVal(val:String):void{
t.text=val;
}
public setValidator(obj:Object){
this.validator=obj["validator"];
this.validator.source=t;
this.validator.property="text";
this.validator.required =obj["required"];
this.validator.requiredFieldError=obj["msg"];
}
}
public class XCombo extends XComponent
{
public var c:ComboBox;
public var idname:String;
public var index:int;
public var ac:ArrayCollection;
public var validator:Validator;
public function XCombo(c:ComboBox,idname:String,index:int,ac:ArrayCollection)
{
this.c=new ComboBox();
this.idname= idname;
this.index=index;
this.ac=ac;
init();
}
private function init():void{
c.id=this.idname;
c.visible=true;
c.height=20;
c.labelField="name";
c.dataProvider=this.ac;
if(index!=-1) c.selectedIndex=index;
else c.selectedIndex=-1;
}
override public function reset():void{
c.selectedIndex=-1;
this.index=-1;
}
override public function getVo():IdNameVo{
if(this.index!=-1){
vo=new IdNameVo();
vo.name=idname;
vo.desc=c.selectedItem['name'];
return vo;
}
return null;
}
override public function getVal():String{
return c.selectedItem['name'];
}
public function resetVal(index:int):void{
c.selectedIndex=index;
this.index=index;
}
public setValidator(obj:Object){
this.validator=obj["validator"];
this.validator.source=t;
this.validator.property="text";
validator.required =obj["required"];
validator.requiredFieldError=obj["msg"];
}
}
public class XCombine extends XComponent
{
public var h:HBox;
public var policy:String="";
public var validators:Array;
private var symbol:XTextInput;
private var number:XTextInput
private var mod:XTextInput;
public function XCombine(policy:String)
{
h=new HBox();
this.policy=policy;
init();
}
private function init():void{
symbol=new XTextInput("symbol",3);
number=new XTextInput("number",7);
mod=new XTextInput("mod",2);
resetVal(this.policy);
}
override public function resetVal(policy:String):void{
if(policy!=""){
symbol.resetVal(policy.substr(0,3));
number.resetVal(policy.substr(3,7));
number.resetVal(policy.substr(10,2));
}
}
override public function reset():void{
symbol.text="";
number.text="";
mod.text="";
}
override public function getVo():IdNameVo{
var val:String==symbol.text?"%":symbol.text
+number.text?"%":number.text+mod.text?"%":mod.text;
if(t.text!="%%%"){
vo=new IdNameVo();
vo.name="INDEX2";
vo.desc=t.text+symbol.text+mod.text;
return vo;
}
}
public function getVal():String{
return symbol.text+number.text+mod.text;
}
public function setValidator:void(obj:Object){
symbol.setValidator(obj['symbol']);
number.setValidator(obj['number']);
mod.setValidator(obj['mod']);
validators.push(symbol.validator);
validators.push(number.validator);
validators.push(mod.validator);
}
}
- mxml中动态生成组件的OO重写
- mxml中动态生成组件
- List 中使用 MXML 自定义组件的数据项访问方法
- Flex的mxml组件中进行图形绘制
- mxml中加载简单自定义组件
- flexMarquee 组件flexMarquee.mxml的代码:
- 自定义的组件中加入多个MXML标记的子UI元素
- 如何在flex的mxml视图中调整Imgage组件的位置
- 构建自定义组件 -- 在MXML 中构建组件
- 一、从简单MXML组件中处理事件
- Flex 3入门教程: 在 MXML 中构建自定义组件
- Flex 3在MXML中构建自定义组件
- mxml组件元素提取
- JSF动态生成组件
- [flex2]动态生成组件
- JSF动态生成组件
- Android动态生成组件
- Java动态生成组件
- 《阿甘正传》--简单中的美好
- 如何为自己所有的域名注册Google企业邮箱
- 常用的T-SQL
- 对list中的对象进行排序
- RedHat5.0Linux下安装jdk,并配置环境
- mxml中动态生成组件的OO重写
- 例子
- .NET框架与COM-.NET教程.NET Framework
- apache服务器无法启动
- phpcms2008 代码简介:include/common.inc.php
- 这段程序中 R "找不到符号",是什么原因,请帮助,谢谢!
- 怎么使用my97datepicker使之显示的日期为阴历
- 哪些IT、信息技术可以应用到医疗行业中来?
- Mocks Aren't Stubs