package com.netifera.platform.host.processes.ui.actions;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
public class AbstractProcessAction extends Action implements ISelectionChangedListener {
private ISelectionProvider selectionProvider;
private IStructuredSelection selection;
public AbstractProcessAction(ISelectionProvider selectionProvider) {
setSelectionProvider(selectionProvider);
}
public void setSelectionProvider(ISelectionProvider selectionProvider) {
if(this.selectionProvider != null) {
this.selectionProvider.removeSelectionChangedListener(this);
}
this.selectionProvider = selectionProvider;
selectionProvider.addSelectionChangedListener(this);
}
public void selectionChanged(SelectionChangedEvent event) {
selection = (IStructuredSelection) event.getSelection();
setEnabled(!selection.isEmpty());
}
public IStructuredSelection getSelection() {
return selection;
}
}