0
我添加了一個主菜單按鈕,一個Eclipse插件,並生成該代碼來處理操作時按下按鈕:添加菜單按鈕Eclipse插件
package de.vogella.plugin.experiment;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.core.commands.IHandlerListener;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.handlers.HandlerUtil;
public class SomethingHandler implements IHandler {
@Override
public void addHandlerListener(IHandlerListener handlerListener) {
// TODO Auto-generated method stub
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
System.out.println("Hello");
// TODO Auto-generated method stub
return null;
}
@Override
public boolean isEnabled() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isHandled() {
// TODO Auto-generated method stub
return false;
}
@Override
public void removeHandlerListener(IHandlerListener handlerListener) {
// TODO Auto-generated method stub
}
}
我加入了打印語句的執行類以測試我按下按鈕時是否會發生任何事情。但是,當我將此插件作爲eclipse應用程序運行時,並按下按鈕,按鈕將保持按下狀態,直到我再次單擊它爲止,並且沒有其他事情發生。按下按鈕時如何執行某些事件?然後讓程序完成,所以我不必再次按下按鈕關閉它?
編輯:
這裏是我的plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin
>
<extension
point="org.eclipse.ui.commands">
<command
defaultHandler="de.vogella.plugin.experiment.SomethingHandler"
id="de.vogella.plugin.experiment.SomethingHandler"
name="name">
</command>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler
class="SomethingHandler"
commandId="de.vogella.plugin.experiment.SomethingHandler">
</handler>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="menu:org.eclipse.ui.main.menu">
<command
commandId="de.vogella.plugin.experiment.SomethingHandler"
label="DoSomething"
style="push">
</command>
</menuContribution>
</extension>
</plugin>
擴展'org.eclipse.core.commands.AbstractHandler'而不是從頭實現'IHandler',它將處理除'execute'以外的所有內容。 「plugin.xml」中定義的菜單,命令和處理程序如何? –
我擴展了AbstractHandler,它運行了但它仍然沒有改變任何東西。菜單,命令和處理程序的命令ID以及命令的默認處理程序都是相同的,處理程序的類是我在上面顯示的類。 –
我認爲我們確實需要看到plugin.xml –