[Seasar2] teeda-extentionのradioでfont装飾

http://d.hatena.ne.jp/mokkouyou2001/20080408/1207639943

の続き


というわけで、本当は、動的radio+ダイナミックプロパティにて
font装飾を行いたかったんだけど、
どうにもできなかったので、結局foreach+ダイナミックプロパティにて対応としました。


koichikさんにはいろいろアドバイスいただいたのですが、こんな回避策になってしまい申し訳ありません。。。


teeda-exampleのradioのソース(SelectOneRadio)に対する変更点

  1. ColorDtoの作成(Serializable、valueもString(keyとvalueの値同一))
  2. Pageとhtml

Page

	private String aaa;
         //DTOで使う値
	public String value;

	public int aaaIndex;
         //ダイナミックプロパティ
	public String getAaaLabel() {
		return aaaItems.get(aaaIndex).getValue();
	}
	public String getAaaFontColor() {
		return getAaaLabel();
	}
	public String getAaaInputValue() {
		return getAaaLabel();
	}
	public String getAaaValue() {
		return getAaaLabel();
	}
	public String getAaaInputChecked() {
		
		if(getAaaLabel().equals(aaa)) {
			return "checked";
		} else {
			return null;
		}
	}
	private List<ColorDto> aaaItems;

html(valueが数字なのは動的に扱われているか確認のため。)

<input type="hidden" id="aaaItemsSave" />
<span id="aaaItems">
	<input type="radio" name="aaa" id="aaaInput" value="0" checked=""/><font id="aaaFont" color="red"><span id="aaaLabel"/></font>
</span>

本当は・・・

動的radioのサンプルにColorDto付け加えて、
fontタグ入れて、
動的radio+ダイナミックプロパティとしたかったんだけどね・・・


以下イメージ
html

<span id="aaa">
	<input type="radio" name="aaa" value="red" checked="checked"/><font id="???" color="red">red</font>
	<input type="radio" name="aaa" value="blue"/><font id="???" color="blue">blue</font>
	<input type="radio" name="aaa" value="hotpink"/><font id="???" color="hotpink">hotpink</font>

</span>


fontタグを追加して、
radioのボタンと、ラベルと、ラベルの装飾色に同一の値を入れたかったんだけど、
fontのid(もしくはname?)をどうしたらいいのかわからなかった・・・


aaaとかにするとfontはうまくいくんだけど、radioが無視されたり・・・
と素敵な動作をしてくれたので、まぁいいやーって感じでした。別に仕事で使うわけではないので
そんな急ぎなわけでもないんですがね(−−;
(そもそもforeachでもまったく困らないし)


もっとも、
radioのラベルとして出す文字を、fontのボディにするわけだから、
そんな簡単にいかねーだろうなぁ・・・とは思っていましたが・・・


ってか・・・あれか???
radioの外側にfontもっていきゃーいいのかな??
今ひらめいた

検証結果

だめでした。
結局idどうふっていいかわからんもんね。
頭が沸いているようです・・・orz