package net.certware.argument.language.ui.outline;
import net.certware.argument.language.l.LPackage;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.xtext.ui.PluginImageHelper;
import org.eclipse.xtext.ui.editor.outline.IOutlineNode;
import org.eclipse.xtext.ui.editor.outline.actions.AbstractFilterOutlineContribution;
import org.eclipse.xtext.ui.editor.outline.impl.EObjectNode;
import com.google.inject.Inject;
/**
* Filter type contribution.
* Provides an outline filter for L language type declaration elements.
* @author mrb
*/
public class FilterTypeDeclarationContribution extends
AbstractFilterOutlineContribution {
public static final String PREFERENCE_KEY = "ui.outline.filterTypeDeclarations"; //$NON-NLS-1$
@Inject
private PluginImageHelper imageHelper;
@Override
protected boolean apply(IOutlineNode node) {
return !(node instanceof EObjectNode) ||
!((EObjectNode)node).getEClass().equals(LPackage.Literals.TYPE_DECLARATION);
}
@Override
public String getPreferenceKey() {
return PREFERENCE_KEY;
}
@Override
protected void configureAction(Action action) {
action.setText(Messages.FilterTypeDeclarationContribution_1);
action.setDescription(Messages.FilterTypeDeclarationContribution_2);
action.setToolTipText(Messages.FilterTypeDeclarationContribution_3);
action.setImageDescriptor(getImageDescriptor(Messages.FilterTypeDeclarationContribution_4));
}
protected ImageDescriptor getImageDescriptor(String iconName) {
return ImageDescriptor.createFromImage(
imageHelper.getImage(iconName));
}
}