Wicket as Meta-Framework



Similar documents
S2Wicketの紹介

おすすめページ

データベースS 演習資料

(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

Sea-NACCS 利用者研修 【通関編】

サーバサイドスクリプトPHPを実感しよう

XML形式の電子報告書作成に当たっての留意事項

Microsoft PowerPoint - 報告書(概要).ppt

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図

2.4 箇 条 書 のスタイルを 変 更 する 右 クリックして 箇 条 書 と 番 号 付 け を 選 択 する. あとは 少 し 遊 べば, このようなことをやりたい 人 は 理 解 できると 思 います 3 いろいろな 入 力 ワープロを 使 う 上 で 肝 心 な 点 は, 空 白 調 整

スライド 1

請 求 データを 作 成 しましょう 操 作 手 順 1 トップページ 画 面 で [ 口 座 振 替 請 求 ]をクリックして 口 座 振 替 請 求 サービスのメインメニュー 画 面 を 表 示 し [ 請 求 データ 作 成 ]をクリックします 請 求 データは 最 大 10 個 作 成 する

Microsoft PowerPoint _リビジョンアップ案内_最終.pptx

1 林 地 台 帳 整 備 マニュアル( 案 )について 林 地 台 帳 整 備 マニュアル( 案 )の 構 成 構 成 記 載 内 容 第 1 章 はじめに 本 マニュアルの 目 的 記 載 内 容 について 説 明 しています 第 2 章 第 3 章 第 4 章 第 5 章 第 6 章 林 地

オートビズにPayPalを対応させる方法

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

DN6(R04).vin

Microsoft Word - mtdevguide1_for_sample.doc

1_2013BS(0414)

Microsoft Word - H27概要版

工 事 名 渟 城 西 小 学 校 体 育 館 非 構 造 部 材 耐 震 改 修 工 事 ( 建 築 主 体 工 事 ) 入 札 スケジュール 手 続 等 期 間 期 日 期 限 等 手 続 きの 方 法 等 1 設 計 図 書 等 の 閲 覧 貸 出 平 成 28 年 2 月 23 日 ( 火

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

振込データの作成

新 生産管理システム ご提案書 2002年10月15日 ムラテック情報システム株式会社

勤 怠 項 目 6~10の 追 加 < 概 要 > 勤 怠 項 目 6~10を 追 加 しました それに 伴 い 下 記 の 箇 所 が 変 更 になりました ページ 場 所 誤 25 給 与 奉 行 への テキスト 書 出 順 勤 怠 項 目 1~ 勤 怠 項 目 5 27 内 容 勤 怠 項 目

Microsoft Word - FrontMatter.doc

R4財務対応障害一覧

<82C582F182B382A2322E3594C5837D836A B2E786C73>

■デザイン

Lecture/CompPracR2003/12th

している 5. これに 対 して 親 会 社 の 持 分 変 動 による 差 額 を 資 本 剰 余 金 として 処 理 した 結 果 資 本 剰 余 金 残 高 が 負 の 値 となるような 場 合 の 取 扱 いの 明 確 化 を 求 めるコメントが 複 数 寄 せられた 6. コメントでは 親

富士山チェックリスト

RaQuest MindManager

工 事 名 能 代 南 中 学 校 体 育 館 非 構 造 部 材 耐 震 改 修 工 事 ( 建 築 主 体 工 事 ) 入 札 スケジュール 手 続 等 期 間 期 日 期 限 等 手 続 きの 方 法 等 1 設 計 図 書 等 の 閲 覧 貸 出 平 成 28 年 5 月 24 日 ( 火


4 参 加 資 格 要 件 本 提 案 への 参 加 予 定 者 は 以 下 の 条 件 を 全 て 満 たすこと 1 地 方 自 治 法 施 行 令 ( 昭 和 22 年 政 令 第 16 号 ) 第 167 条 の4 第 1 項 各 号 の 規 定 に 該 当 しない 者 であること 2 会 社

HK05

PowerPoint プレゼンテーション

情 報 通 信 機 器 等 に 係 る 繰 越 税 額 控 除 限 度 超 過 額 の 計 算 上 控 除 される 金 額 に 関 する 明 細 書 ( 付 表 ) 政 党 等 寄 附 金 特 別 控 除 額 の 計 算 明 細 書 国 庫 補 助 金 等 の 総 収 入 金 額 不 算 入 に 関

2013/12/9 1 / 2 1 オープンデータ 1.1 オープンデータ 取 得 概 要 オープンデータ 取 得 API /opendata/(:(.:format)) /opendata/od(:(_:date)(.:format)) オープンデータとしてまとめられている 場 所 リストを 返

Microsoft Word - サンプル _データベースアクセス_.doc

<4D F736F F F696E74202D C90BF8F CC8DEC90AC97E181698A4F8D E8816A5F56322E707074>

-.HPOP について HPOP(ホームページオプション )とは お 客 様 のHPとプロ エージェント を 連 動 させるオプションサービ スのことです 以 下 の2 種 類 を 初 期 費 用 円 / 月 額 5000 円 でそれぞれ 提 供 しています JOB 自 動 公 開 機

4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10

■ディレクトリ

Microsoft Word - 03accessデータベース演習レジメ.doc

目 次 はじめに.... デジカメからの 画 像 取 込 画 像 情 報 の 登 録 部 位 の 設 定 目 的 の 設 定 目 的 の 追 加 画 像 情 報 の 登 録 ( 備 考 の 設 定 ) 備 考

<4D F736F F F696E74202D2082C882E982D982C DD8ED88EE688F882CC82B582AD82DD C668DDA9770>

設定フロー ★印は必須の設定です

<819A955D89BF92B28F BC690ED97AA8EBA81418FA48BC682CC8A8890AB89BB816A32322E786C7378>

2 科 学 研 究 費 助 成 事 業 のトップページ 画 面 が 表 示 されます [ 研 究 者 ログイン]をクリック します 掲 載 している 画 面 は 例 示 です 随 時 変 更 されます 3 科 研 費 電 子 申 請 システムの 応 募 者 ログイン 画 面 が 表 示 されます e

Firebase Analytics手順書_R2

1. 業 務 概 要 貨 物 情 報 登 録 済 の 貨 物 に 対 して システムを 介 さずに 行 われた 税 関 手 続 きについて 税 関 が 許 可 承 認 等 を 行 った 旨 を 登 録 する また システムで 行 われた 以 下 の 税 関 手 続 き( 以 下 輸 出 申 告 等

もくじ

Taro-1-14A記載例.jtd

1. 決 算 の 概 要 法 人 全 体 として 2,459 億 円 の 当 期 総 利 益 を 計 上 し 末 をもって 繰 越 欠 損 金 を 解 消 しています ( : 当 期 総 利 益 2,092 億 円 ) 中 期 計 画 における 収 支 改 善 項 目 に 関 して ( : 繰 越

Microsoft PowerPoint - A07回目②.pptx

Load-time weaveingで広がるAOPの可能性


SchITコモンズ【活用編】

特別徴収封入送付作業について

2 Wee とは Wee はホームページの 更 新 ツールです Wee は サイトの 枠 組 みをWeb 製 作 業 者 が 作 成 し 更 新 は お 客 様 に 自 由 にしていただこうというコンセプトの 製 品 です インターネットに 繋 がる 場 所 ならどこからでも ブラウザでホームページ

Seasar.NET入門

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

<4D F736F F D203193FA8AD45F95CA8E86325F89898F4B315F94F093EF8AA98D AD97DF914F82CC8FEE95F182CC8EFB8F C28E8B89BB2E646F63>

目 次 1. 化 学 研 究 所 研 究 者 データベースについて 研 究 者 情 報 データベース 登 録 システムログイン 画 面 メニュー 画 面 パスワードの 変 更 公 開 時 の 表 示 / 非 表 示 の 設 定.

2 課 題 管 理 ( 科 学 研 究 費 補 助 金 ) 画 面 が 表 示 されます 補 助 事 業 期 間 終 了 後 欄 の[ 入 力 ] をクリックします [ 入 力 ]ボタンが 表 示 されていない 場 合 には 所 属 する 研 究 機 関 の 事 務 局 等 へお 問 い 合 わせく

別冊資料-11

戦略担当者のための

報道関係各位                            2010年7月吉日

検 討 検 討 の 進 め 方 検 討 状 況 簡 易 収 支 の 世 帯 からサンプリング 世 帯 名 作 成 事 務 の 廃 止 4 5 必 要 な 世 帯 数 の 確 保 が 可 能 か 簡 易 収 支 を 実 施 している 民 間 事 業 者 との 連 絡 等 に 伴 う 事 務 の 複 雑

Enterprise Architect日本語版 モデリング操作ガイド (データベースモデリング編)

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..

(Microsoft Word - \203A \225\345\217W\227v\227\314 .doc)

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

家 簿 記 入 者 就 業 者 別 集 結 果 ( 別 紙 1 小 参 照 ) A 夫 婦 のみの 世 帯 ( 片 働 き) では 妻 が 家 簿 記 入 者 で 夫 が 就 業 している 世 帯 が 最 も 多 く 197 世 帯 (98.5%)であった B 夫 婦 のみの 世 帯 ( 共 働 き

図 1 抱 合 株 式 がない 場 合 の 非 適 格 合 併 により 増 加 する 資 本 金 等 の 額 の 計 算 合 併 法 人 株 式 の 価 額 - 移 転 純 資 産 価 額 (2) 合 併 法 人 株 式 等 のみなし 株 式 割 当 等 会 社 法 上 抱 合 株 式 には 合 併

測量士補 重要事項「写真地図作成」

<4D F736F F F696E74202D208E9197BF322D31208C9A90DD B835E CC8A C982C282A282C4>

表紙

公共債のご案内

(Microsoft PowerPoint -


目 次 1. 本 マニュアルについて D-Case ステンシルの 導 入 概 要 インストール D-Case 編 集 D-Case メニュー ノード リンク..

タグの 内 側 で 関 数 を 定 義 してタグ 側 で 実 行 することもできます <TITLE>JavaScript サンプル</TITLE> function write(str) { document.write(str); } write('hello World!'); 上 例 のように

Gmail 利用者ガイド

2. ど の 様 な 経 緯 で 発 覚 し た の か ま た 遡 っ た の を 昨 年 4 月 ま で と し た の は 何 故 か 明 ら か に す る こ と 回 答 3 月 17 日 に 実 施 し た ダ イ ヤ 改 正 で 静 岡 車 両 区 の 構 内 運 転 が 静 岡 運

47 高 校 講 座 モ オ モ 圏 比 較 危 述 覚 普 第 章 : 活

1

「シンセツくん」簡易マニュアル 低圧新増設 街灯一括申込み編

<4D F736F F D208DEC90AC837D836A B81698F4390B394C5816A2E646F63>

/ 0/0/ : 実 結 果 HTMLファイルを 表 します 下 図 の 画 が 表 されます " 出 し"の 部 分 をクリックすると"コンテンツですよ "の 字 が 表 されます もう 度 " 出 し"をクリックすると"コンテンツですよ "の 字 が 非 表 になります 折 りたたみパネルの 基

6 構 造 等 コンクリートブロック 造 平 屋 建 て4 戸 長 屋 16 棟 64 戸 建 築 年 1 戸 当 床 面 積 棟 数 住 戸 改 善 後 床 面 積 昭 和 42 年 36.00m m2 昭 和 43 年 36.50m m2 昭 和 44 年 36.

目 次 1. ログイン ユーザー 登 録 TOP 職 員...8 (1) 職 員 の 名 刺 表 示...8 (2) 職 員 の 名 刺 一 括 ダウンロード...8 (3) 職 員 の 名 刺 帳 から 検 索 検 索...9 (1) 氏 名

2. 事 務 連 絡 者 用 メニュー (1) 登 録 変 更 申 請 委 員 会 メンバー メンバー 個 人 情 報 企 業 情 報 の 変 更 および JIRA 会 員 を 退 会 する 場 合 こ のメニューから 各 種 申 請 を 行 います 申 請 後 変 更 内 容 を JIRA 事 務

活用ガイド-編集しよう

本 日 の 内 容 薬 事 法 改 正 の 概 要 医 療 機 器 QMSに 関 する 条 文 抜 粋 と 解 説 新 法 対 応 に 向 けて

内 容 1. はじめに メールのログイン 初 めてのログイン メールの 受 信 / 送 信 メールの 受 信 メールの 作 成 と 送 信 メールの 新 規 作 成 メー

Transcription:

Karatachi Project ( 仮 ) たけうち(ちめら) chimera@karatachi.org

流 しの 似 非 プログラマ 兼 NEET アセンブラからアスペクト 指 向 までが 座 右 の 銘 言 語 オタクというよりはソフトウェア 工 学 オタク 一 応 まだたぶん 学 生 システムのバグでforループから 抜 け 出 せません アスペクト 指 向 の 研 究 室 のはず ベンチャーもしてたりするかもしれない 一 緒 に 働 いてくれる 人 募 集 中 ( 主 にWicketとかC#とか) 仕 事 はたまに 欲 しいかも

上 から 下 まで 非 常 に 拡 張 性 の 高 いフレームワーク 高 レベルなところではPanelによるコンポーネント 化 低 レベルでは 各 種 ListenerやBehaviorによる 振 る 舞 いの 追 加 もっと 低 レベルなところにも 探 せばいろいろ とりあえず 拡 張 したいと 思 ったところにはだいたい 拡 張 ポイントがある HTML 要 素 の 素 直 かつエレガントなオブジェクト 表 現 ほどよい 粒 度 でのコンポーネント 化 タグの 階 層 構 造 をオブジェクトのコンポジションで 表 している のが 素 敵 ポイント

Component Resolver HTMLタグからのコンポーネントインスタンスの 自 動 生 成 について Teedaっぽいフィールドとプロパティの 関 連 づけの 設 計 と 実 装 Wicket with DI Container SeasarとWicketのつなぎこみをしたときに 見 つけたおもしろい 拡 張 ポイントの 紹 介 むしろ 作 ったS2Wicketもどきの 宣 伝 London Wicket Users Group から Tips & Etc Component Visitorによるコンポーネントの 振 る 舞 いの 一 括 変 更 Borderの 使 い 道 の 模 索

コンポーネントの 自 動 解 決 とその 応 用

Wicketでページを 作 るとき 基 本 となるメソッド HTMLのタグとコンポーネントを 関 連 づける なんか 追 加 するコンポーネントがたくさんあるとだるい 保 守 しにくい <h2> 名 前 入 力 フォーム</h2> <form wicket:id="form"> <p><input wicket:id= name type= text /><p> <p><input type= submit /></p> </form> private class NameForm extends Form { private String name; public InputForm(String id) { super(id); add(new TextField( name, new PropertyModel(this, name )));

public interface IComponentResolver extends IClusterable { public boolean resolve( MarkupContainer container, MarkupStream markupstream, ComponentTag tag); コンポーネント 自 動 解 決 のためのインターフェース HTMLのパース 中 にMarkupContainerに 登 録 されていないwicket:id が 出 現 したとき 呼 び 出 される MarkupContainerに 実 装 するだけで 勝 手 に 呼 び 出 される 登 録 とか 何 もない implementsするだけ ビックリ

public interface IComponentResolver extends IClusterable { public boolean resolve( コンポーネントを 解 決 できなかったコンテナ MarkupContainer container, MarkupStream markupstream, パース& 変 換 中 のストリーム ComponentTag tag); 解 決 できなかったタグの 情 報 タグの 情 報 が 渡 されるのでcontainerに 対 してコンポーネントを 追 加 するだけ public class HomePage extends WebPage implements IComponentResolver { public boolean resolve(markupcontainer container, MarkupStream markupstream, ComponentTag tag) { if (tag.isautocomponenttag()) return false; タグのIDを 取 得 してラベルを 生 成 Label label = new Label(tag.getId(), "Component Not Found + "[id:" + tag.getid() + "]"); return container.autoadd(label, markupstream); ラベルをコンテナに 追 加

<?xml version="1.0" encoding="utf 8"?> <html xmlns:wicket> <head> <title>wicket demo</title> </head> <body> <div wicket:id="test1" /> <div wicket:id="test2" /> <div wicket:id="test3" /> </body> </html> public class HomePage extends WebPage implements IComponentResolver { public boolean resolve(markupcontainer container, MarkupStream markupstream, ComponentTag tag) { if (tag.isautocomponenttag()) return false; Label label = new Label(tag.getId(), "Component Not Found + "[id:" + tag.getid() + "]"); return container.autoadd(label, markupstream);

ComponentTagは 勝 手 に 追 加 したタグの 属 性 も 取 得 で きる つまりはresolverの 制 御 コマンドをタグに 埋 め 込 める.propertiesファイルを 使 うとあんなことやそんなことまで タグ 内 のテキストを 取 得 するのは 少 し 面 倒 MarkupStreamの 動 作 について 知 る 必 要 がある

コンポーネントと 指 定 したオブジェクトのプロパティを その 名 前 で 結 びつけるModel <h2> 名 前 入 力 フォーム</h2> <form wicket:id="form"> <p><input wicket:id= name type= text /><p> <p><input type= submit /></p> </form> 名 前 で 関 連 づける private class NameForm extends Form { private String name; public InputForm(String id) { super(id); setmodel(new CompoundPropertyModel<NameForm>(this));

以 上 を 踏 まえるときわめて 怪 しいことが 可 能 Formクラスのインスタンス 自 身 をCompoundPropertyModelに 入 れて コンポーネントが 自 身 のIDでFormのフィールドを 参 照 で きるようにFormクラスを 継 承 <input>タグや<select>タグのタイプによって 自 動 生 成 するコン ポーネントを 変 えてしまうようなResolverを 実 装 必 須 項 目 を 属 性 としてタグに 追 加 ついでにValidation 情 報 も 追 加 できるようにしちゃったり Reslover 特 盛 り 化 ListViewの 子 要 素 のコンポーネント 追 加 処 理 も 自 動 化 しちゃった りなんかして

<h2> 登 録 フォーム</h2> <form wicket:id="form"> <dl> <dt>お 名 前 </dt><dd><input wicket:id="name" type="text" size="30" wicket:required="true" /></dd> <dt> 参 加 形 態 </dt><dd><select wicket:id="entry" wicket:type="enum:org.karatachi.demo.entrytype" /></dd> <dt> 懇 親 会 </dt><dd><select wicket:id="party" wicket:type="enum:org.karatachi.demo.partytype" /></dd> <dt> 一 言 </dt><dd><input wicket:id="message" type="text" size="80" /></dd> <dd><input type="submit" value=" 登 録 " /></dd> </dl> </form> private class InputForm extends SelfResolveForm implements Cloneable { String name; EntryType entry = EntryType. 一 般 参 加 ; PartyType party = PartyType. 参 加 しない; String message; public InputForm(String id) { super(id); @Override protected void onsubmit() { list.add((inputform) this.clone());

ちなみに 正 規 表 現 での Validationなんかも タグに 記 述 可 能 です 可 能 です

WicketにおけるDIコンテナのサポートとその 利 用

Wicketに 登 録 するオブジェクトはすべてSerializableでな くてはいけない WicketはPageクラスのシリアライズ デシリアライズを 繰 り 返 してセッションを 保 つ DIで 利 用 するオブジェクトはSerializableにすることが 難 しいこと が 多 い Wicketでもコンポーネント 管 理 をおこなっている DI Containerの 管 理 とバッティング Hot Deployを 利 用 しようとするとClassLoaderが2 系 統 作 られDI ContainerのHot Deployが 利 用 できない

WicketとDI Containerの 間 にProxyをはさむ 他 方 のオブジェクトにアクセスする 際 には 必 ずコンポーネン トマネージャーを 一 度 通 す private Foo foo; イメージ @Override public void onpageattached() { foo = SingletonS2Container.getComponent(Foo.class); ページが 表 示 されるときマネージャから 取 得 @Override protected void ondetach() { 表 示 し 終 わったら 一 度 nullにもどす foo = null;

wicket ioc クラスのフィールドをProxyとするためのライブラリ wicket springやwicket guiceなどが 利 用 IComponentInstantiationListener WebApplication 初 期 化 時 に 登 録 すると 全 Component 継 承 クラス でコンストラクタの 一 番 はじめに 呼 び 出 される この 時 点 でDIを 利 用 できるようにすると 継 承 クラスでのコンス トラクタでDIされたコンポーネントを 利 用 できる ReloadableWicketFilter WicketでHot Deployを 実 現 しているFilter DI Container 側 でこいつのClassLoaderを 利 用 するようにしてやれ ばDIContainer 側 もHot Deployされる

IInitializer & IDestroyer WebApplicationの 初 期 化 時 破 棄 時 に 呼 ばれるインターフェース 拡 張 ライブラリを 作 ったときにjarファイル 内 のwicket.properties にinitializerという 名 前 で 実 装 クラスのパスを 書 いておくと 自 動 的 に 起 動 される

Hot Deployの 改 良 Hot Deploy 時 にSeasar 側 で 全 コンポーネントがリロードされてし まうため PermGenスペースが 開 発 時 にすぐ 無 くなる 現 在 あれこれ 呼 び 出 し 順 序 などの 組 み 合 わせを 入 れ 替 えつつ 調 整 中 公 開 にむけて ドキュメントの 準 備 先 のComponentResolverを 使 用 した 作 りためたコンポーネント 群 をどうするか