package net.certware.argument.sfp.review.wizard; import net.certware.argument.sfp.review.Activator; import net.certware.argument.sfp.semiFormalProof.Justification; import net.certware.argument.sfp.semiFormalProof.Proof; import net.certware.argument.sfp.semiFormalProof.Statement; import net.certware.argument.sfp.util.ProofUtil; import net.certware.core.ui.help.IHelpContext; import org.eclipse.help.HelpSystem; import org.eclipse.help.IContext; import org.eclipse.help.IContextProvider; import org.eclipse.jface.viewers.TreeSelection; /** * Help context provider for review wizard. * @author mrb * @since 1.0.3 */ public class ReviewContextProvider extends org.eclipse.help.AbstractContextProvider implements IContextProvider { /** plugins array for interface */ private String[] plugins = { Activator.PLUGIN_ID }; /** * Constructor defers to superclass. */ public ReviewContextProvider() { super(); } /** * Returns a help context based on target. * @param target focus, expecting a tree selection * @return help context ID */ public IContext getContext(Object target) { System.err.println("help get context target is " + target); // TODO selection tracking if (target instanceof TreeSelection) { Object element = ((TreeSelection)target).getFirstElement(); if (element instanceof Proof) { return HelpSystem.getContext(IHelpContext.REVIEW_WIZARD_PROOF); } if (element instanceof Statement) { Statement s = (Statement)element; if ( ProofUtil.statementIsHypothesis(s)) { return HelpSystem.getContext(IHelpContext.REVIEW_WIZARD_HYPOTHESIS); } return HelpSystem.getContext(IHelpContext.REVIEW_WIZARD_STATEMENT); } } return HelpSystem.getContext(IHelpContext.REVIEW_WIZARD_PAGE); } /** * Gets the context change mask. * @return always returns NONE */ public int getContextChangeMask() { // dynamic context change reporting // return IContextProvider.NONE; // TODO testing return IContextProvider.SELECTION; } /** * Returns a search expression string based on the target focus. * @param target focus * @return search string or null of target not recognized */ public String getSearchExpression(Object target) { System.err.println("search target is " + target); // TODO selection tracking if ( target instanceof Proof ) { return "\"proof\""; } if ( target instanceof Statement ) { return "\"hypothesis\" + ' ' + \"statement\""; } if ( target instanceof Justification ) { return "\"proof\" + ' ' + \"statement\" + ' ' + \"justification\""; } return "statement"; } @Override public IContext getContext(String id, String locale) { if ( IHelpContext.REVIEW_WIZARD_HYPOTHESIS.equals(id)) return HelpSystem.getContext(IHelpContext.REVIEW_WIZARD_HYPOTHESIS,locale); if ( IHelpContext.REVIEW_WIZARD_STATEMENT.equals(id)) return HelpSystem.getContext(IHelpContext.REVIEW_WIZARD_STATEMENT,locale); if ( IHelpContext.REVIEW_WIZARD_PROOF.equals(id)) return HelpSystem.getContext(IHelpContext.REVIEW_WIZARD_PROOF,locale); if ( IHelpContext.REVIEW_WIZARD_SETUP_PAGE.equals(id)) return HelpSystem.getContext(IHelpContext.REVIEW_WIZARD_SETUP_PAGE,locale); return HelpSystem.getContext(IHelpContext.REVIEW_WIZARD_PAGE,locale); } @Override public String[] getPlugins() { // plugins list simply for this host plugin // fragments can supply their own return plugins; } }