2008年12月13日土曜日

ExtJs-23 継承時のconfig

ExtJSWorkShopに参加させてもらってから
時間が取れるようになった。

どうやって実装してったら良いんだ?という
疑問を少しづつといく。
ゼノフィの小堤さんがもう目からうろこな懇切丁寧に
指導してくれるおかげでかなり理解は深まる。
でやりたいことのおおむね必要な要素はそろってきた。

がんばっていつか恩返しをしたい。
今回はGOGAの小山さんもいらした。

さて、
今回、躓いていたのは継承とxtype、とその使いかた。

メインで
Ext.onReady(function() {
//----------------------------------------
// Grid設定
//----------------------------------------
//console.debug(App.TaskManegement.todoList_dataMapping);
var taskGrid = new App.TaskManegement.TodoListGrid({
renderTo:'gridpanel'
});
//----------------------------------------
// Dlg設定
//----------------------------------------
var taskDlg = new App.TaskManegement.TodoRegisterDlg({
title : 'テスト',
width : 500,
height: 300
});
taskDlg.show();
});


で、
ウィンドウは

Ext.namespace('App.TaskManegement');

// ---------------------------------------------------
// App.TaskManegement.TodoRegisterDlg
// ---------------------------------------------------
App.TaskManegement.TodoRegisterDlg = Ext.extend( Ext.Window, {
initComponent : function()
{
this.items = [{
xtype : 'TodoRegisterFormPanel'
}];
App.TaskManegement.TodoRegisterDlg.superclass.initComponent.call( this );
}
});


で、
パネルは

Ext.namespace('App.TaskManegement');

App.TaskManegement.TodoRegisterFormPanel = Ext.extend( Ext.form.FormPanel,{
initComponent : function()
{
this.items = [{
xtype : 'checkbox'
}];
App.TaskManegement.TodoRegisterFormPanel.superclass.initComponent.call( this );
}
});
Ext.reg( 'TodoRegisterFormPanel', App.TaskManegement.TodoRegisterFormPanel );


こう。
これがひとまず画面が出るようになった状態。

と、やりたかったのは
PanelをprecofigClassとしてDBとのIFで独立せておいて
使いまわせるようにしたかったのです。
もんだいはPanelでおきていました。

items.addでエラーが起きるんですよ。



その日はもんだいとなる疑問を小堤さんにきいてみると
とっても丁寧に噛み砕いて教えてくれました。
でサンプルのソースをくんでくれたので。。
見てたんです。
うーん、一応自分の実装もよさげなんだけどなあぁと

で、それはひとつのhtml上に書いてくれたものだったので
自分のファイル構成に各クラスを分割(コピペしたところ)
そのうまくいっていたソースでもitems.addでエラーが発生。

拡張するときのextendの第二パラメータのconfigのitemsは
直に書かず、
initComponentをオーバーライドして
そこでthis.config=で当て込んであげると回避。
これも小堤さんが。

もう



頭が上がりません。
もっと精進します。


あとTreePanelの変更後の情報って。
についても聞いてみた。


なぜ何君になっているのが悔しい。
早く高レベルな質問ができるようになりたいもので。


この機会、場所、時間を提供してくれる
小堤さん、直鳥さん、皆さんに感謝です。

趣味のレベルでのプログラムなのでこれをなんかもっと
生かせたらと思うのですが、業務になると
つまんなくなっちゃうのかな。

0 件のコメント: