123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- package com.view
- {
- import com.skins.ComboBoxButtonSkin;
-
- import mx.collections.ArrayCollection;
- import mx.events.FlexEvent;
- import mx.resources.ResourceManager;
- import mx.rpc.events.ResultEvent;
- import com.utils.CommonUtility;
-
- import spark.components.ComboBox;
- import spark.events.IndexChangeEvent;
- import spark.events.ListEvent;
-
- public class Selector extends ComboBox
- {
- // 控件对应的公用代码
- private var _code:String;
- private var _selectedID:Number=-1;
- private var _selectedCode:String;
- // 上级ID
- private var _param:String;
- public var hasBlank:Boolean=false;
- public var blankCode:CodeVo;
-
- public function Selector()
- {
- super();
- this.width=300;
- this.labelFunction = codeLabelFunction;
- this.height=28;
- super.setStyle("fontWeight", "normal");
- super.setStyle("openDuration", "0");
- super.setStyle("closeDuration", "0");
- super.setStyle("selectionDuration", "0");
- this.addEventListener(IndexChangeEvent.CHANGE,onChangeHandler);
- this.addEventListener(FlexEvent.CREATION_COMPLETE,creationCompleteHandler);
- }
- public function get param():String
- {
- return _param;
- }
- public function set param(value:String):void
- {
- _param = value;
- }
- protected function Yjpt_resultHandler(event:ResultEvent):void
- {
- var ret:ArrayCollection=event.result as ArrayCollection;
- var codes:ArrayCollection = new ArrayCollection;
- for each(var r:Object in ret)
- {
- var c:CodeVo = new CodeVo;
- c.id = r.ID;
- c.code = r.CODE;
- c.label = r.MC;
- codes.addItem(c);
- }
- this.dataProvider = codes;
- if(this.hasBlank)
- {
- if(!blankCode){
- blankCode= new CodeVo();
- blankCode.id=0;
- blankCode.label="";
- blankCode.code="";
- }
- this.dataProvider.addItemAt(blankCode,0);
- }
- if(null != codes && codes.length>0)
- {
- for each(var code:CodeVo in codes)
- {
- if(code.id == selectedID)
- {
- this.selectedItem = code;
- break;
- }
- }
- }
- }
- protected function creationCompleteHandler(event:FlexEvent):void
- {
- this.textInput.editable = false;
- this.textInput.setStyle("borderColor","#D2D2D2");
- this.openButton.setStyle("skinClass",ComboBoxButtonSkin);
- CommonUtility.callRemote("gisController","getCodeGroup",Yjpt_resultHandler,code,param);
- }
- public function onChangeHandler(e:IndexChangeEvent):void
- {
- if(e.newIndex <0)
- {
- return;
- }
- var code:CodeVo = this.dataProvider.getItemAt(e.newIndex) as CodeVo;
- this._selectedID = code.id;
- this._selectedCode = code.label;
- }
- /**
- * 树图标签显示
- */
- public function codeLabelFunction(item:Object):String
- {
- if(item ==null)
- {
- return "";
- }
- var _functionName:String=resourceManager.getString("select",item.label);
- if(null == _functionName || _functionName=="")
- {
- _functionName = item.label;
- }
- return _functionName;
- }
- public function get code():String
- {
- return _code;
- }
-
- public function set code(value:String):void
- {
- _code = value;
- }
- public function get selectedCode():String
- {
- return _selectedCode;
- }
-
- public function set selectedCode(value:String):void
- {
- _selectedCode = value;
- if(_selectedCode==null){
- this.selectedItem = null;
- this.textInput.text="";
- return;
- }
- var codes:ArrayCollection = this.dataProvider as ArrayCollection;
- if(null != codes && codes.length>0)
- {
- for each(var code:CodeVo in codes)
- {
- if(code.code == value)
- {
- this.selectedItem = code;
- return;
- }
- }
- }
- this.selectedItem = null;
- }
- /** 选中项 */
- public function get selectedID():Number
- {
- return _selectedID;
- }
-
- /**
- * @private
- */
- public function set selectedID(value:Number):void
- {
- _selectedID = value;
- if(_selectedID==-1){
- this.selectedItem = null;
- this.textInput.text="";
- return;
- }
- var codes:ArrayCollection = this.dataProvider as ArrayCollection;
- if(null != codes && codes.length>0)
- {
- for each(var code:CodeVo in codes)
- {
- if(code.id == value)
- {
- this.selectedItem = code;
- return;
- }
- }
- }
- this.selectedItem = null;
- }
- }
- }
|