GWTにはリッチテキストエディターが存在するが、実際にこれを使おうとしたらフォントの設定などの処理をおこなういわゆるツールバーの記述をすべて自前で書く必要がある。これは面倒なわけだが、リッチテキスト用のツールバーのライブラリが存在するのでその利用を含めて使い方を紹介する。
RichTextToolBarクラス(GWT ShowCase版)
GWTの
ShowCaseで動いているリッチテキストエディターがある。これはApache2.0ライセンスで公開されているので、基本的にこれを使えばよい。ただ、各種操作ボタンの画像などもあわせて取ってくる必要がある。
RichTextToolBarクラス(Erik Scholtz版)
Erik Scholtz 氏が公開しているRichTextToolBarクラス。
彼のBLOGにて公開している。また同じものが、
GoogleCodeにも公開されている。
どちらも使い方は同じで、制御したいRichTextAreaのインスタンスを宣言時にコンストラクタの引数として渡せばオッケイ。
なお両者の違いだが、後者のErikのクラスはアイコン画像ファイルをErikのサイトからダウンロードする形になっています。ソースを見てもらえばわかりますが、アイコンをまとめたファイルを一気にとってきてそれを分割して各ボタンに割り当てています。こっちのほうがダウンロードして即使えるという利点がありますね。
参考までに、UIBinderでの記述例を以下に載せます。
(~.ui.xmlファイル)
- <ui:uibinder xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:ui="urn:ui:com.google.gwt.uibinder">
- <ui:style>
- </ui:style>
- <g:htmlpanel>
- </g:htmlpanel></ui:uibinder>
-
-
- <table><tbody>
- <tr><td><g:simplepanel ui:field="tbar"></g:simplepanel></td></tr>
- <tr> <td style="width: 800px;" valign="top"><g:richtextarea ui:field="rtext">サブジェクト</g:richtextarea></td> </tr>
- </tbody></table><g:button>OK</g:button><g:button>Cancel</g:button>
OKCancel
(~.javaファイル)
- @UiField
- RichTextArea rtext;
- @UiField
- SimplePanel tbar;
-
- RichTextToolbar toolBar = new RichTextToolbar(rtext);
- tbar.add(toolBar);
@UiField
RichTextArea rtext;
@UiField
SimplePanel tbar;
RichTextToolbar toolBar = new RichTextToolbar(rtext);
tbar.add(toolBar);
このように記述するだけで、ちょっとしたリッチテキストエディターの完成です。
なお、本サイトの掲載内容は、www.keicode.comさんの「
書式付入力ボックス ~ RichTextArea の利用」を参考にさせていただきました。