結局、それは本当に簡単でした。以下の例では、コマンド フレームワークを使用しています。ハンドラーがないため、クラスを生成する必要があるときはいつでも、クラスのハイパーリンクをクリックするだけです。
com.test.plugin.project という新しい Eclipse プラグイン プロジェクトを作成します。
plugin.xml ファイルの依存関係タブで、次の依存関係を追加します。
- org.eclipse.jdt
- org.eclipse.jdt.core
- org.eclipse.jdt.ui
- org.eclipse.jface.text
これを plugin.xml タブセクションに入れます:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="true"
locationURI="popup:org.eclipse.ui.popup.any">
<menu
label="Test Project Sub Menu">
<command
commandId="com.test.plugin.project.command.packageexplorer"
id="packageexplorerId"
style="push">
<visibleWhen
checkEnabled="false">
<iterate
ifEmpty="false"
operator="or">
<instanceof
value="org.eclipse.jdt.internal.core.CompilationUnit">
</instanceof>
</iterate>
</visibleWhen>
</command>
<command
commandId="com.test.plugin.project.command.classfile"
id="classfileId"
style="push">
<visibleWhen
checkEnabled="false">
<iterate
ifEmpty="false"
operator="or">
<and>
<with
variable="selection">
<instanceof
value="org.eclipse.jface.text.TextSelection">
</instanceof>
</with>
<with
variable="activeEditorId">
<equals
value="org.eclipse.jdt.ui.CompilationUnitEditor">
</equals>
</with>
</and>
</iterate>
</visibleWhen>
</command>
</menu>
</menuContribution>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
id="com.test.plugin.project.command.packageexplorer"
name="Only Show In Package Explorer">
</command>
<command
id="com.test.plugin.project.command.classfile"
name="Only Show In Class File">
</command>
</extension>
</plugin>
これが何をするか
- パッケージエクスプローラー内のJavaファイルを右クリックすると(Javaファイルをクリックした場合のみ)、サブメニューにポップアップメニューが1つ作成されます。
- Java ファイルを右クリックすると、サブ メニューに別のポップアップ メニューが作成されます。