Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse插件:菜单按钮变灰_Java_Eclipse_Plugins - Fatal编程技术网

Java Eclipse插件:菜单按钮变灰

Java Eclipse插件:菜单按钮变灰,java,eclipse,plugins,Java,Eclipse,Plugins,我试图基于org.eclipse.ui.commands、org.eclipse.ui.menu和org.eclipse.ui.handlers创建一个简单的eclipse按钮 但调试时,我创建的按钮变灰: 这是我的plugin.xml和LoginHandler.java plugin.xml <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.4"?> <plugin> <e

我试图基于org.eclipse.ui.commands、org.eclipse.ui.menu和org.eclipse.ui.handlers创建一个简单的eclipse按钮

但调试时,我创建的按钮变灰:

这是我的plugin.xml和LoginHandler.java

plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>

   <extension
         point="org.eclipse.ui.views">
      <category
            name="Server Browsing"
            id="com.abc.serverapi">
      </category>
      <view
            name="Server Browser"
            icon="icons/sample.gif"
            category="com.abc.serverapi"
            class="com.abc.serverapi.views.ServerBrowser"
            id="com.abc.serverapi.views.serverbrowser">
      </view>
   </extension>
   <extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension
            targetID="org.eclipse.jdt.ui.JavaPerspective">
         <view
               ratio="0.5"
               relative="org.eclipse.ui.views.ProblemView"
               relationship="right"
               id="com.abc.serverapi.views.serverbrowser">
         </view>
      </perspectiveExtension>
   </extension>
   <extension
         point="org.eclipse.help.contexts">
      <contexts
            file="contexts.xml">
      </contexts>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <command
            id="com.abc.serverapi.command.login"
            name="Open Server Login">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            class="com.abc.serverapi.handler.LoginHandler"
            commandId="com.abc.serverapi.command.login">
      </handler>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            allPopups="false"
            locationURI="menu:org.eclipse.ui.main.menu">
         <menu
               id="com.abc.serverapi.menu.login"
               label="Server Login Menu">
            <command
                  commandId="com.abc.serverapi.command.login"
                  icon="icons/sample.gif"
                  id="com.abc.serverapi.menu.openLoginDialog"
                  mnemonic="O"
                  style="push">
            </command>
         </menu>
      </menuContribution>
   </extension>

</plugin>
处理程序中的
isEnabled()
方法返回
false
-因此处理程序未启用

您可以扩展
org.eclipse.core.commands.AbstractHandler
,而不是实现所有
IHandler

,处理程序中的
isEnabled()
方法返回
false
-因此处理程序未启用

您可以扩展
org.eclipse.core.commands.AbstractHandler
,而不是实现所有
IHandler

package com.abc.serverapi.handler;

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.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.HandlerUtil;

public class LoginHandler 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 {
        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
        MessageDialog.openInformation(
                window.getShell(),
                "Test",
                "Hello, Eclipse world");
        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

    }

}