ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: Flex3 : DadaGrid を使ったユーザーコントロールサンプル
名前: lightbox
処理選択
パスワード

件名 Flex3 : DadaGrid を使ったユーザーコントロールサンプル
名前 lightbox
コメント
@HTML
<IFRAME
	src="http://winofsql.jp/fileDownload.swf?target=http%3A%2F%2Fwinofsql.jp%2Fdownload%2Fflex3_web_build_grid.lzh&type=red"
	frameborder="no"
	scrolling="no"
	width="125"
	height="90"
></IFRAME>
<a style="FONT-SIZE: 12px; COLOR: #0000ff; TEXT-DECORATION: none" href="http://winofsql.jp/download/flex3_web_build_grid.lzh">ブラウザでダウンロード</a>

<SCRIPT 
	language="javascript"
	type="text/javascript"
	src="http://lightbox.on.coocan.jp/flex3/flex3_web_build_grid/swfobject.js">
</SCRIPT>
<div id="flashcontent"></div>
<script type="text/javascript">
var flashvars = {
  query_string1:"abcd_xyz"
  ,query_string2:"あああ"
};
var params = {
  allowScriptAccess:"always"
 ,bgcolor:"#ffffff"
}; 
var attributes = {
  id: "id_sample",
  name: "id_sample"
};
swfobject.embedSWF(
	"http://lightbox.on.coocan.jp/flex3/flex3_web_build_grid/Main.swf?reload="+(new Date()).getTime(),
	"flashcontent", 
	"600",
	"450",
	"9.0.0",
	"",
	flashvars,
	params,
	attributes
);
</script>
@HEND

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

<mx:Style source="Style.css" />
<mx:Style>
LboxGrid {
	color: black;
}
</mx:Style>

<mx:Script>
<![CDATA[

	import mx.controls.*;
	import mx.events.*; 
	import mx.formatters.*;
	import flash.external.*;

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

		// パラメータをプロパティとして持つ Object を取得
		var param:Object = mx.core.Application.application.parameters;

		// LboxGrid 初期化
		grid.Reset();

		// ヘッダタイトルを表示
		grid.ShowHeader();

		// 高さを設定
		grid.width = 500;
		grid.height = 350;

		// 列を追加
		grid.AddColumn("KEY");
		grid.AddColumn("VALUE");

		// LboxGrid に全てセット
		var i:int = 0;
		for (var key:* in param) { 
			grid.AddRow( key, param[key] );
		}

		// 行を選択しない
		grid.Unselect();

		// 右クリックメニュー
		var cMenu:ContextMenu = new ContextMenu();
		// 必要最低限の adobe メニューのみ表示
		cMenu.hideBuiltInItems();

		var cMenuItem:ContextMenuItem =
			new ContextMenuItem("SQLの窓");
		cMenuItem.addEventListener(
			ContextMenuEvent.MENU_ITEM_SELECT,
			function (event:ContextMenuEvent):void {
				var req:URLRequest = new URLRequest(
					"http://winofsql.jp/"
				);
				navigateToURL(req, "_blank");
			}
		);
		cMenu.customItems.push(cMenuItem);

		this.contextMenu = cMenu;

	}

	// *********************************************************
	// ログ表示
	// *********************************************************
	public function firebug(data:Object):void {
	
		var fmt:DateFormatter = new DateFormatter();
	
		fmt.formatString = "YYYY/MM/DD HH:NN:SS";
		var logdt:String = fmt.format( new Date );
	
		ExternalInterface.call(
			"console.log", logdt,
			data+""
		);
	
	}

]]]]>
</mx:Script>

<mx:Panel
	horizontalAlign="center"
	paddingLeft="10"
	paddingRight="10"
>
	<my:LboxGrid id="grid"/>

</mx:Panel>
</mx:Application>
@END


   [[LboxGrid.mxml]]
@DIV
<?xml version="1.0" encoding="utf-8"?>
<mx:DataGrid height="400" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script source="M_AddRow.as"/>
<mx:Script source="M_Clear.as"/>
<mx:Script source="M_Column.as"/>
<mx:Script source="M_Prop.as"/>
</mx:DataGrid>
@END

   [[M_AddRow.as]]
@DIV
// 初回( 行が存在しない )フラグ
private var init_flg:int = 1;
// カレント行( -1 は先頭行の前 )
private var cur_row:int = -1;

import mx.controls.*;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.collections.*;

// *************************************************
// 配列を Object のプロパティにセット
// *************************************************
public function SetArrayToObject(obj:Object,arr:Array):void {

	if ( arr == null ) {
		arr = [];
	}

	// 配列の数
	var arrayMax:int = arr.length;
	// 列の数( M_Prop.as で定義 )
	var colMax:int = this.count;

	// obj( 行データ ) の プロパティに値をセット
	var i:int;
	for( i = 1; i <= colMax; i++ ) {
		if ( i > arrayMax ) {
			obj["COL" + i] = "";
		}
		else {
			obj["COL" + i] = arr[i-1];
		}
	}

}

// *************************************************
// 行追加
// 引数は配列
// *************************************************
public function AddRow(... cols):void {
	this.AddRowArray(cols)
}
public function AddRowArray(cols:Array=null):void {

	// 初回処理
	if ( this.init_flg == 1 ) {
		this.init_flg = 0;
		// dataProvider に実体をセット
		this.dataProvider = new ArrayCollection();
		// 先頭行を選択状態にする
		this.selectedIndex = 0;
	}

	// 行データをセットする Object を作成
	var obj:Object = new Object();

	// 配列を Object のプロパティにセット
	SetArrayToObject( obj, cols );

	// obj( 行データ )を追加
	this.dataProvider.addItem(obj);

	// 現在行の設定
	this.cur_row++;

}

// *************************************************
// 行挿入
// 引数は配列
// *************************************************
public function InsertRow(idx:int,... cols):void {
	this.InsertRowArray(cols,idx)
}
public function InsertRowArray(cols:Array=null,idx:int=0):void {

	// 初回処理
	if ( this.init_flg == 1 ) {
		this.init_flg = 0;
		// dataProvider に実体をセット
		this.dataProvider = new ArrayCollection();
		// 先頭行を選択状態にする
		this.selectedIndex = 0;
	}

	// 行データをセットする カーソル を作成
	var ivc:IViewCursor = this.dataProvider.createCursor();

	// 行データをセットする Object を作成
	var obj:Object = new Object();

	// 配列を Object のプロパティにセット
	SetArrayToObject( obj, cols );

	// obj( 行データ )を追加
	ivc.seek(CursorBookmark.FIRST,idx); 
	ivc.insert(obj);

	// 現在行の設定
	this.cur_row++;

}
@END