私は個人用のEclipseプラグインを作成しようとしています。ドロップダウンリストは、トグルボタンである3つの項目(item1、item2、item3)でツールバーに配置する必要があります。これらのボタンのそれぞれをトグルするとき、環境変数またはビルド変数は対応する値をとる必要があります。eclipseプラグイン・ハンドラーが呼び出されないのはなぜですか?
私の問題は、トグルボタンのハンドラが呼び出されないことです。
は、これを達成するために、私は今まで、次のことを書いた:
plugin.xmlの
<extension point="org.eclipse.ui.commands">
<category
name="Sample Category"
id="example.commands.category">
</category>
<command
name="Sample Command"
categoryId="example.commands.category"
id="example.commands.sampleCommand">
</command>
<command
name="Dropdown Command"
categoryId="example.commands.category"
id="example.commands.dropdownCommand">
</command>
</extension>
<extension point="org.eclipse.ui.handlers">
<handler
commandId="example.commands.sampleCommand"
class="example.handlers.SampleHandler">
</handler>
<handler
commandId="example.commands.dropdownCommand"
class="example.handlers.DropdownHandler">
</handler>
</extension>
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
<toolbar
id="example.toolbars.sampleToolbar"
label="Sample Menu">
<command
commandId="example.commands.sampleCommand"
tooltip="Say hello world"
id="example.toolbars.sampleCommand"
style="pulldown">
</command>
</toolbar>
</menuContribution>
<menuContribution locationURI="menu:example.toolbars.sampleCommand">
<command commandId="example.commands.dropdownCommand" label="Processor1" style="toggle">
<parameter name="example.toolbars.msg1" value="Processor1"></parameter>
</command>
<separator name="separator1" visible="true"/>
<command commandId="example.commands.dropdownCommand" label="Processor2" style="toggle">
<parameter name="example.toolbars.msg2" value="Processor2"></parameter>
</command>
<separator name="separator2" visible="true"/>
<command commandId="example.commands.dropdownCommand" label="Processor3" style="toggle">
<parameter name="example.toolbars.msg3" value="Processor3"></parameter>
</command>
</menuContribution>
</extension>
</plugin>
DropdownHandler.java
public class DropdownHandler extends AbstractHandler {
/**
* The constructor.
*/
public DropdownHandler() {
}
/**
* the command has been executed, so extract extract the needed information
* from the application context.
*/
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
MessageDialog.openInformation(
window.getShell(),
"GreeHills Project",
"Hello, Eclipse World");
return null;
}
}
SampleHandler.java
public class SampleHandler extends AbstractHandler {
/**
* The constructor.
*/
public SampleHandler() {
}
/**
* the command has been executed, so extract extract the needed information
* from the application context.
*/
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
MessageDialog.openInformation(
window.getShell(),
"GreeHills Project",
"Please pick a processor from the dropdown list!");
return null;
}
}
サンプルコマンドをクリックすると、適切なハンドラが呼び出され、対応するメッセージが表示されたポップアップウィンドウが表示されます。 プロセッサ1、プロセッサ2またはプロセッサ3をクリックしても、何も起こらず、メッセージも表示されません。
私はこのグーグルを見つけました:https://wiki.eclipse.org/Menu_Contributions/Dropdown_Command (MessageDialogを表示するためにハンドラ内のSysOutPrintlnを変更しました)同じ結果が得られました。メッセージは表示されません。
最終的に私のプラグインの仕事をする方法についてのアイデアは高く評価されています!