Package org.fusesource.ide.server.karaf.ui.view.server.editor

Source Code of org.fusesource.ide.server.karaf.ui.view.server.editor.CommonActionProviderUtils

/*******************************************************************************
* Copyright (c) 2011 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.fusesource.ide.server.karaf.ui.view.server.editor;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.bindings.TriggerSequence;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.keys.IBindingService;
import org.eclipse.ui.navigator.CommonViewer;
import org.eclipse.ui.navigator.ICommonActionExtensionSite;
import org.eclipse.ui.navigator.ICommonViewerSite;
import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.ui.internal.Messages;
import org.eclipse.wst.server.ui.internal.cnf.ServerActionProvider;

/**
* This class is copied from package
*   org.jboss.ide.eclipse.as.ui.views.server.extensions
*  
* And may be a candidate for API cleanup.
*
* @author André Dietisheim
*/
public class CommonActionProviderUtils {
 
  private static final String SHOW_IN_QUICK_MENU_ID = ServerActionProvider.SHOW_IN_MENU_ID;

  public static ICommonViewerWorkbenchSite getCommonViewerWorkbenchSite(ICommonActionExtensionSite actionExtensionSite) {
    ICommonViewerWorkbenchSite wsSite = null;
    ICommonViewerSite viewSite = actionExtensionSite.getViewSite();
    if( viewSite instanceof ICommonViewerWorkbenchSite ) {
      StructuredViewer v = actionExtensionSite.getStructuredViewer();
      if( v instanceof CommonViewer ) {
        wsSite = (ICommonViewerWorkbenchSite) viewSite;
      }
    }
    return wsSite;
  }

  public static IStructuredSelection getSelection(ICommonActionExtensionSite actionExtensionSite) {
    IStructuredSelection structuredSelection = null;
    ICommonViewerWorkbenchSite workbenchSite = getCommonViewerWorkbenchSite(actionExtensionSite);
    if (workbenchSite != null) {
      ISelectionProvider selectionProvider = workbenchSite.getSelectionProvider();
      if (selectionProvider != null) {
        ISelection selection = selectionProvider.getSelection();
        if (selection instanceof IStructuredSelection) {
          structuredSelection = (IStructuredSelection) selection;
        }
      }
    }
    return structuredSelection;
  }
 
  public static boolean isServerSelected(IStructuredSelection selection) {
    return selection != null
        && selection.getFirstElement() instanceof IServer;
  }

  public static IContributionItem getShowInQuickMenu(IMenuManager menuManager) {
    return getShowInQuickMenu(menuManager, false);
  }

  public static IContributionItem getShowInQuickMenu(IMenuManager menuManager, boolean createShowInMenu) {
    IContributionItem item = null;
    if (menuManager != null) {
      item = menuManager.find(SHOW_IN_QUICK_MENU_ID);
      if(item==null && createShowInMenu) {
        String text = Messages.actionShowIn;
        final IWorkbench workbench = PlatformUI.getWorkbench();
        final IBindingService bindingService = (IBindingService) workbench
            .getAdapter(IBindingService.class);
        final TriggerSequence[] activeBindings = bindingService
            .getActiveBindingsFor(SHOW_IN_QUICK_MENU_ID);
        if (activeBindings.length > 0) {
          text += "\t" + activeBindings[0].format();
        }
        item = new MenuManager(text, SHOW_IN_QUICK_MENU_ID);
        menuManager.insertAfter(ServerActionProvider.TOP_SECTION_END_SEPARATOR, item);
      }
    }
    return item;
  }

  public static void addToShowInQuickSubMenu(IAction action, IMenuManager menu, ICommonActionExtensionSite actionSite) {
    IStructuredSelection selection = CommonActionProviderUtils.getSelection(actionSite);
    IContributionItem menuItem = CommonActionProviderUtils.getShowInQuickMenu(menu);
    if (menuItem instanceof MenuManager
      && CommonActionProviderUtils.isServerSelected(selection)
      && action != null) {
      ((MenuManager) menuItem).add(action);
    }

  }
 
  public static IWorkbenchPart getWorkbenchPart(String id) {
    IWorkbenchPart part = null;
    IWorkbenchPage page = getActiveWorkbenchPage();
    if (page != null) {
      part = page.findView(id);
    }
    return part;
  }

  public static IWorkbenchPage getActiveWorkbenchPage() {
    IWorkbenchPage page = null;
    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    if (window != null) {
      page = window.getActivePage();
    }
    return page;
  }

  public static IWorkbenchPart showView(String partId) throws PartInitException {
    IWorkbenchPart part = CommonActionProviderUtils.getWorkbenchPart(partId);
    if (part == null) {
      part = CommonActionProviderUtils.getActiveWorkbenchPage().showView(partId);
    }
    return part;
  }
}
TOP

Related Classes of org.fusesource.ide.server.karaf.ui.view.server.editor.CommonActionProviderUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.