/** * Copyright (c) Red Hat, Inc., contributors and others 2013 - 2014. All rights reserved * * Licensed under the Eclipse Public License version 1.0, available at * http://www.eclipse.org/legal/epl-v10.html */ package org.jboss.tools.forge.ui.internal.part; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.Separator; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.part.IShowInTarget; import org.eclipse.ui.part.ShowInContext; import org.eclipse.ui.part.ViewPart; import org.jboss.tools.forge.ui.internal.actions.GoToAction; import org.jboss.tools.forge.ui.internal.console.ForgeConsole; import org.jboss.tools.forge.ui.internal.console.ForgeConsoleManager; public class ForgeConsoleView extends ViewPart implements IShowInTarget { public static final String ID = "org.jboss.tools.forge.ui.console"; public static final String FORGE_CONSOLE_ACTION_GROUP = "org.jboss.tools.forge.ui.console.actions"; private Composite parent = null; private ForgeConsolePageBook forgeConsolePageBook = null; private ForgeConsole current = null; @Override public void createPartControl(Composite parent) { this.parent = parent; createActions(); createPageBook(); showForgeConsole(ForgeConsoleManager.INSTANCE.getDefaultConsole()); } @Override public void setFocus() { // nothing to do (yet) } public void showForgeConsole(ForgeConsole forgeConsole) { current = forgeConsole; forgeConsolePageBook.showForgeConsole(forgeConsole); } public ForgeConsole getConsole() { return current; } private void createPageBook() { forgeConsolePageBook = new ForgeConsolePageBook(this, parent); } private void createActions() { // Since there is only one runtime anymore (for now?) next line is // commented // ForgeConsoleDropdownAction action = new // ForgeConsoleDropdownAction(this); IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager(); toolBarManager.add(new Separator(FORGE_CONSOLE_ACTION_GROUP)); // additional separator needs to be added because otherwise the added // items // appear after the dropdown instead of before (Eclipse bug?) // Adding the separator and action is commented out until there is more // then one runtime again. // toolBarManager.add(new Separator("dummy")); // toolBarManager.add(action); } public void setStatusMessage(String message) { setContentDescription(message); } /** * Shows the given context in the Forge Console. The target should check the * context's selection for elements to show. If there are no relevant * elements in the selection, then it should check the context's input. * * @param context * the context to show * @return <code>true</code> if the context could be shown, * <code>false</code> otherwise * @see org.eclipse.ui.part.IShowInTarget#show(org.eclipse.ui.part.ShowInContext) */ @Override public boolean show(ShowInContext context) { if (current != null) { try (GoToAction action = new GoToAction(current.getRuntime())) { action.selectionChanged(this, context.getSelection()); return action.goToSelection(); } } return false; } public boolean isShowing() { return forgeConsolePageBook != null && forgeConsolePageBook.isVisible(); } }