view - 将终止按钮添加到 Eclipse 控制台

标签 view eclipse-plugin console

如何将终止按钮添加到 Eclipse 控制台工具栏?我以这种方式创建控制台:

IOConsole console = new IOConsole( name, null, null, true );
ConsolePlugin.getDefault().getConsoleManager().addConsoles( new IConsole[]{console} );

最佳答案

我找到了解决方案。这是代码:

   <extension
         point="org.eclipse.ui.console.consolePageParticipants">
      <consolePageParticipant
            class="com.plugin.console.ConsoleActions"
            id="com.plugin.console.PageParticipant">
         <enablement>
            <instanceof value="com.plugin.console.Console"/>
         </enablement>
      </consolePageParticipant>
   </extension>

控制台类:
public class Console extends IOConsole {

    public Console(String name, ImageDescriptor imageDescriptor) {
        super(name, imageDescriptor);

    }

    public Console(String name, String consoleType, ImageDescriptor imageDescriptor, boolean autoLifeCycle) {
        super(name, consoleType, imageDescriptor, autoLifeCycle);
    }

}

控制台参与者类:
public class ConsoleActions implements IConsolePageParticipant {

    private IPageBookViewPage page;
    private Action remove, stop;
    private IActionBars bars;
    private IConsole console;

    @Override
    public void init(final IPageBookViewPage page, final IConsole console) {
        this.console = console;
        this.page = page;
        IPageSite site = page.getSite();
        this.bars = site.getActionBars();

        createTerminateAllButton();
        createRemoveButton();

        bars.getMenuManager().add(new Separator());
        bars.getMenuManager().add(remove);

        IToolBarManager toolbarManager = bars.getToolBarManager();

        toolbarManager.appendToGroup(IConsoleConstants.LAUNCH_GROUP, stop);
        toolbarManager.appendToGroup(IConsoleConstants.LAUNCH_GROUP,remove);

        bars.updateActionBars();

    }

    private void createTerminateAllButton() {
        ImageDescriptor imageDescriptor = ImageDescriptor.createFromFile(getClass(), "/icons/stop_all_active.gif");
        this.stop = new Action("Terminate all", imageDescriptor) {
            public void run() {
                //code to execute when button is pressed
            }
        };

    }

    private void createRemoveButton() {
        ImageDescriptor imageDescriptor = ImageDescriptor.createFromFile(getClass(), "/icons/remove_active.gif");
        this.remove= new Action("Remove console", imageDescriptor) {
            public void run() {
                //code to execute when button is pressed
            }
        };
    }

    @Override
    public void dispose() {
        remove= null;
        stop = null;
        bars = null;
        page = null;
    }

    @Override
    public Object getAdapter(Class adapter) {
        return null;
    }

    @Override
    public void activated() {
        updateVis();
    }

    @Override
    public void deactivated() {
        updateVis();
    }

    private void updateVis() {

        if (page == null)
            return;
        boolean isEnabled = true;
        stop.setEnabled(isEnabled);
        remove.setEnabled(isEnabled);
        bars.updateActionBars();
    }

}

关于view - 将终止按钮添加到 Eclipse 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32562416/

相关文章:

python - Django 查看模板的默认值

eclipse - 贡献给状态栏的控件不可见

java - 如何将 (.JAR) 文件转换为 UML?

android - 在一个 View 上隐藏/显示动画,当同时发生时 - Android

mysql - 在行间计算之前对记录进行排序的选项是什么?

android - 使用android的按钮的上下文菜单?

java - 是否可以使用代号一将 eclipse 中的 android 应用程序转换为 ios Rim 窗口?

file - Powershell输出到文件和控制台

java - 如何在 Safari 中激活 Java 和 Java 控制台?

c# - 检测控制台应用程序何时关闭/终止?