ExtJsを勉強し始めて、そのうち遊びになって
これでもう四回目のプロジェクト作り直し。
よく飽きないもので。。
今年に入ってからの汎化作業は右に左に揺れるはするものの、
エイヤときめて先に進むという方法をとってきたから今回の
プロジェクト作り直しも良い方向に進むんだろうと信じて。
フォルダ構成はこんな感じで行こう。
■フォルダ構成
プロジェクトフォルダ
├App(アプリケーションフォルダ)
│ ├Client
│ │ └各テーブルごとのフォルダとコンフィグファイル★
│ └Server
│ └各テーブルごとのフォルダとサーバサイドページ★
├App_Code
│ ├BasePage(ページ基底クラス)
│ ├DataTierAP(アプリケーション層DataTier)
│ ├DataTierAutoGenerate(自動生成層DataTier)★
│ ├DataUtil(データ加工ヘルパ)
│ ├JsonUtil(Json用加工ヘルパ)
│ └SQL(自動生成SQL←保管用)★
│
├extjs(ExtJs関連フォルダ:ExtJs/Sencha絡み)
│ ├ext(最新版のバージョンを排除して配置)■
│ ├sencha(最新版の-touchXXXXを排除して配置)■
│ ├extWrapper.css(ExtJsラッパ用CSS)
│ └extWrapper.js(ExtJsラッパ用)
│
├Fwx(ExtJS拡張層)
│ ├Omega(今後ここにomegaがくる予定??)●
│ └Crud(Crudに特化した拡張層)
│ ├Config.js(Configクラスの基底クラス)
│ ├ConfigFactory.js(ConfigFactoryクラスの基底クラス)
│ ├EditorGrid.js(EditorGridクラスの基底クラス【M】)
│ ├Form.js(Formクラスの基底クラス【V】)
│ ├FormControl.js(Formクラスの基底クラス【C】)
│ ├FormModel.js(Formクラスの基底クラス【M】)
│ ├GridContainer.js(Crudのコンテナクラス)
│ ├GridControl.js(Formクラスの基底クラス【C】)
│ └GridModel.js(Formクラスの基底クラス【M】)
│
├Owx(Apx)(アプリケーション用拡張層:基本的にFwx、ExtWrapperを拡張)
│ ├Controls
│ │└各種システム固有のコントロールクラス群
│ │
│ ├Utils
│ │└各種システム固有のロジッククラス群
│ │
│ └Crud
│ ├Config.js(Configクラスの基底クラス)
│ ├ConfigFactory.js(ConfigFactoryクラスの基底クラス)
│ ├EditorGrid.js(EditorGridクラスの基底クラス【M】)
│ ├Form.js(Formクラスの基底クラス【V】)
│ ├FormControl.js(Formクラスの基底クラス【C】)
│ ├FormModel.js(Formクラスの基底クラス【M】)
│ ├GridContainer.js(Crudのコンテナクラス)
│ ├GridControl.js(Formクラスの基底クラス【C】)
│ └GridModel.js(Formクラスの基底クラス【M】)
│
├Test(どーすっかなぁ)
│
└DataTierGeneratorhogehoge.exe(仮称)★
あー3.3だけDLして寝よ。
あっ、コード書いてないorz。。
転職用の日記だったのですが趣味でExtJsを使用して遊んでます。 いろいろと作業期間があく為、そのための備忘録ブログです。記事内容等で問題等があっても責任は取りません。とうとう趣味プログラマになりました。
2010年7月30日金曜日
2010年7月23日金曜日
ExtJs-96 サーバサイドコードを吐き出す
眠くなってさいごはかなりぐだぐだになったけどようやく
吐き出されるコードがそろった。
適当なテーブルをいくつか作って動作検証しなくちゃね。
これで先日のクライアント側のしくみと組で動いてくれればわずらわしい足回りから
ようやく一旦卒業できる。もう少し。もう少し。
吐き出されるコードがそろった。
適当なテーブルをいくつか作って動作検証しなくちゃね。
これで先日のクライアント側のしくみと組で動いてくれればわずらわしい足回りから
ようやく一旦卒業できる。もう少し。もう少し。
2010年7月22日木曜日
埋め込みリソース
先日からサーバサイドの実装に入った。ものすごく久しぶりすぎて書き方忘れていたり。
internalとかでてこられてあれ?なんだっこの修飾子?とか戸惑いながら
ジェネレータのコードを拡張するだけなので楽チンなんだけど、、
フォーマットファイルを埋め込みリソースとして
アクセスしたかったののでやりかたわかんなかったから残しておこう。
Assembly.GetExecutingAssembly().GetManifestResourceStream(name))
これをStreamReaderにかましてReadToEndでよみだすっていう。
らくちんだねぇ。どっとネットって。
ちなみに
埋め込みリソースはファイルへの設定が少し必要で。
ビルドアクションに埋め込まれたリソースってやってやる。それだけ。
あとはリソース内部にちりばめられたキーワードに対してデータをリプレイスすれば
サーバサイドのコードができあがりってわけですね。
CreateFormはできたのであとはチョコっとじっそうしたらOK.
残すはクライアントサイドのConfigクラスのJson生成。
来週くらいには素地はできそうww。たのしみだ。
internalとかでてこられてあれ?なんだっこの修飾子?とか戸惑いながら
ジェネレータのコードを拡張するだけなので楽チンなんだけど、、
フォーマットファイルを埋め込みリソースとして
アクセスしたかったののでやりかたわかんなかったから残しておこう。
Assembly.GetExecutingAssembly().GetManifestResourceStream(name))
これをStreamReaderにかましてReadToEndでよみだすっていう。
らくちんだねぇ。どっとネットって。
ちなみに
埋め込みリソースはファイルへの設定が少し必要で。
ビルドアクションに埋め込まれたリソースってやってやる。それだけ。
あとはリソース内部にちりばめられたキーワードに対してデータをリプレイスすれば
サーバサイドのコードができあがりってわけですね。
CreateFormはできたのであとはチョコっとじっそうしたらOK.
残すはクライアントサイドのConfigクラスのJson生成。
来週くらいには素地はできそうww。たのしみだ。
2010年7月18日日曜日
今日はようやく野菜をつくろうかと
お花とか木とか竹とか。
そんなんばっかだったので野菜をそだててみたくって。
ちょうど今日はぷらんたーで 【エダマメ】 。
■栽培ポイント
①プランター向きの品種選び
早生・ごく早稲70プランターに向いている20から30
種まき今からすれば9-10月に取れる。
【プランターに向いている早生を。】
②プランター選び
早生の高さは60cmほど
奥行深さ20センチ。幅60cm。
20~30粒取れる。
【これは去年ゴーヤ用が二つあるのでOKだ】
山ほど作れそうww。
※エダマメは密植できる!!!
■枝豆
20×65×20で12株うえられる。
============
①種まき
・種まき用培養度
・セルトレイ
水を張った容器のに浸す。
10分ほどね。
②種はセルトレイの中央に一つ
ラベルを忘れず。
③「ぎゅー」っと押しこんであげて乾燥を防いでくこと・水をたっぷりね。
常にに観察できるところにおいて観察。
3、4日で発芽
ただし、枝豆を大好きなナメクジがいるのでもうひとつ大きな容器を用意して
外堀を作って塩水、砂糖水、で防いであげる。
なるほど。
■土作り。
枝豆の根っこには根粒があってそれは窒素を取り込んで養分にすることができるって。
だから窒素をふくんだものを与えすぎると葉っぱ育ちすぎてだめってさ。
野菜用培養度
窒素リン酸カリないつもの完熟堆肥。
培養度:完熟堆肥=3:1で両手でさっくりと混ぜてあげるのさ。
⑤うえつける
発芽から7日ほどで10センチほどできる。
本場が生えそろえてから羽越生ける
たくさん植えつけられる植え付け方。
密植しつつ風通しの良い
奥行4~5センチ奥行方向で
よこ10~15センチほどあけて。移植ごての深さ程度ね。
列を決める。
割り箸で。ガイドラインを決めてあげよ。
三つの植え穴を決める。
セルとレイのみっつでぐいっと穴の配置をつけてあげる。
①:虫、病気なし
②:父子と父子のあいだが短い
③:双葉がついていること
で植え付け:
割り箸でズぼっとセルとレイから抜いて植えつける。
支柱を60cmで誘引してあげる。
水をタップり上げてひあたりの良い場所で管理。
そんなんばっかだったので野菜をそだててみたくって。
ちょうど今日はぷらんたーで 【エダマメ】 。
■栽培ポイント
①プランター向きの品種選び
早生・ごく早稲70プランターに向いている20から30
種まき今からすれば9-10月に取れる。
【プランターに向いている早生を。】
②プランター選び
早生の高さは60cmほど
奥行深さ20センチ。幅60cm。
20~30粒取れる。
【これは去年ゴーヤ用が二つあるのでOKだ】
山ほど作れそうww。
※エダマメは密植できる!!!
■枝豆
20×65×20で12株うえられる。
============
①種まき
・種まき用培養度
・セルトレイ
水を張った容器のに浸す。
10分ほどね。
②種はセルトレイの中央に一つ
ラベルを忘れず。
③「ぎゅー」っと押しこんであげて乾燥を防いでくこと・水をたっぷりね。
常にに観察できるところにおいて観察。
3、4日で発芽
ただし、枝豆を大好きなナメクジがいるのでもうひとつ大きな容器を用意して
外堀を作って塩水、砂糖水、で防いであげる。
なるほど。
■土作り。
枝豆の根っこには根粒があってそれは窒素を取り込んで養分にすることができるって。
だから窒素をふくんだものを与えすぎると葉っぱ育ちすぎてだめってさ。
野菜用培養度
窒素リン酸カリないつもの完熟堆肥。
培養度:完熟堆肥=3:1で両手でさっくりと混ぜてあげるのさ。
⑤うえつける
発芽から7日ほどで10センチほどできる。
本場が生えそろえてから羽越生ける
たくさん植えつけられる植え付け方。
密植しつつ風通しの良い
奥行4~5センチ奥行方向で
よこ10~15センチほどあけて。移植ごての深さ程度ね。
列を決める。
割り箸で。ガイドラインを決めてあげよ。
三つの植え穴を決める。
セルとレイのみっつでぐいっと穴の配置をつけてあげる。
①:虫、病気なし
②:父子と父子のあいだが短い
③:双葉がついていること
で植え付け:
割り箸でズぼっとセルとレイから抜いて植えつける。
支柱を60cmで誘引してあげる。
水をタップり上げてひあたりの良い場所で管理。
ExtJs-95 サーバサイド開始
なんだか金、土とぐっすりで、今朝は5時おきで少しだけコードを組めた。
まぁ、すぐにこどもたちに邪魔されたので中止したけど。。
====
サーバサイドの取りまとめと
ジェネレートフォーマットの整理。
こりゃ汎用性皆無だけど、自分用のシステム構築であればべんりだね。
====
今晩これでサーバサイドコードを。
まぁ、すぐにこどもたちに邪魔されたので中止したけど。。
====
サーバサイドの取りまとめと
ジェネレートフォーマットの整理。
こりゃ汎用性皆無だけど、自分用のシステム構築であればべんりだね。
====
今晩これでサーバサイドコードを。
2010年7月14日水曜日
ExtJs-94 キモとなる部分の残り3とチェックボックス
手抜き。。いや、妥協したところはいろいろあったけど
はるか昔にExtJs-68 汎化作業の予定で立てた予定は脱線してプロパティグリッドを使わなくなったものの、ガントチャート用の実装を残して一旦収束を迎えられた。
振り返ってみた。
この間5ヶ月。このだらだら感がすごい。よく続くもので。
最近職が変わってプログラムくまなくなったからこのひと時が一番の楽しみになってきたんだろうなぁ。
===============
===============
で、FrameworkExtention層とアプリケーション用拡張層として分けてみたものの
もうちょっとうまくできたような気もする。
ファイル数とクラス数の増加は予想よりかは小さかったのは良かった。
OOP経験が浅い自分にとっては四苦八苦だ。
ExtJsのコンポーネント系をwrapperとして面倒だけど必ずラップして使うようにしてたのも
後々変更するのが楽だった。
===============
チェックボックスのhiddenName対応。
たぶん、こんなことする必要もなく、かつ推奨されないんだろうけど
手短にチェックボックスの値を常にtrue/falseで送信したかったのでひとまず
Comboの実装を移植してhiddenName対応をしてみる。
これからしばらくはサーバサイドの汎化作業。
これは数日で終わるだろーかと。
共通実装部分の切り出しで終わりにしようと思う。
はるか昔にExtJs-68 汎化作業の予定で立てた予定は脱線してプロパティグリッドを使わなくなったものの、ガントチャート用の実装を残して一旦収束を迎えられた。
振り返ってみた。
この間5ヶ月。このだらだら感がすごい。よく続くもので。
最近職が変わってプログラムくまなくなったからこのひと時が一番の楽しみになってきたんだろうなぁ。
===============
===============
で、FrameworkExtention層とアプリケーション用拡張層として分けてみたものの
もうちょっとうまくできたような気もする。
ファイル数とクラス数の増加は予想よりかは小さかったのは良かった。
OOP経験が浅い自分にとっては四苦八苦だ。
ExtJsのコンポーネント系をwrapperとして面倒だけど必ずラップして使うようにしてたのも
後々変更するのが楽だった。
===============
チェックボックスのhiddenName対応。
たぶん、こんなことする必要もなく、かつ推奨されないんだろうけど
手短にチェックボックスの値を常にtrue/falseで送信したかったのでひとまず
Comboの実装を移植してhiddenName対応をしてみる。
これからしばらくはサーバサイドの汎化作業。
これは数日で終わるだろーかと。
共通実装部分の切り出しで終わりにしようと思う。
2010年7月9日金曜日
ExtJs-93 キモとなる部分の残り2
結局今週はトレーニングと自転車回収と子供の寝かし付け寝落ちと飲み会で一切触れず。
気がつくと一週間。
見直すと、
結局先に進むのを優先して
Observableなつくりにしなかった。
おのおのを呼び合って結びつけるっていうダサくて
わかりづらい実装になってしまった。
イベント登録してリスナー関数登録すればいいだけなんだろうけど、
やる気が起きず。。
ひと段落したらこれは作り直し。
今電車のなかで今夜から週末にかけての実装計画を練った。
今夜と明日の晩でコンテナのワンセットは終了させよ。
つまりクライアントについての骨格は都合悪くない限り土曜日に終わらせる。
日曜の晩でサーバサイドの汎化をおこなって変動部分を外出しに。
このエントリの改版でちゃんと予定どおりになってればいいなぁ。
気がつくと一週間。
見直すと、
結局先に進むのを優先して
Observableなつくりにしなかった。
おのおのを呼び合って結びつけるっていうダサくて
わかりづらい実装になってしまった。
イベント登録してリスナー関数登録すればいいだけなんだろうけど、
やる気が起きず。。
ひと段落したらこれは作り直し。
今電車のなかで今夜から週末にかけての実装計画を練った。
今夜と明日の晩でコンテナのワンセットは終了させよ。
つまりクライアントについての骨格は都合悪くない限り土曜日に終わらせる。
日曜の晩でサーバサイドの汎化をおこなって変動部分を外出しに。
このエントリの改版でちゃんと予定どおりになってればいいなぁ。
2010年7月3日土曜日
ExtJs-92 キモとなる部分の残り
午前一時にビリーズブートキャンプなんてやるものではない。
==
先日、そろそろレイアウトだ!と喜んでいたら肝となる部分がどこまで進んでて
あとなにすりゃいいかわからなくなってしまった。
のでレイアウト系はまたお預け。まぁ本は山ほどあるわけだし、ちょっと後回し。
今日はフォームクラスの検索用モードの実装とグリッドと関連付けるためのコンテナクラスを
作った。作ったっていっても数十行だけど、、、ほんと牛歩。
まぁ、検索できるようになってきたわけで。
検索条件の結合オペレータとSQLの比較オペレータとDBの方による文字列検索句が残るけど、、
少なくとも絞込みができるってことはうれしい限りですね。
残すは詳細フォームでの削除とグリッドとの結合、
検索用フォームの拡充。
ああ、これでクライアント再度の汎用化はゴール目の前。
これでサーバ再度の汎用化。
でレイアウト。
何度も何度も自分に言い聞かせ。。
寝よ。
#タッチパッドで文字を書くものではない。イライラ最高値。
==
先日、そろそろレイアウトだ!と喜んでいたら肝となる部分がどこまで進んでて
あとなにすりゃいいかわからなくなってしまった。
のでレイアウト系はまたお預け。まぁ本は山ほどあるわけだし、ちょっと後回し。
今日はフォームクラスの検索用モードの実装とグリッドと関連付けるためのコンテナクラスを
作った。作ったっていっても数十行だけど、、、ほんと牛歩。
まぁ、検索できるようになってきたわけで。
検索条件の結合オペレータとSQLの比較オペレータとDBの方による文字列検索句が残るけど、、
少なくとも絞込みができるってことはうれしい限りですね。
残すは詳細フォームでの削除とグリッドとの結合、
検索用フォームの拡充。
ああ、これでクライアント再度の汎用化はゴール目の前。
これでサーバ再度の汎用化。
でレイアウト。
何度も何度も自分に言い聞かせ。。
寝よ。
#タッチパッドで文字を書くものではない。イライラ最高値。
登録:
投稿 (Atom)