Package tool.commands.findtype

Source Code of tool.commands.findtype.FindTypeHandler

package tool.commands.findtype;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceProxy;
import org.eclipse.core.resources.IResourceProxyVisitor;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.text.ITextSelection;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ITreeSelection;
import org.eclipse.ui.ISelectionService;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.ui.ide.IDE;


/**
* Our sample handler extends AbstractHandler, an IHandler base class.
* @see org.eclipse.core.commands.IHandler
* @see org.eclipse.core.commands.AbstractHandler
*/
public class FindTypeHandler extends AbstractHandler {
  /**
   * The constructor.
   */
  public FindTypeHandler() {
  }

  /**
   * 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);
   
    ISelectionService selectionService = window.getSelectionService();
    ISelection selection = selectionService.getSelection();
   
    String targetType = "";
    if (selection instanceof ITextSelection){
      targetType = ((ITextSelection)selection).getText();
     
    } if (selection instanceof ITreeSelection){
      ITreeSelection treeSelection = (ITreeSelection)selection;
      if (treeSelection.getFirstElement() != null)
        targetType = treeSelection.getFirstElement().toString();
     
    }
   

    TypeSelectionDialog dialog = new TypeSelectionDialog(window.getShell(), true);
    dialog.setInitialPattern(targetType);
    dialog.setBlockOnOpen(true);
    if (dialog.open() == Dialog.OK){
      // find the resource and edit it
      Object[] result = dialog.getResult();
      if (result.length > 0){
        IFile file = (IFile) result[0];
        IWorkbenchPage page = window.getActivePage();
        try {
          IDE.openEditor(page, file);
        } catch (PartInitException e) {
          ErrorDialog.openError(window.getShell(),
              "Error opening " + file.getName(), e.getMessage(), Status.OK_STATUS );
         
        }
      }
    }
    return null;
  }
}
TOP

Related Classes of tool.commands.findtype.FindTypeHandler

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.