忍者ブログ
[13]  [12]  [11]  [10]  [9]  [8]  [7]  [6]  [5]  [4]  [3
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

テキストフィールドなどから値を取得するにはフォームを作成する。

フォームを作成しなくてもできるっぽいがそれはまた後日。

まずはフォームを作成。

XMLの名前+Formでフォームを作成する。

SubDispForm.java

package gui.test;

import org.seasar.uruma.annotation.ImportValue;

public class SubDispForm {
 @ImportValue(id="title")
 private String title;

 public String getTitle() {
  return title;
 }

 public void setTitle(String title) {
  this.title = title;
 }
}

@ImportValueでXMLのidと等しいものから値を取得することができる。

ちなみに@ImportValueは取得のみ、@ExportValueはセットのみ、@ImportExportValueは両方が可能になる。

値を持ってくるだけだから型がText型じゃなくてString型なんだろうなぁ。

上のはprivateになっているがpublicでも可。

その場合にはセッターとゲッターは必要ありません。(自動的にセット、ゲットしてくれるらしい。)

続いてアクション

package gui.test;

import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
import org.seasar.framework.container.annotation.tiger.Component;
import org.seasar.uruma.annotation.EventListener;
import org.seasar.uruma.annotation.Form;

@Component(name="subDispAction")
@Form(SubDispForm.class)
public class SubDispAction {
 public Shell shell;
 public SubDispForm subDispForm;

 @EventListener(id="button")
 public void dispTitleValue() {
  MessageDialog.openInformation(shell, "TitleValue", subDispForm.getTitle());
 }
}

@Formでどのフォームを使用するかを決定する。

2つ以上の記述は不可。

フォームとアクションは多:1の関係になる。

public SubDispForm subDispForm;でフォームを持ってきてsubDispForm.getTitle()でゲットできる。

フォームがpublic String titleの場合はsubDispFOrm.titleでゲットできる。


最後にapp.diconにアクションとフォームを設定する。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN"
 "http://www.seasar.org/dtd/components23.dtd">

<components>
 <component class="gui.test.MenuAction"/>
 <component class="gui.test.SubDispAction"/>
 <component class="gui.test.SubDispForm"/>
</components>


これで完成。

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
カレンダー
03 2024/04 05
S M T W T F S
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
ブログ内検索
忍者ブログ [PR]

Graphics by Lame Tea / designed by 26℃