【AIR & Flex3】 コンボボックスのテスト


  カスタムコンポーネント



http://lightbox.on.coocan.jp/download/flex3_air_combo.lzh



コンボボックスのカスタムコンポーネントを作成して、その基本的な機能をテストしています。

  コンポーネントのソースコード




LboxCombo.mxml
  

<?xml version="1.0" encoding="utf-8"?>
<mx:ComboBox
	xmlns:mx="http://www.adobe.com/2006/mxml"
	creationComplete="initCombo(event)" 
>

<mx:Script>
<![CDATA[

	import mx.events.*;
	import mx.collections.*;

	private	var arc:ArrayCollection = new ArrayCollection();

	// *****************************************************
	// データ追加
	// *****************************************************
	public function add(txt:String,data:Object):void {

		var option:Object = new Object();

		// 表示テキスト
		option.label = txt;
		// データ
		option.data = data;
		// 追加された時の index
		option.cnt = arc.length;

		arc.addItem(option);
		this.dataProvider = arc;

	}

	// *****************************************************
	// 選択
	// *****************************************************
	public function selectByValue(value:Object):void {
	
		var max:int = arc.length;
		var i:int = 0;

		for( i = 0; i < max; i++ ) {
			if ( arc.source[i].data == value ) {
				this.selectedIndex = i;
				break;
			}
		}
	
	}

	// *****************************************************
	// 選択
	// *****************************************************
	public function selectByText(value:String):void {
	
		var max:int = arc.length;
		var i:int = 0;

		for( i = 0; i < max; i++ ) {
			if ( arc.source[i].label == value ) {
				this.selectedIndex = i;
				break;
			}
		}
	
	}

	// *****************************************************
	// 選択された値
	// *****************************************************
	public function get selectedValue():Object {
		if ( this.selectedIndex == -1 ) {
			return "";
		}
		else {
			return arc.source[this.selectedIndex].data;
		}
	} 
	// *****************************************************
	// 選択されたテキスト
	// *****************************************************
	public function get selectedText():String {
		if ( this.selectedIndex == -1 ) {
			if ( this.prompt == null ) {
				return "";
			}
			else {
				return this.prompt;
			}
		}
		else {
			return arc.source[this.selectedIndex].label;
		}
	} 
	// *****************************************************
	// グループ番号
	// *****************************************************
	private var _group:int = 0;
	public function get group():int {
			return _group;
	} 
	public function set group(value:int):void {
			_group = value;
	} 

	private function initCombo(e:FlexEvent):void {
		trace(e);
	}

]]>
</mx:Script>

</mx:ComboBox>
  

  Mainw.mxml

初期処理として、コンボボックスにデータを追加しています。

----------------------------------------------------------------------------------------------------------
データ追加は、カスタムコンポーネントに実装した、add メソッド で行ないます。
実際に追加される場所は、arc:ArrayCollection で、dataProvider プロパティにセット
する事によって、表示されます。

ArrayCollection にセットされる実際のデータはこの場合 Object であり、label と data というプロパティ
を作成してデータを設定後 ArrayCollection に追加しています。

ですから、データを参照する場合は、この Object が、selectedItem で参照されます。
また内部では、ArrayCollectionsource[n] プロパティで参照されます
( これは、外部から dataProvider 経由でも参照可能な事を意味します )

----------------------------------------------------------------------------------------------------------
selectedIndex プロパティは、もとからあるプロパティで、-1 を設定すると未選択状態になります。
その際に表示するテキストを、prompt プロパティで設定(画面定義側) しています。

----------------------------------------------------------------------------------------------------------
selectedLabel はもとからあるプロパティで、未選択の場合は prompt が無い場合は null
ある場合は "" を返しますが、追加プロパティの selectedText では、未選択の場合は prompt が
無い場合は "" で、ある場合は prompt の内容を返します。

  

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
	xmlns:mx="http://www.adobe.com/2006/mxml"
	initialize="initData();"
	xmlns="*"
>

<mx:Style>

	.labelAlign {
		textAlign: left;
	}
	.testButton {
		fillColors: #5EBCDB,#FFFFFF;
	}

</mx:Style>

<mx:Script>
<![CDATA[

	import mx.core.*;

	// *********************************************************
	// アプリケーションの初期化
	// *********************************************************
	public function initData():void {

		// メッセージ
		trace( "initData()" );

		act.add("新規", 1);
		act.add("修正", 2);
		act.add("削除", 9);

		// どのデータも選択しない
		act.selectedIndex = -1;

		// 内部データの参照
		trace(act.dataProvider.source[2].data);

	}

	// *********************************************************
	// 変更されたコンボボックスの内容
	// *********************************************************
	public function dispData():void {

		// メッセージ
		trace(
			 act.selectedLabel + "," +
			 act.selectedItem.label + "," +
			 act.selectedItem.data + "," +
			 act.selectedItem.cnt
		);

	}

]]>
</mx:Script>

<mx:Form width="90%" height="90%">
	<mx:FormHeading label="コンボボックスのテスト"/>
	
	<mx:FormItem
		label="処理区分"
		labelStyleName="labelAlign"
		 paddingBottom="30"
	>
		<!-- ****************************************** -->
		<!-- ユーザコンボボックス -->
		<!-- ****************************************** -->
		<LboxCombo
			id="act" 
			prompt="選択されない場合のテキスト"
			change="dispData();"
		/>
	</mx:FormItem>

	<!-- ****************************************** -->
	<!-- 機能テストボタン -->
	<!-- ****************************************** -->

	<mx:FormItem label="開閉" labelStyleName="labelAlign">
		<mx:Button
			label="コンボボックスを開く"
			click="act.open();"
			styleName="testButton"
			width="250"
		/>
	</mx:FormItem>

	<mx:FormItem labelStyleName="labelAlign">
		<mx:Button
			label="コンボボックスを閉じる"
			click="act.close();"
			styleName="testButton"
			width="250"
		/>
	</mx:FormItem>

	<mx:FormItem label="選択" labelStyleName="labelAlign">
		<mx:Button
			label="数値 "1" でコンボボックスを選択"
			click="act.selectByValue(1);"
			styleName="testButton"
			width="250"
		/>
	</mx:FormItem>

	<mx:FormItem labelStyleName="labelAlign">
		<mx:Button
			label=""修正"でコンボボックスを選択"
			click="act.selectByText('修正');"
			styleName="testButton"
			width="250"
		/>
	</mx:FormItem>

	<mx:FormItem label="取得" labelStyleName="labelAlign">
		<mx:Button
			label="選択されたテキスト"
			click="trace(act.selectedText);"
			styleName="testButton"
			width="250"
		/>
	</mx:FormItem>

	<mx:FormItem labelStyleName="labelAlign">
		<mx:Button
			label="選択された値"
			click="trace(act.selectedValue);"
			styleName="testButton"
			width="250"
		/>
	</mx:FormItem>

</mx:Form>

</mx:WindowedApplication>
  




yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[flex3]
CCBot/2.0 (https://commoncrawl.org/faq/)
21/01/25 10:18:28
InfoBoard Version 1.00 : Language=Perl

BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube