Package mmrnmhrm.org.eclipse.dltk.ui.actions

Source Code of mmrnmhrm.org.eclipse.dltk.ui.actions.FindReferencesInHierarchyAction

package mmrnmhrm.org.eclipse.dltk.ui.actions;


import melnorme.lang.ide.ui.actions.UIUserInteractionsHelper;
import mmrnmhrm.core.model_elements.DeeModelEngine;
import mmrnmhrm.core.search.DeeDefPatternLocator;

import org.eclipse.dltk.core.DLTKCore;
import org.eclipse.dltk.core.ISourceModule;
import org.eclipse.dltk.core.IType;
import org.eclipse.dltk.core.ModelException;
import org.eclipse.dltk.core.search.IDLTKSearchScope;
import org.eclipse.dltk.core.search.SearchEngine;
import org.eclipse.dltk.internal.ui.editor.EditorUtility;
import org.eclipse.dltk.internal.ui.editor.ScriptEditor;
import org.eclipse.dltk.internal.ui.search.DLTKSearchScopeFactory;
import org.eclipse.dltk.internal.ui.search.SearchMessages;
import org.eclipse.dltk.ui.DLTKPluginImages;
import org.eclipse.dltk.ui.search.PatternQuerySpecification;
import org.eclipse.dltk.ui.search.QuerySpecification;

import dtool.ast.definitions.DefUnit;
import dtool.ast.definitions.INamedElement;

public final class FindReferencesInHierarchyAction extends FindAction {

  public FindReferencesInHierarchyAction(ScriptEditor deeEditor) {
    super(deeEditor);
  }
 
  @Override
  void init() {
    setText(SearchMessages.Search_FindHierarchyReferencesAction_label);
    setToolTipText(SearchMessages.Search_FindHierarchyReferencesAction_tooltip);
    setImageDescriptor(DLTKPluginImages.DESC_OBJS_SEARCH_REF);
//    PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaHelpContextIds.FIND_REFERENCES_IN_HIERARCHY_ACTION);
    if (DLTKCore.DEBUG) {
      System.out.println("TODO: Add helkp support here...");
    }
  }
 
//  @Override
//  protected void runOperation(INamedElement defunit) {
//    if(defunit.getArcheType().isType()) {
//      super.runOperation(defunit);
//    } else {
//      UIUserInteractionsHelper.openWarning(getShell(), super.SEARCH_REFS,
//        "Element is not a type");
//    }
//  }
 
  protected QuerySpecification createQuery(DefUnit defunit) throws ModelException {
    ISourceModule sourceModule = EditorUtility.getEditorInputModelElement(deeEditor, false);
    IType type = (IType) DeeModelEngine.findCorrespondingModelElement(defunit, sourceModule);
    if (type == null) {
      return super.createQuery(defunit);
    }
    DLTKSearchScopeFactory factory = DLTKSearchScopeFactory.getInstance();
    IDLTKSearchScope scope = SearchEngine.createHierarchyScope(type);
    String description = factory.getHierarchyScopeDescription(type);
   
    DeeDefPatternLocator.GLOBAL_param_defunit = defunit;
    return new PatternQuerySpecification(
        defunit.getName(), 0, true, getLimitTo(), scope, description);
    //return new ElementQuerySpecification(element, getLimitTo(), scope, description);
  }
 


}
TOP

Related Classes of mmrnmhrm.org.eclipse.dltk.ui.actions.FindReferencesInHierarchyAction

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.