/* * Copyright 2015 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.ide.eclipse.main.plugin.navigator.actions; import org.eclipse.jface.action.Action; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IWorkbenchPage; import org.robotframework.ide.eclipse.main.plugin.project.library.LibrarySpecification; import org.robotframework.red.viewers.Selections; public class ShowLibraryDocumentationAction extends Action implements IEnablementUpdatingAction { private final IWorkbenchPage page; private final ISelectionProvider selectionProvider; public ShowLibraryDocumentationAction(final IWorkbenchPage page, final ISelectionProvider selectionProvider) { super("Show library documentation"); this.page = page; this.selectionProvider = selectionProvider; } @Override public void updateEnablement(final IStructuredSelection selection) { setEnabled(selection.size() == 1 && selection.getFirstElement() instanceof LibrarySpecification); } @Override public void run() { final LibrarySpecification spec = Selections.getSingleElement( (IStructuredSelection) selectionProvider.getSelection(), LibrarySpecification.class); new LibraryDocumentationPopup(page.getActivePart().getSite().getShell(), spec).open(); } }