2005年02月23日

ブラウザプラグインの作成 - Viewの作成

本日からしばらくインターネットブラウザのプラグインを作成していきます。
まず、今日はブラウザをビューとして表示できるようにしたいと思います。

今回作成したプラグインはこちらからダウンロードできます。→browser_0.0.1.zip
ソースも入っていますのでダウンロードして参考にしながら説明を読んでください。

前回の「プラグイン開発の第一歩」を参考にして新しいビューのプロジェクトを作成します。

1.ビュークラスの説明
ビューが使うクラスは[作成したプロジェクト名.views]のパッケージにソースが生成されています。たぶん***View.javaという名前になっているでしょう。

ビューはソースを見れば分かりますがViewPartを継承して作ります。
生成されたソースには2つのpublicメソッドがありますので簡単に説明します。

public void createPartControl(Composite parent)
ビューが生成されたときに呼ばれるメソッドで、オーバーライドしています。このメソッドでは、ビューの生成・アクションの生成などを行っていきます。

public void setFocus()
説明するまでもないと思うが、ビューにフォーカスが移動してきたときにどの部分にフォーカスを移動するかを記述しておきます。

上記の説明で分かるように、ビューは生成時にすべて定義をするだけで動作することになります。

2.画面の作成
ビューで表示される画面を作成していきます。
Eclipseで表示される画面はSWTで作成していくことになりますが、詳細は省略します。こちらが参考になると思います。→Project AmaterasさんのSWTサンプル集
SWTで画面を作るときに重宝するのがGUIプラグインです。私が使っているプラグインはVisual Editorです。使い方はまた別の機会に紹介できればと思っています。Visual EditorはEclipseの更新サイトからダウンロードできるので簡単にインストールができます。注意点はGEFとEMFもインストールしないといけません。
今回の画面は単純なので普通にJavaソースを編集してもいいかもしれません。。。

前置きが長くなりましたが、そろそろ画面を作成します。
Visual Editorをインストールするとファイル新規作成に「Java>Visual Class」という項目が追加されますのでそれを元に作ります。今回はCompositeクラスを継承して作成します。CompositeクラスはAWTのPanelと同じようなものと思えばいいでしょう。
AWTと違う点はコンストラクタで親のオブジェクトを必要とすることです。

public BrowserComposit(Composite parent,
int style) {
super(parent, style);
initialize();
}
あとは、作成されたCompositeにTextとBrowserのオブジェクトを貼り付けていき、レイアウトを変更していけば画面の作成は終わりです。

次にTextでエンターキーを押したときにブラウザにURLを設定するために、リスナーを追加します。

text.addKeyListener(new KeyListener(){
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {
if (e.character == SWT.CR) {
browser.setUrl(text.getText());
}
}
});
これで画面の作成は終わりです。

3.ビューに画面の追加
後はビューに対して画面を設定するだけです。
テンプレートではTableViewerを画面に使っていますので、そこで先ほど作成した画面に入れ替えます。すると使用できないメソッドがエラーとして表示されます。修正するところもありますが、コメントアウトすればほぼOKです。

4.プラグインの実行
今回作成したビューは「Lunaツール>インターネット・ブラウザ」です。ビューを開いたら、テキストボックスにお好きなURLを入力してエンターキーを押すとページが表示されます。

今回作成したプラグインはこちらからダウンロードできます。→browser_0.0.1.zip
次回は、アクションバーに機能追加します。
では、また。
posted by 月夜 at 16:15| Comment(0) | TrackBack(0) | プラグイン開発 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。