コメント |
@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
|