package com.aptana.ruby.internal.debug.ui.display;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.handlers.HandlerUtil;
import com.aptana.ui.util.UIUtils;
public class ClearDisplayViewHandler extends AbstractHandler
{
public Object execute(ExecutionEvent event) throws ExecutionException
{
IDataDisplay dataDisplay = getDataDisplay(event);
if (dataDisplay != null)
{
dataDisplay.clear();
}
return null;
}
private IDataDisplay getDataDisplay(ExecutionEvent event)
{
IWorkbenchPart part = HandlerUtil.getActivePart(event);
if (part != null)
{
IDataDisplay display = (IDataDisplay) part.getAdapter(IDataDisplay.class);
if (display != null)
{
IWorkbenchPage page = UIUtils.getActivePage();
if (page != null)
{
IWorkbenchPart activePart = page.getActivePart();
if (activePart != null)
{
if (activePart != part)
{
page.activate(part);
}
}
}
return display;
}
}
IWorkbenchPage page = UIUtils.getActivePage();
if (page != null)
{
IWorkbenchPart activePart = page.getActivePart();
if (activePart != null)
{
IDataDisplay display = (IDataDisplay) activePart.getAdapter(IDataDisplay.class);
if (display != null)
{
return display;
}
}
}
return null;
}
}