当社Webサイト

カテゴリー

Amazonサーチ

  • 09/29
    post by 武輪 恭代 @ 2009 年 9 月 29 日 17:20 Java, Wicket

    ども、武輪です。

    前回のWicket小話で、Confirmメッセージを出すにはどうすればよいのか?と言った話をしたのですが、今回も引き続きConfirmメッセージの話をしたいと思います。

    前回、AjaxボタンでConfirmメッセージを表示する方法として、Wicket-extensionのコンポーネントであるModalWindowを使い、独自のポップアップメッセージを表示する方法をとりました。
    しかしながら、これってぶっちゃけConfirmメッセージじゃないよね…!

    というわけで今回はAjaxボタンで正真正銘(?)のConfirmメッセージを表示する方法をご紹介します。

    AjaxボタンでConfirmメッセージ

    >Ajaxで中身を入れ替える以上、onclickアトリビュートをいじるのはややこしそうなので…

    と前回書いたのですが、
    「confirmで確認後、OKだったら既存AjaxのJavaScriptを実行してあげて、キャンセルだったらfalseを返す」
    ようなJavaScriptを書けば問題ないんじゃ…?と思いまして。

    そんなわけでさらっとサンプルを書いてみました。
    サンプルは前回同様、ボタンを押した時に確認メッセージを表示し、OKだったらカウントする、キャンセルだったら何もしない、といった仕様です。

    Confirm2.java

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    public class Confirm2 extends WebPage{
     
    	private int count = 0;
    	private Label result;
     
    	/**
    	 * コンストラクタ
    	 */
    	public Confirm2() {
    		add(result = new Label("result", new PropertyModel<Integer>(this, "count")));
    		result.setOutputMarkupId(true);
    		Form<?> form = new Form<Confirm2>("form");
     
    		form.add(new AjaxButton("count", new Model<String>("カウントしますか?")){
     
    			private static final long serialVersionUID = 1L;
     
    			@Override
    			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
    				count++;
    				target.addComponent(result);
    			}
     
    			@Override
    			protected IAjaxCallDecorator getAjaxCallDecorator() {
    				return new AjaxPreprocessingCallDecorator(super.getAjaxCallDecorator()) {
    					private static final long serialVersionUID = 1L;
     
    					@Override
    					public CharSequence preDecorateScript(CharSequence script) {
    						return "if(!confirm('" + getModelObject() + "')) return false;" + script;
    					}
    				};
    			}
    		});
    		add(form);
    	}
    }

    【メモ】
    25~34行目付近:
    AjaxButtonのgetAjaxCallDecoratorをオーバライドしてあげることで、出力されるAjax用JavaScriptに手を加えています。

    実際に出力されるhtmlは以下のようになります。

    onclick="if(!confirm('カウントしますか?')) return false;var wcall=wicketSubmitFormById('form2', ';[長いので略]"
    

    まとめ

    というわけで、AjaxButtonでも前回みたいな似非確認ダイアログではなくちゃんとした(?)Confirmメッセージを出すことができました。
    AjaxButtonを記述する度にgetAjaxCallDecorator()をオーバライドするのも面倒なので、AjaxButtonを継承したサブクラスを作っておくのが便利そうです。

    動作環境

    今回のサンプルソースは以下の環境で動作させています。

    バージョン
    JDK 1.6.0_13
    Apache Tomcat 6.0.16
    Apache Wicket 1.4.0

    あわせて読みたい

    Tags:

  • 09/04
    post by 武輪 恭代 @ 2009 年 9 月 4 日 11:35 Java, Wicket

    ども、武輪です。

    Webアプリケーションでは、データを登録したり編集したり削除したりといった操作が日常茶飯事です。
    そして「削除ボタンを押した時にいきなり削除するのではなく、confirmメッセージを出す」というのはよくあるパターンですね。

    さてWicket小話その2では、「Wicketで確認メッセージを出すにはどうすればよいのか?」について、実際のコードを踏まえて試してみようと思います。

    [続きを読む...]

    Tags:

  • 08/31
    post by 武輪 恭代 @ 2009 年 8 月 31 日 17:35 Java, Wicket

    ども、武輪です。

    Wicket小話と題しまして、Wicket初心者の私がWicketを使ってみて、

    • これちょっと便利な機能だなー
    • こんなコンポーネントを使ってみたよ!
    • こんな実装やってみたよ!

    などなど。
    そんなちょっとしたメモ書きを徒然と残していこうと思います。

    基本的に情報はWebと書籍「オープンソース徹底活用 WicketによるWebアプリケーション開発」(矢野勉さん著)から得ています。
    あとはWicketのソースとか。

    さてWicket小話その1として、「とりあえずWicketを始めよう」という副題で徒然と書いていきます。

    [続きを読む...]

    Tags: ,

  • 08/04
    post by 白石 将 @ 2009 年 8 月 4 日 13:00 CentOS, Java, Linux

    こんにちは、プロダクト&サービス事業部の白石です。

    唐突ですが、日本はよく豊かな国だと言われることがあります。
    それは、ただ単に日本人の所得が高いというわけではなく選択の幅があるからです。

    いざ美味しいものを食べたいなと思った時、
    日本の料理はもちろんのこと、中華料理、韓国料理、イタリア料理などすぐに見つかります。
    さらにちょっと手間を掛けて、大きな街中に足を運んだりするともっと多彩な国のグルメを楽しむことが出来ます。
    また、こだわりのあるバーなんかに行くと世界中のお酒が並んでたりしますよね。
    こういった選択の幅がある国って他にはなかなか無いそうですよ。

    このように何かしようと思った時に、
    色々あるものの中から好きなものを選べるのことはとても恵まれていることだと思いませんか?

    そんな選択肢を文字通りLinuxに与えてくれるのが update-alternatives というコマンドです。

    今回はCentOSでの検証を基に話をしますが、
    CentOSの他に、Debian、RedHat系(RHELFedora)にも
    この update-alternatives という

    シンボリックリンクを管理してデフォルトのコマンドを決定(man参照)するコマンド

    があります。
    簡単に言うと、複数のバージョン(または似たような機能)を持つプログラムを切り替える(管理する)コマンドです。

    CentOSにSUNの Java を入れたことがある方は、一度は使ったことがあるのではないかと思います。

    今回はこの update-alternatives コマンドについて解説したいと思います。

    [続きを読む...]

    Tags: , , , , ,

  • 07/23
    post by 笹山 昭秀 @ 2009 年 7 月 23 日 10:33 Java, Selenium, テスト

    こんにちは。プロダクト&サービス事業部の笹山です。

    前回のブログ(Seleniumの自動テストを止めることなく、Flexを手動操作する方法)で「FlashSeleniumについて調査をして、このブログに公開できたら・・・」などと書きましたが、全く調査できておりません。お詫び申し上げます。

    前回のブログ執筆時後、SeleniumRCのバージョンも1.0.1に上がっていますし、FlashSeleniumもSeleniumRC1.0互換のものが出ているようです。
    ですから、現時点では「あっさり動いてしまう?」のかもしれません。

    今回もSeleniumRCネタではありますが「SeleniumRCで自己署名証明書使用のWEBアプリケーションをテストする際、Firefoxからのセキュリティ警告を表示させない方法」について書きたいと思います。
    [続きを読む...]

    Tags: , , , ,

« Previous Entries