package com.anjlab.eclipse.e4.tapestry5.handlers;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.HandlerUtil;
import com.anjlab.eclipse.tapestry5.Activator;
import com.anjlab.eclipse.tapestry5.EclipseUtils;
import com.anjlab.eclipse.tapestry5.TapestryProject;
import com.anjlab.eclipse.tapestry5.TapestryUtils;
/**
* Our sample handler extends AbstractHandler, an IHandler base class.
* @see org.eclipse.core.commands.IHandler
* @see org.eclipse.core.commands.AbstractHandler
*/
public class QuickNavigationHandler extends AbstractHandler
{
/**
* The constructor.
*/
public QuickNavigationHandler()
{
}
/**
* the command has been executed, so extract extract the needed information
* from the application context.
*/
public Object execute(ExecutionEvent event) throws ExecutionException
{
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
TapestryProject tapestryProject = Activator.getDefault().getTapestryProject(window);
if (tapestryProject == null)
{
return null;
}
TapestryProjectOutlineInformationControl informationControl =
new TapestryProjectOutlineInformationControl(window, tapestryProject);
informationControl.setLocation(
EclipseUtils.getPopupLocation(
window, null, informationControl.computeSizeHint()));
// TODO When inside module class try to map current method to service instrumenter
informationControl.setInput(TapestryUtils.getTapestryFileFromPage(window.getActivePage()));
informationControl.open();
informationControl.setFocus();
return null;
}
}