Package edu.zao.fire.commands

Source Code of edu.zao.fire.commands.UserSelectionAbstractHandler

package edu.zao.fire.commands;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.HandlerEvent;
import org.eclipse.core.commands.IHandler;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.ISelectionService;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PlatformUI;

import edu.zao.fire.Renamer;
import edu.zao.fire.filters.UserIgnoreFileFilter;

public abstract class UserSelectionAbstractHandler extends AbstractHandler {

  protected boolean alreadyInstalledSelectionListener = false;

  protected void installSelectionListener() {
    if (alreadyInstalledSelectionListener) {
      return;
    }

    /*
     * NOTE: the first time this function is called will be before the
     * active workbench window is instantiated Eclipse RCP causes this
     * function to fail quietly, so we just don't set the already installed
     * flag true until after it is successful
     */
    ISelectionService selectionService = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();
    final IHandler handler = this;
    selectionService.addSelectionListener(new ISelectionListener() {
      @Override
      public void selectionChanged(IWorkbenchPart part, ISelection selection) {
        fireHandlerChanged(new HandlerEvent(handler, true, false));
      }
    });

    // set the already installed flag after the listener is successfully
    // added
    alreadyInstalledSelectionListener = true;
  }

  @Override
  public void setEnabled(Object evaluationContext) {
    installSelectionListener();
  }

  protected static IStructuredSelection getSelection() {
    ISelectionService selectionService = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();
    IStructuredSelection selection = (IStructuredSelection) selectionService.getSelection();
    return selection;
  }

  protected UserIgnoreFileFilter getFilter() {
    return Renamer.getDefault().getUserFilters().getIndividualFilter();
  }
}
TOP

Related Classes of edu.zao.fire.commands.UserSelectionAbstractHandler

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.