/*
* generated by Xtext
* Updated manually.
*/
package net.certware.argument.language.ui;
import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
import org.eclipse.xtext.ui.editor.hyperlinking.DefaultHyperlinkDetector;
import org.eclipse.xtext.ui.editor.outline.actions.IOutlineContribution;
import org.eclipse.xtext.ui.editor.outline.impl.OutlineFilterAndSorter.IComparator;
import org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage;
import com.google.inject.Binder;
import com.google.inject.name.Names;
import net.certware.argument.language.ui.outline.FilterConstantDeclarationContribution;
import net.certware.argument.language.ui.outline.FilterRuleContribution;
import net.certware.argument.language.ui.outline.FilterTypeDeclarationContribution;
import net.certware.argument.language.ui.outline.LOutlinePage;
import net.certware.argument.language.ui.outline.TypedOutlineNodeComparator;
import net.certware.argument.language.ui.preferences.MainPreferencePage;
/**
* Use this class to register components to be used within the IDE.
*/
public class LUiModule extends net.certware.argument.language.ui.AbstractLUiModule {
// image key, temporary until moved into main repository
public static final String L_CERTWARE_IMAGE = "L_CERTWARE_IMAGE"; //$NON-NLS-1$
public LUiModule(AbstractUIPlugin plugin) {
super(plugin);
// load CertWare image descriptor as place-holder
// normally acquire this from the core UI plugin
IPath path = new Path("icons/obj16/certware.gif"); //$NON-NLS-1$
URL url = FileLocator.find(plugin.getBundle(),path,null);
ImageDescriptor desc = ImageDescriptor.createFromURL(url);
plugin.getImageRegistry().put(L_CERTWARE_IMAGE,desc);
}
/**
* Bind the outline filters.
* @author MRB
*/
public void configureFilterOperationsContribution(Binder binder) {
binder.bind(IOutlineContribution.class).annotatedWith(
Names.named("FilterRuleContribution")) //$NON-NLS-1$
.to(FilterRuleContribution.class);
binder.bind(IOutlineContribution.class).annotatedWith(
Names.named("FilterTypeDeclarationContribution")) //$NON-NLS-1$
.to(FilterTypeDeclarationContribution.class);
binder.bind(IOutlineContribution.class).annotatedWith(
Names.named("FilterConstantDeclarationContribution")) //$NON-NLS-1$
.to(FilterConstantDeclarationContribution.class);
}
/**
* Bind preference pages.
* @return preference page
*/
public Class<? extends LanguageRootPreferencePage> bindLanguageRootPreferencePage() {
return MainPreferencePage.class;
}
/**
* Bind outline page.
* @return outline page
*/
public Class<? extends IContentOutlinePage> bindIContentOutlinePage() {
return LOutlinePage.class;
}
/**
* Bind outline sort comparator.
* @return sort node comparator
*/
@Override
public Class<? extends IComparator> bindOutlineFilterAndSorter$IComparator() {
return TypedOutlineNodeComparator.class;
}
/**
* Bind hyperlink detector.
*/
public Class<? extends DefaultHyperlinkDetector> bindDefaultHyperlinkDetector() {
// return LLinkDetector.class;
return DefaultHyperlinkDetector.class;
}
/**
* Bind hyperlink helper.
*/
// public Class<? extends IHyperlinkHelper> bindIHyperlinkHelper() {
// return LLinkHelper.class;
// }
}