2004-01-01から1年間の記事一覧

サーバとの通信 - 下準備(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アプリ…

Treeにデータを表示する

Treeコンポーネントにはデータが表示されていません。 表示するためにはdataProviderをバインドする必要があります。 このdataProviderを作るためにはいろいろな方法があるみたいですが、とりあえず簡単なXMLを作ってそれをバインドしてみる事にします。 Sum…

モックアップを作る

さて、チュートリアルを一通り終えると、MXMLの事が何となく解る様になります。 自分でも出来そうな気がしてきます(?)のでこんなインターフェースにしようと考えてみました。 クリックすると拡大します で、いきなりなんですが、MXMLで作ってみました。 …

開発環境を作る

私の所では、例にもれずEclipseを使っています。 Tomcat Pluginをインストールして、Tomcatプロジェクトとして開発しています。 データベースは簡単のためにHSQLDB*1を使っています。 flex.warを解凍して出来たWebアプリケーションを流用して、ディレクトリ…

FlexのClassLoader

現在いろいろ調査中なんですが、問題発生!Flexは独自のClassLoaderを持っています。 たぶんこいつのせいで、XML Parserがらみの問題が発生します。 Flex関連のjarファイルは WEB-INF/flex/lib という、通常のjarファイル置き場とは異なる場所にあります。 …

Flexのしくみ

まずはさておき、簡単にFlexの動作原理を紹介したいと思います。 誤解を恐れずに言うならば、FlexはJSPのFLASH版だ!と言ってもあながち間違いじゃないと思われます。 拡張子にmxmlのついたMXMLで記述されたXMLファイルがクライアントから呼び出されると、Fl…

Flexをインストールする(MacOSX)

Javaアプリケーションサーバが別途必要ですので、はじめにセットアップしておいて下さい。(いわずもがな) まずはFlexをMacromediaからダウンロードしてこなければ話は始まりません。 ダウンロード先は http://www.macromedia.com/jp/software/flex/trial/ …

Flex導入-その2-

Flexとは、Macromediaからリリースされた、リッチクライアント開発フレームワークの事です。 クライアントはFLASH(swf)として配信されますので、ほとんどの場合見る側の環境には問題は無いでしょう。 ライセンス料が150万円という、高いのか安いのか微妙な…

Flex導入-その1-

以前、CayenneとTapestryを使って、掲示板を作ってみました。 http://d.hatena.ne.jp/toolkit/searchdiary?word=%2a%5bCayenneTapestry%5d 現在WebObjects使いと言う事もあり、その視点で作ってみましたが、今回は早速浮気してMacromediaから発表されたFlex…

というわけで

Flexを引き続き調査しております。Flexで掲示板も出来そうな気配。だんだん解ってきました。 Flexのホーム(http://www.macromedia.com/jp/software/flex/)の最新情報に Macromedia、Flex 非商用 / 非業務用デプロイメントライセンスを発表 とかいてあり、…

その他も見てきました。

Colin Moockさんって有名なんですか? http://www.macromedia.com/jp/macromedia/events/flashcon2004/sessions/t1.html オライリーのActionScriptリファレンスを執筆されている方だそうですが、Flashでそこまでやるのか!というような内容。こんな事できる…

セカンドファクトリーさんのプレゼンを見ました。

http://www.macromedia.com/jp/macromedia/events/flashcon2004/sessions/b3.html すでにFlexを導入実績があるとはびっくり。でももともとFlashを使っていた会社のようで・・・。開発プロセスの話はFlexでも保守性や生産性向上を測る事が出来ますよとのお話…

クリストフさんのセッションをみました。

http://www.macromedia.com/jp/macromedia/events/flashcon2004/sessions/b2.html このかた、英語がとても聞き取りやすくて・・というか、言わんとする内容が予測つくからかもしれませんけど、同時通訳は不要でした。 それどころか、誰かの同時通訳のボリュ…

ふらこん2004に行ってきました。

結構人がいっぱいで待ちが辛かった・・・ それにしてもあの自動演奏のピアノは邪魔(笑)いかにもFLASHクリエータ系の方から、おそらく今まではいなかったであろうSIer系の人まで、様々な人種が渦巻いておりました。

Macromedia Flex

米Macromedia、「Flex」の非商用ライセンスを発表 http://nikkeibp.jp/wcs/leaf/CID/onair/jp/it/335784 そうきたか!このプログラムが日本でも行われないかなぁ? そしたらFlexで掲示板をやるんだけど(笑)

フラコン2004

Tapestryもよかったけど・・・これからの事を考えるとやっぱりFlexかなぁ(笑) というわけで、フラコン2004(http://www.flashcon2004.jp/)に参加決定。

削除機能を変更する

では、DeletePageの削除機能を、管理者パスワードで削除できるように変更します。 変更箇所はcheckPassword()メソッドになります。 DeletePage.java(抜粋) private boolean checkPassword() { if (getUserPass() == null || getUserPass().length() == 0) …

管理者パスワードを作る

メッセージの「削除」時に、管理者が削除できないと意味がありません。 そこで「管理者パスワード」を設けます。 ここではTapestryのGlobalオブジェクトを使用してみたいと思います。GlobalオブジェクトはVisitオブジェクトと似ていますが、その名の通りアプ…

MessageComponentを修正する(URL、メールのリンクを表示する)

あと、もう一つ、MessageComponentでやり残した事があります。それはURLとメールのリンクを表示する事です。 現在はダミーで画像アイコンを表示させています。 外部リンクはTapestryに標準のGenericLinkコンポーネントを使用する事にします。 URLやメールが…

MessageComponentを修正する(日付けを表示する)

次に、日付け表示を直してみたいと思います。 日付けはMessageオブジェクトのsubmitDateを表示する事にします。 WebObjectsであれば、バインドする時に日付けのフォーマット書式を与えてやれば簡単なんですが、ちょっとみたところTapestryには無いようなので…

MessageComponentを修正する(リンクを隠す)

「返信」や「削除」のリンクを表示しないで、純粋にメッセージの中身だけを表示したい場合があります。 そのために、これらのリンクを表示する、しないのバインディングを作っておきます。 MessageComponent.html(抜粋) <td align="right" nowrap> <span jwcid="showConditional"> <span jwcid="resActionLink">返信</span> <span jwcid="deleteActionLink">削除</span> </span> </td> MessageComponent.jw…

削除機能を仕上げる

DeletePageはこれで完成しましたが、このページを呼び出すためにMessageComponentも修正する必要があります。 今まで「返信」のリンクがあった隣に、「削除」というリンクを表示します。 MessageComponent.html(抜粋) <td align="right" nowrap> <span jwcid="resActionLink">返信</span> <span jwcid="deleteActionLink">削除</span> </td> 削除を追加しました。 Me…

削除機能を実装する

削除するには、削除用パスワードとの照合を行います。 削除ページ(DeletePage)を作る事からはじめますが、メッセージの表示などは今まで作ったコンポーネントを使い回しましょう。 DeletePageには、削除対象のメッセージオブジェクトをバインドします。 Dele…

削除機能を実装するために

Cayenneにおいて、データベースからデータを削除する事は非常に簡単です。 ただし、リレーションを張っている場合は注意する必要があります・・・って、これはリレーショナルデータベースを扱っていたら当たり前な事なんですけどね。実際に削除するためには…

TestPageを仕上げる

最後に、今まで作った二つのコンポーネントを使用するように、TestPageを変更したいと思います。 TestPage.html <html> <head><title>TestPage</title></head> <body> <span jwcid="submitComponent"/> <hr/> <div align="center"> <span jwcid="messageListComponent"/> </div> </body> </html> 今までメッセージのリストのループを記述していた部分がなくなり、と記述するだけになりました。 TestPage.page