2004-11-01から1ヶ月間の記事一覧

きょうのできごと

WOMeetingに参加させていただきました。 http://www.okada.jp.org/WOWiki/index.php?WOMeeting 巨匠たちに囲まれ、びくびくのデモでした(笑)Cayenneのデモは概要レベルでしたが、引き続き調べていこうかと思います。しかし、世間は狭いっ!驚愕の事実が・…

軽快なJava

本を買いました。軽快なJava―Better,Faster,Lighter Java作者: ブルース・A.テイト,ジャスティンゲットランド,Bruce A. Tate,Justin Gehtland,岩谷宏出版社/メーカー: オライリージャパン発売日: 2004/09メディア: 単行本購入: 1人 クリック: 18回この商品を…

最後に感想など

結構長きに渡ってFlexを触ってみました。 出来上がったものの完成度はかなり低いですが(笑)、それでもリッチクライアントの可能性を十分に感じる事が出来ましたし、Java開発者でもFlexなら何とかなるなという考えを持ちました。 あとはドキュメント!ドキ…

Validationを実装する

実装場所はSubmitWindowになります。 以下のような定義をしました。 SubmitWindow.mxml(抜粋)

Flexに用意されているValidation

ほとんど機能的には出来上がりました。 最後に地味ながら重要な機能、Validationを実装したいと思います。FlexにはValidationがあらかじめ組み込まれています。しかもご丁寧な事にCreditCardValidator、EmailValidator、DateValidatorなど一見便利そうな(笑…

メールとURLのリンクを表示する

メールとURLのリンクをアイコン付きで表示したいと思います。 メールもしくはURLがセットされている場合、日付けの上にアイコンが表示され、マウスをかざすとToolTipとしてメールアドレスやURLが表示される様にします。 アイコンをクリックするとメーラーが…

削除機能を実装する

残る削除機能を実装します。 Treeから返信したいメッセージをクリックして選択して削除ボタンを押すと、確認ダイアログが出て、実際に削除されるという仕様で行きたいと思います。 まずはサーバ側の実装から。 削除メッセージのプライマリキーが引数です。 M…

返信機能を実装する -その2-

つぎに、実際に返信する機能を実装してみます。 返信ボタンが押されたら、タイトルに「Re : 」を付加した返信メッセージを生成し、SubmitWindowを開いてバインドしたいと思います。 文章で書いても何の事やらなので、ソースの方を・・・ まず、前回定義したo…

返信機能を実装する -その1-

返信機能を実装します。 Treeから返信したいメッセージをクリックして選択すると返信ボタンがアクティブになり、 ボタンを押すと入力フォームが現れてくる仕様で行きたいと思います。 まずはサーバ側の実装から。 返信元のメッセージのプライマリキーと、返…

ToolTipは無理だった・・・

Treeの実装は一通り終わりましたが、一つ考えていた事がありました。 それは、マウスをタイトルの上にかざすと「誰がいつ投稿したメッセージなのか」という概要をToolTipとして表示するという機能です。 メッセージの詳細をいちいちロードしなくても、とりあ…

Messageの中身を表示する

メッセージのリスト表示まで出来たので、リストからクリックで選択するとメッセージの中身を見る事ができる様にしたいと思います。 まずはサーバ側の実装から。 プライマリキーがクライアントから飛んでくるという仕様で、Messageオブジェクトをフェッチしま…

TreeにXMLをセットする

XMLを吐き出す準備が出来た所で、今までスタティックなXMLをロードしていた部分をやめて、リモートから動的にXMLを取得する様に変更を加えます。 まずはRemoteObjectの定義です。以下を追加します。 bbx.mxml(抜粋) <mx:method name="getSummaryListXML" result="getSummaryListXML_result(event)" fault="handleFault(event)"/> resultに対応するメソッドを実装します</mx:method>…

getSummaryListXML()を実装する

XMLシリアライズするコードはこのように書けます。 MessageService.java /** * 投稿された全てのメッセージの概要リストをXMLにしたものを取得します。 */ public String getSummaryListXML() throws Exception { String result = null; try { System.out.pr…

Messageオブジェクトをカスタマイズ

さて、実際にbetwixtでMessageオブジェクトをXMLシリアライズしてみましょう。 基本的にはbetwixitにおまかせですが、少しだけカスタマイズが必要です。 FlexのTreeコンポーネントに表示するためには、labelという属性を付加する必要がありました。*1 label…

Commons betwixtを使ってみる。

実装方針は決まったので、さてどのようにしてXMLを作れば良いか・・・最近ではいろいろ便利なライブラリが存在しますが、今回はJakarta Commons betwixtを使用します。 http://jakarta.apache.org/commons/betwixt/ betwixitはJavaBeansをXMLシリアライズす…

メッセージの概要リストはXMLで!

メッセージ投稿機能が出来上がりました。でも、投稿した結果がクライアント側に依然として反映されていません。今回はその部分を実装したいと思います。 メッセージの概要リストを取得するメソッドを実装します。メソッドとしてはgetSummaryListXML()です。…

データをコミットする実装をおこなう

最後に、定義したメソッドを利用して、ボタンを押した時に実際にデータをコミットさせる実装を行います。 まず、「新規スレッドを立てる」ボタンを押した時、openSubmitWindow()がコールされますが、この時に新規Messageオブジェクトのインスタンスを生成し…

RemoteObjectの定義をする

次に、bbs.mxmlにRemoteObjectの定義をします。ここでどのクラスのどのメソッドを実行するか等を定義します。 bbs.mxml(抜粋) <mx:RemoteObject id="remote" encoding="AMF" source="bbs.service.MessageService"> <mx:method name="insertNewMessage" result="insertNewMessage_result(event)" fault="handleFault(event)"/> </mx:RemoteObject> m…

MessageServiceの実装(新規メッセージ)

データが入っていないと表示するものも無いので、最初に新規メッセージ投稿機能を加えます。 MessageServiceのinsertNewMessageメソッドですが、ここの引数はMessageBeanオブジェクトとしました。 これはクライアント側で入力したデータを、FlexがMessageBea…

クライアント側にMessageBeanクラスを作る

さて、アプリケーションサーバのMessageServiceから結果としてMessageBeanオブジェクトが返ってきたり、引数としてMessageBeanオブジェクトを与えたりする必要があります。この場合、flexではどうすれば良いのかというと、JavaのMessageBeanオブジェクトを表…

問題発覚!

前回のCayenneTapestryに引き続き、今回も事前検証不足による問題が発覚しました(笑)。 AMFでやりとりするオブジェクトは、Cayenneが生成したDataObjectをそのまま使おう・・なんて軽く考えていたのが間違いでした。厳密にはJavaBeansを使う必要があるんで…

WOMeetingからのお誘いが・・・

http://www.okada.jp.org/WOWiki/index.php?WOMeeting まずい!いい加減さがばれてしまう(笑)

サーバとの通信 - 下準備(Flash Remoting編) -

めでたくサーバー側のデータ永続化の下準備が出来た所で、次にFlashクライアントと通信する専用クラス・MessageServiceクラスを作りましょう。 図にするとこのようなイメージです。分かりにくくてすんません。 ようは、あまりサーバー側の処理と言う事を意識…

サーバとの通信 - 下準備(Cayenne編) -

では、いよいよサーバとの連携部分を作っていきたいと思います。 まず、データの永続化の実装ですが、Tapestryで掲示板を作った時と同じCayenneを使用してみたいと思います。 じつは掲示板などのステートレスなアプリケーションには、理由があってCayenneは…

SubmitWindowを表示する

ここまで出来た所で、bbs.mxmlにもう一か所、手を加えます。 ボタンがクリックされた時にどのメソッドを実行するかと言うスクリプトを書きます。 かんたんですねー。 最終的にbbs.mxmlのソースはこうなりました。 mxmlを別ウインドウで表示 実行してみると解…

ActionScriptを記述する -Javaとの比較-

では、先ほど作ったSubmitWindowを表示してみたいと思います。 スクリプトは以下の様になります。 <mx:Script></mx:Script>かりにこれをJavaで書いたらどうなるでしょうか??(もちろん書けませんけど、Javaに翻訳したら・・・) imp…

ActionScriptを記述する -どこに書くのか?-

「手前にモーダルなウインドウを表示する」ことを実現するためにはいくつか方法があるようですが、今回はActionScriptに用意されているPopUpManagerというクラスを使ってみる事にします。 bbs.mxmlに を加えます。XML中にスクリプトをかく訳ですから、念のた…

投稿画面を作る(SubmitWindow)

もう一画面作る必要があります。メッセージ投稿画面です。 これはボタンを押したときに「手前にモーダルなウインドウとして表示」する事とします。 この辺がリッチクライアントの利点で、ユーザの入力を制御できますし、ユーザ側も普段使用しているGUIアプリ…