0
나는 이클립스 플러그인 메인 메뉴 버튼을 추가하고, 버튼을 누를 때이 코드는 작업을 처리하기 위해 생성되었습니다 나는 실행 클래스의 print 문을 추가추가 메뉴 버튼 이클립스 플러그인
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
}
}
내가 버튼을 눌렀을 때 어떤 일이 일어날지를 알기 위해 테스트 할 수 있습니다. 그러나 이클립스 애플리케이션으로이 플러그인을 실행하고 버튼을 누르면 버튼을 다시 클릭 할 때까지 버튼이 계속 눌려져 아무 것도 나타나지 않는다. 단추를 누를 때 어떻게하면 어떤 이벤트를 실행할 수 있습니까? 그리고 나서 프로세스가 완료되면 버튼을 다시 끄지 않아도됩니다.
편집 : 여기
내 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>
'IHandler'를 처음부터 구현하지 않고'org.eclipse.core.commands.AbstractHandler'를 확장하면'execute'을 제외한 모든 것을 처리합니다. 'plugin.xml'에 메뉴, 커맨드, 핸들러는 어떻게 정의되어 있습니까? –
AbstractHandler를 확장했으며 실행했지만 여전히 아무것도 변경하지 않았습니다. 메뉴, 명령 및 처리기의 명령 ID와 명령의 기본 처리기는 모두 같으며 처리기의 클래스는 위에 표시된 클래스입니다. –
정말 우리가 plugin.xml을 볼 필요가 있다고 생각합니다 –