n-kawaiさんから寄贈ソースです♪
by satoshi
・nikonikoサンプルの説明
本ソースは、FexDataService?を利用したニコニコカレンダー(もどき)の
学習用サンプルソースです。
ニコニコカレンダーとは?
http://www.geocities.jp/nikonikocalendar/index_ja.html
#ref(): File not found: "nikoniko_image.jpg" at page "FDSを使ったニコニコカレンダー"
・使用した環境
APサーバ :Tomcat5.5.17
JVM :J2SE5.0_update8
データベース:MySQL5.0.22
JDBC :MySQLのJDBCドライバ
Flex :FlexDataService? Express版
※JDBCが使用できればMySQL4.xでも動作すると思います
・環境設定
(1)J2SE、Tomcat、MySQL、FlexDataService?は
それぞれインストールしてください。
MySQL上のschemaとユーザ・パスワードを決めておきます
(2)FDS付属のsamples.warもしくはflex.warを
デプロイし、動作するようにしておいてください。
(3)DBテーブルの作成とデータセットは、
Javaソースにスタンドアロンで動作するコードが
含まれているので、各ソース中のDriverManager?の
MySQL定義を使用環境に応じて変更して、実行してください。
(4)データソースの定義
Javaソース中ではJNDI名を
jdbc/nikonikodb_ref
と定義しています。この名前でMySQLへのデータソースを
定義するか、任意の名前に変更してデータソースを定義
してください。
(5)コンパイルしたファイルの配置
Javaクラスは、webapps/flex/WEB-INF/classes/にコピー
Flexファイルは、webapps/flex/nikoniko/にコピー
assetディレクトリもそのままwebapps/flex/nikoniko/にコピー
(6)data-management-config.xmlの編集
ソースとともに例を添付しています。
destinationタグブロックを、使用環境のdata-management-config.xml
に追加してください
<destination id="samples.nikoniko.account">
<destination id="samples.nikoniko.group">
<destination id="samples.nikoniko.status">
<destination id="samples.nikoniko.dailyStatus">
<destination id="samples.nikoniko.statusTotal">
・使用方法
(1)上記で配備したURLをWebブラウザ上で指定します
ex)http://localhost:8080/flex/nikoniko/nikoniko.html
(2)ログイン処理は、本サンプルでは未実装です。
そのままログインするとAP画面に遷移します。
(3)画面説明
左画面:ログインしたユーザ名表示と、
ニコニコ度の登録フォーム(当日の登録しかできません)、
同じグループメンバの7日間の状態表示
右上画面:組織全体のニコニコ度比率
右下画面:グループ別のニコニコ度人数分布
・ソース(src)の内容
ds_nikoniko :Java側のFDSアセンブラとDBアクセスソースコード
nikoniko :テスト用DBテーブルを処理するJavaアプリケーション
(テーブル作成、テーブル削除、ダミーデータ生成)
samples :FDS用Javaソースコード
nikoniko:
common:共通(ここでは空の例外クラスをだけ)
dao :DAOのインタフェース定義
dto :DTOのインタフェース定義
main :実装処理
DTOの実装(_iがない)
DAOの実装(_iがない)
????Assembler(FDSのアセンブラモジュール)
nikoniko :Flex2のソースコード
nikoniko.mxmlとnikoniko.asがメインソース
samples :
nikoniko:FlexのDTOクラス(Javaと同名)、
:UIコンポーネントで使用するデータプロバイダ用のクラス
・命名規則など
UIコンポーネント:Flashでの記法と同等
ex)MovieClip?であれば_mcなど
Adobeのどこかにドキュメントがある?
タグのID名 :Panel,Form,Boxなど名前の後ろにつけて、どういうタグかわかるようにする
UIコンポーネントと同じような命名でもOK、どちらかに統一する
ステート名 :名前の後ろを_stateにする
クラス名 :任意
インスタンス変数:ハンガリー記法っぽく
クラスの省略系文字に続き、意味を表す変数名
ex)ユーザ情報のArrayCollection?であれば
acUserInfo?
ac:クラス名の省略形
(もちろんバリエーションに限度があるので、共通認識できるよう統一する)
UserInfo?:意味を表す名前
※短いスコープ(関数内のみのローカル変数や一時的に使用する変数)で
使用される変数名は任意でよい。可読性やソースの記述しやすさを考慮
イベント関数 :addEventListener?などでコールバックされる関数には
名前の後ろにHandlerとつけるか、
そのイベントの種類をあらわすような名前を後ろにつける
ex)ボタンのクリックの場合、_clickと負荷する
他の関数名 :このサンプルでは特に決めていない
(何を行うかわかるような名前)
・コメント
ASDocに対応したコメントを記述する(が、まだASDocを試していない)
・Getter/Setterの実装
本サンプルのActionScript?側ソースはクラス変数を直接参照しているが、
Javaと同様、正しくは実装しておくべきだと思う
・既知の問題・課題
(1)あまりエラー処理が記述されていない
DataService?でのエラー
DBテーブルが空の場合を考慮していない
など
(2)週間の状態表示DataGrid?でコメントのツールチップ表示指定でwarningが表示される(デバッグ時)
(3)ArrayCollection?にSetItemAt?を使用すると、Updateではなく、Delete&Addという挙動になる。
仕様か?
・ライセンス
この作品は、クリエイティブ・コモンズの帰属-非営利-同一条件許諾 2.1 日本ライセンスの下でライセンスされています。この使用許諾条件を見るには、http://creativecommons.org/licenses/by-nc-sa/2.1/jp/をチェックするか、クリエイティブ・コモンズに郵便にてお問い合わせください。住所は:559 Nathan Abbott Way, Stanford, California 94305, USA です。
http://www.fxug.net/archives/sample-source/fds/nikoniko_fxug_v0_1.zip