Eclipse/プラグイン開発のTIPS集/ヘルプを実装する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
----
#contents
Eclipseのヘルプはワークベンチのメニューの
ヘルプ >> ヘルプ目次
にありますが、このhtmlベースのヘルプも拡張して好きなヘル...
この拡張ポイントで目次となるファイル(xml形式)を指定し、そ...
***拡張ポイント [#e65d7276]
org.eclipse.help.toc
***必須プラグイン [#vd99645e]
org.eclipse.help.appserver
org.eclipse.help.base
org.eclipse.help.ui
org.eclipse.help.webapp
org.eclipse.tomcat
***plugin.xmlのサンプル [#cb38fa2e]
<extension
point="org.eclipse.help.toc">
<toc primary="true" file="toc.xml"/> <-トップの目次...
<toc file="tocconcepts.xml"/>
<toc file="tocgettingstarted.xml"/>
<toc file="tocreference.xml"/>
<toc file="tocsamples.xml"/>
<toc file="toctasks.xml"/>
</extension>
***目次となるxml(ここではtoc.xml)のサンプル [#z24cb416]
<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.toc"?>
<toc label="Sample Table of Contents" topic="html/toc.ht...
↑目次のSample Table of Contents をクリックしたときに
表示されるhtmlはhtml/toc.htmlです、の意味
<topic label="Getting Started">
<anchor id="gettingstarted"/>
</topic>
<topic label="Concepts"> <-目次にConceptsと表示
<anchor id="concepts"/> <-toc.xml#conceptsとなって...
</topic>
<topic label="Tasks">
<anchor id="tasks"/>
</topic>
<topic label="Reference">
<anchor id="reference"/>
</topic>
<topic label="Samples">
<anchor id="samples"/>
</topic>
</toc>
*** <anchor id="concepts"/> でリンクされるtocconcepts.xml...
<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.toc"?>
<toc label="Concepts" link_to="toc.xml#concepts"> <-ここ...
<topic label="Main Topic" href="html/concepts/maintop...
<topic label="Sub Topic" href="html/concepts/subtopi...
</topic>
<topic label="Main Topic 2">
<topic label="Sub Topic 2" href="html/concepts/subto...
</topic>
</toc>
#ref(capture.png)
**ポイント [#pbeecb8c]
***htmlファイル群は圧縮できる。 [#h51e70ea]
***目次ファイル内で別の目次ファイルを指定できる [#vd9b9873]
*** ヘルプメニューからではなく、アクションやボタンなどで...
ヘルプメニューの「ヘルプ目次」は
ActionFactory.HELP_CONTENTS.create(window)
でアクションを取得できます。このクラスは実体は
org.eclipse.ui.internal.actions.HelpContentsAction
なのですが、このrunメソッドからヘルプの起動方法を拝借しま...
final IWorkbenchWindow workbenchWindow = getSite().getWo...
if (workbenchWindow == null) {
// action has been disposed
return;
}
// This may take a while, so use the busy indicator
BusyIndicator.showWhile(null, new Runnable() {
public void run() {
workbenchWindow.getWorkbench().getHelpSystem()
.displayHelp();
}
});
これでヘルプが起動できます。
** ヘルプから、プログラムを呼び出す [#c2ec81a7]
org.eclipse.help.ILiveHelpAction クラスを使うと、ヘルプ上...
やり方は、あらかじめヘルプドキュメント内で「アクション」...
***JavaScriptの読込 [#z8695941]
あらかじめ、
<script language="JavaScript" src="../../../org.eclipse....
としてJavaScriptを読み込んでおきます。srcのパスはそのhtml...
<script language="JavaScript" src="../../org.eclipse.hel...
という指定、つまりプラグインのルートからさらに一つ上に上...
***ヘルプドキュメント上にリンク [#uf871d0d]
次に通常のhtmlのリンクの様にJavaScriptを実行するリンクを...
<a href='javascript:liveAction("nu.mine.kino.plugin.form...
"nu.mine.kino.plugin.forms.proto.help.actions.Activehelp...
"")'>Click here for a Message.</a></p>
などとします。各引数の意味ですが、
-アクションを含むプラグインの ID
-アクションをインプリメントするクラスの名前
-setInitializationString を使用してライブ・ヘルプ・アクシ...
となっています。
***アクションクラスの実装 [#c51a147a]
さて、上のnu.mine.kino.plugin.forms.proto.help.actions.Ac...
org.eclipse.help.ILiveHelpAction
をimplementsしています。インタフェースは
public void setInitializationString(String data);
public void run();
です。run内に、実行させたい処理を記述します。例えば
Display.getDefault().syncExec(new Runnable() {
public void run() {
IWorkbenchWindow window = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow();
if (window != null) {
Shell shell = window.getShell();
shell.setMinimized(false);
shell.forceActive();
MessageDialog.openInformation(window.getShell(),
"Hello World.", "Hello World. " + data);
}
}
});
とかですね。注意点としては、この処理は別スレッドで実行さ...
Display.getDefault().syncExec(new Runnable() ...
でラップしないといけないところです。
ちょっとJavaScriptのはなし。苦手なので、スニペット。。
<script type="text/javascript">
<!--
function execute() {
liveAction("nu.mine.kino.plugin.forms.proto.help",
"nu.mine.kino.plugin.forms.proto.help.actions.Activehe...
document.form1.textfield.value);
}
// -->
</script>
......
......
<form name="form1" >
<p><input type="text" name="textfield"></p>
</form>
としておいて
<p><a href='javascript:execute()'>Click here for a execu...
とかすれば、ヘルプ内で入力した文字をプログラムに渡すこと...
**関連リンク [#cbfbb9c1]
-[[Eclipseのヘルプ・システムを使ってプロジェクトを文書化...
-Eclipseに同梱されているヘルプで「アクティブ・ヘルプ」で...
----
この記事は
#vote(おもしろかった[8],そうでもない[2])
-ヘルプ右初期画面の表紙ってどうやってかえるんでしょ? -- ...
-一年前にいただいたコメントですが、plugin_customization.i...
- Ganymedeになって触ってみたら、GUIのTOCエディタがあるみ...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
#topicpath
----
#contents
Eclipseのヘルプはワークベンチのメニューの
ヘルプ >> ヘルプ目次
にありますが、このhtmlベースのヘルプも拡張して好きなヘル...
この拡張ポイントで目次となるファイル(xml形式)を指定し、そ...
***拡張ポイント [#e65d7276]
org.eclipse.help.toc
***必須プラグイン [#vd99645e]
org.eclipse.help.appserver
org.eclipse.help.base
org.eclipse.help.ui
org.eclipse.help.webapp
org.eclipse.tomcat
***plugin.xmlのサンプル [#cb38fa2e]
<extension
point="org.eclipse.help.toc">
<toc primary="true" file="toc.xml"/> <-トップの目次...
<toc file="tocconcepts.xml"/>
<toc file="tocgettingstarted.xml"/>
<toc file="tocreference.xml"/>
<toc file="tocsamples.xml"/>
<toc file="toctasks.xml"/>
</extension>
***目次となるxml(ここではtoc.xml)のサンプル [#z24cb416]
<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.toc"?>
<toc label="Sample Table of Contents" topic="html/toc.ht...
↑目次のSample Table of Contents をクリックしたときに
表示されるhtmlはhtml/toc.htmlです、の意味
<topic label="Getting Started">
<anchor id="gettingstarted"/>
</topic>
<topic label="Concepts"> <-目次にConceptsと表示
<anchor id="concepts"/> <-toc.xml#conceptsとなって...
</topic>
<topic label="Tasks">
<anchor id="tasks"/>
</topic>
<topic label="Reference">
<anchor id="reference"/>
</topic>
<topic label="Samples">
<anchor id="samples"/>
</topic>
</toc>
*** <anchor id="concepts"/> でリンクされるtocconcepts.xml...
<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.toc"?>
<toc label="Concepts" link_to="toc.xml#concepts"> <-ここ...
<topic label="Main Topic" href="html/concepts/maintop...
<topic label="Sub Topic" href="html/concepts/subtopi...
</topic>
<topic label="Main Topic 2">
<topic label="Sub Topic 2" href="html/concepts/subto...
</topic>
</toc>
#ref(capture.png)
**ポイント [#pbeecb8c]
***htmlファイル群は圧縮できる。 [#h51e70ea]
***目次ファイル内で別の目次ファイルを指定できる [#vd9b9873]
*** ヘルプメニューからではなく、アクションやボタンなどで...
ヘルプメニューの「ヘルプ目次」は
ActionFactory.HELP_CONTENTS.create(window)
でアクションを取得できます。このクラスは実体は
org.eclipse.ui.internal.actions.HelpContentsAction
なのですが、このrunメソッドからヘルプの起動方法を拝借しま...
final IWorkbenchWindow workbenchWindow = getSite().getWo...
if (workbenchWindow == null) {
// action has been disposed
return;
}
// This may take a while, so use the busy indicator
BusyIndicator.showWhile(null, new Runnable() {
public void run() {
workbenchWindow.getWorkbench().getHelpSystem()
.displayHelp();
}
});
これでヘルプが起動できます。
** ヘルプから、プログラムを呼び出す [#c2ec81a7]
org.eclipse.help.ILiveHelpAction クラスを使うと、ヘルプ上...
やり方は、あらかじめヘルプドキュメント内で「アクション」...
***JavaScriptの読込 [#z8695941]
あらかじめ、
<script language="JavaScript" src="../../../org.eclipse....
としてJavaScriptを読み込んでおきます。srcのパスはそのhtml...
<script language="JavaScript" src="../../org.eclipse.hel...
という指定、つまりプラグインのルートからさらに一つ上に上...
***ヘルプドキュメント上にリンク [#uf871d0d]
次に通常のhtmlのリンクの様にJavaScriptを実行するリンクを...
<a href='javascript:liveAction("nu.mine.kino.plugin.form...
"nu.mine.kino.plugin.forms.proto.help.actions.Activehelp...
"")'>Click here for a Message.</a></p>
などとします。各引数の意味ですが、
-アクションを含むプラグインの ID
-アクションをインプリメントするクラスの名前
-setInitializationString を使用してライブ・ヘルプ・アクシ...
となっています。
***アクションクラスの実装 [#c51a147a]
さて、上のnu.mine.kino.plugin.forms.proto.help.actions.Ac...
org.eclipse.help.ILiveHelpAction
をimplementsしています。インタフェースは
public void setInitializationString(String data);
public void run();
です。run内に、実行させたい処理を記述します。例えば
Display.getDefault().syncExec(new Runnable() {
public void run() {
IWorkbenchWindow window = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow();
if (window != null) {
Shell shell = window.getShell();
shell.setMinimized(false);
shell.forceActive();
MessageDialog.openInformation(window.getShell(),
"Hello World.", "Hello World. " + data);
}
}
});
とかですね。注意点としては、この処理は別スレッドで実行さ...
Display.getDefault().syncExec(new Runnable() ...
でラップしないといけないところです。
ちょっとJavaScriptのはなし。苦手なので、スニペット。。
<script type="text/javascript">
<!--
function execute() {
liveAction("nu.mine.kino.plugin.forms.proto.help",
"nu.mine.kino.plugin.forms.proto.help.actions.Activehe...
document.form1.textfield.value);
}
// -->
</script>
......
......
<form name="form1" >
<p><input type="text" name="textfield"></p>
</form>
としておいて
<p><a href='javascript:execute()'>Click here for a execu...
とかすれば、ヘルプ内で入力した文字をプログラムに渡すこと...
**関連リンク [#cbfbb9c1]
-[[Eclipseのヘルプ・システムを使ってプロジェクトを文書化...
-Eclipseに同梱されているヘルプで「アクティブ・ヘルプ」で...
----
この記事は
#vote(おもしろかった[8],そうでもない[2])
-ヘルプ右初期画面の表紙ってどうやってかえるんでしょ? -- ...
-一年前にいただいたコメントですが、plugin_customization.i...
- Ganymedeになって触ってみたら、GUIのTOCエディタがあるみ...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: