◆Eclipse Rich Client Platform
◆Eclipse/プラグイン開発のTIPS集/キーバインディングを設定する
Eclipse/RCPはplugin.xmlで宣言的にキーバインディング*1を設定することができます
キーをバインドする仕組み:
まず「コマンド」というモノを定義して、そのコマンドにキーを関連づけ、さらにそのコマンドに対して、アクションを関連づける
◆Eclipse/プラグイン開発のTIPS集/キーバインディングを設定する(Eclipse3.3版)
Eclipse3.3からはアクション関連の機構が、アクションクラスを使うのではなく、
org.eclipse.ui.handlers 拡張ポイントと、org.eclipse.core.commands.AbstractHandler? クラスを拡張するように変更されているようで、
キーバインド設定もそのように機構が変更されています。
拡張ポイントでコマンドとキーバインドを定義するまでは同じですが、コマンドIDに関連づけるのがアクションでなく、ハンドラに変更されています
◆Eclipse RCPプログラミング 1:RCPを生かすアーキテクチャ
http://codezine.jp/article/detail/323
アクションは能動的な切り替えを可能とし、ツールバーにも、ポップアップメニューにも同じアクションを利用することができます。
また、ショートカットキーも設定することができます。
◆Eclipse RCPプログラミング 2:用意されたコンポーネントの利用
Eclipseにはユーザーにヘルプを提供するための数々の方法が提供されています。
例えば、検索機能がついた通常のヘルプ、MS Office製品に多い[F1]キーを押すことによって起動するコンテキスト・ヘルプ、
起動時に製品の概要を表示するイントロ、
製品の使い方をステップ・バイ・ステップで説明するチートシートがあります。
RCPにはユーザービリティを向上させるための数々のコンポーネントがあり、
XMLファイルの編集やわずかなコード追加で再利用することができます。
Eclipse RCPを採用する大きなメリットとしては、既に多くのユーザーに利用されている汎用コンポーネントを
低コストで自分のアプリケーションに導入できる点に尽きる
Eclipseで実現するリッチクライアントの世界
http://thinkit.co.jp/free/tech/19/1/
・Eclipse RCPとはEclipse 3.xから利用可能になったリッチクライアント環境を構築するためのプラットフォームで、
・Eclipseからリッチクライアント構築に必要な最低限のプラグインセットを切り出したものです
1.Webブラウザ上で動作するものではない
2.Eclipse RCP単体では配信のしくみを持たない
・Eclipse RCPにはランタイムとGUIコンポーネント(SWT、JFace)、UIといった起動と画面の表示に必要な最低限のセットしか含まれていません。
・Eclipse RCP単体では配布のしくみを持たないため、配布を自動化するためにはJava Web Startなどの配信のしくみが必要になります。
第2回:アプリケーションを実際に作ってみる(前編)
第3回:アプリケーションを実際に作ってみる(後編)
第4回:アプリケーションの配布
http://thinkit.co.jp/free/tech/19/4/1.html
Eclipse RCPのアプリケーションをJava Web Startを使って配信するためのフレームワークであるWebRCP(http://sourceforge.net/projects/webrcp/)
WebRCP配信の仕組み
・Eclipse RCPはSWTを使用するため軽快に動作しますが、SWTではOSのネイティブAPIを使用するため、
環境に応じてSWTのライブラリをインストールする必要があります(Windows環境ではdll、Linux/Solaris環境ではso)。
・WebRCPではこのSWTのライブラリのインストールを自動化するため、"os.name"、"os.arch"といったシステムプロパティでOSを判断し、
アプリケーションの展開に先立ち、必要なSWTライブラリをダウンロードします。
◆Java Web Start
http://ja.wikipedia.org/wiki/Java_Web_Start
Java Web Start(ジャバウェブスタート)はJava Swing APIなどで記述されたJava製GUIアプリケーションをウェブサーバなどから自動ダウンロード、
自動インストール、自動アップデートして、サンドボックス上にて実行可能な仕組み。
問題点が多いためにFlashよりも劣ると言われるJavaアプレットの代替リッチクライアントと言われている。
たとえば、ウェブブラウザでJava Web Startに対応したJavaアプリケーションへのリンクをクリックすると、
Javaアプレットのようなブラウザ埋め込み型ではなくメディアプレーヤーなどの外部アプリケーションのようにJava Web Startが起動する。
Java Web Start対応Javaアプリケーションを作るには、作成したSwingアプリケーションに、Java Web Startの仕様に従って記述されたXML形式のファイル(拡張子*.jnlpファイ
ル)
を追加してウェブサーバにアップロードする。
http://www.utj.co.jp/xml/dev/java/dxjava_3.html
http://www.utj.co.jp/xml/dev/java/dxjava_4.html
Aタグのリンク先に指定するのはこのmainメソッドを持つclassファイルやjarファイルではなく、JNLPファイルというものです
Webサーバ側はほとんどの場合、MIMEタイプの設定を手動で行う必要があります。
たとえば、Apache HTTP Serverの場合はmime.typesファイルにJNLPファイルに関する行を追加します。
Eclipse RCPアプリケーションをJava Web Startで配布する手順
http://d.hatena.ne.jp/u6k/20091112/1258006317
◆WebRCP
http://www.bbreak.co.jp/technique/doc/eclipse/WebRCP.pdf
http://sourceforge.net/projects/webrcp/
Eclipse RCP で Hello World
http://www.okapiproject.com/richclient/eclipsercp/helloworld.htm
Eclipse RCP
http://www.limy.org/program/eclipse/plugin/rcp.html
plugin.xml
org.eclipse.core.runtime.applications の extension 要素が必要です。
逆に言えば、この要素があればそのプロジェクトはRCPになります。
IApplication
RCPの実行時および終了時に呼ばれるのがこのクラスです。
start / stop メソッドを実装する必要があります。
Ajax,Flash,Java---オープンソースで実現するリッチクライアント 第4回
http://itpro.nikkeibp.co.jp/article/COLUMN/20050920/221409/
・Eclipse RCPはEclipseの柔軟なレイアウト,フレームワーク,軽快なUI,更新機能など,既存のクライアント・サイドJavaの多くの問題点を解決できる。
・Eclipse RCPによるアプリケーション開発の手順は,ほぼEclipseのプラグイン開発と同じになる。
・Eclipseでは機能を追加する際には拡張ポイントと呼ばれる機能拡張のカスタマイズ・ポイントを利用する。
例えばメニューを追加したい場合にはメニューの拡張ポイントを利用し,
エディタを追加したい場合はエディタの拡張ポイントを利用するといった具合である。
・これらの拡張ポイントを定義するファイルがプラグイン・マニフェスト・ファイル(plugin.xml)と呼ばれるファイルであり,
拡張するポイントによって従うべきコーディングのルールが存在する。
・これらのルールと,SWT/JFaceといったGUIコンポーネントの利用方法を理解することがはじめの壁となる
◆SWT
Standard Widget Toolkit
http://ja.wikipedia.org/wiki/Standard_Widget_Toolkit
Javaプラットフォーム用ウィジェット・ツールキットの一種。
元々、IBMが開発したが、現在は Eclipse Foundation が Eclipse IDE と共に管理保守している。
サン・マイクロシステムズが Java 標準の一環として提供するJava用GUIツールキットである AWT と Swing を代替するものとして開発された。
SWT は Java で書かれている。GUI部品を表示するため、SWT はそのオペレーティングシステムが提供するGUIライブラリを JNI(Java Native Interface)経由で使用す
る
EclipseによるSWTアプリケーションの作成
http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_07/eclipse07_1.html
第1回:SWTの特徴
http://thinkit.co.jp/free/marugoto/3/3/1/
◆JFace
http://ja.wikipedia.org/wiki/JFace
Eclipseプロジェクトによる「退屈な作業となるUI機能の実装を支援するクラスを提供するUIツールキット」である
下位のウィジェットの上層に位置し、一般的なUIプログラミングタスクを制御するクラスを提供する。
Standard Widget Toolkit に Model View Controller の視点を持ち込んだものと言える。
JFaceのここがすごい!
http://www.smg.co.jp/books/javapress/38/JavaPress38_Chap2.pdf
SWTとJFace 第1回: やさしい紹介
http://www.ibm.com/developerworks/jp/opensource/library/os-jface1/
Eclipse RCP とは?
http://www.nurs.or.jp/~sug/soft/rich/rich6.htm
◆プラットフォーム拡張サービス:SIEMENS WhitePaper
http://www.plm.automation.siemens.com/ja_jp/Images/20740_tcm821-94679.pdf