content: /*
   * Copyright (c) 2009 Andrejs Jermakovics.
   * 
   * All rights reserved. This program and the accompanying materials
   * are 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:
   *     Andrejs Jermakovics - initial implementation
   */
  package it.unibz.instasearch.actions;
  
  import it.unibz.instasearch.ui.InstaSearchUI;
  
  import org.eclipse.core.runtime.IStatus;
  import org.eclipse.jface.action.Action;
  
  public class ShowExceptionAction extends Action
  {
  	public static final String ID = "it.unibz.instasearch.ui.InstaSearchUI.ShowExceptionAction";
  	
  	private Throwable exception;
  	private IStatus status;
  
  	public ShowExceptionAction(Throwable exception)
  	{
  		this.exception = exception;
  	
  		setId(ID);
  		setText("Exception");
  		setDescription(exception.getMessage());
  		setToolTipText(exception.getMessage());
  	}
  	
  	public ShowExceptionAction(Exception exception, String text)
  	{
  		this(exception);
  		
  		setText(text);
  	}
  	
  	public ShowExceptionAction(IStatus status)
  	{
  		this(status.getException());
  		
  		this.status = status;
  	}
  	
  	@Override
  	public void run()
  	{
  		if( status != null )
  			InstaSearchUI.showError(status, getText());
  		else
  			InstaSearchUI.showError(exception, getText());
  	}
  }
  