Java 类org.eclipse.xtext.ui.refactoring.IRenameStrategy 实例源码

项目:bts    文件:RenameRefactoringController.java   
protected String getOriginalName(final XtextEditor xtextEditor) {
    return xtextEditor.getDocument().readOnly(new IUnitOfWork<String, XtextResource>() {
        public String exec(XtextResource state) throws Exception {
            try {
                EObject targetElement = state.getResourceSet().getEObject(renameElementContext.getTargetElementURI(),
                    false);
                IRenameStrategy.Provider strategyProvider = globalServiceProvider.findService(targetElement,
                        IRenameStrategy.Provider.class);
                if (strategyProvider != null) {
                    IRenameStrategy strategy = strategyProvider.get(targetElement, renameElementContext);
                    if (strategy != null)
                        return strategy.getOriginalName();
                }
            } catch(NoSuchStrategyException e) {
                // null
            }
            return null;
        }
    });
}
项目:bts    文件:DefaultRenameElementHandler.java   
protected boolean isRefactoringEnabled(IRenameElementContext renameElementContext, XtextResource resource) {
    ResourceSet resourceSet = resource.getResourceSet();
    if (renameElementContext != null && resourceSet != null) {
        EObject targetElement = resourceSet.getEObject(renameElementContext.getTargetElementURI(), true);
        if (targetElement != null && !targetElement.eIsProxy()) {
            if(targetElement.eResource() == resource && renameElementContext.getTriggeringEditorSelection() instanceof ITextSelection) {
                ITextSelection textSelection = (ITextSelection) renameElementContext.getTriggeringEditorSelection();
                ITextRegion selectedRegion = new TextRegion(textSelection.getOffset(), textSelection.getLength());
                INode crossReferenceNode = eObjectAtOffsetHelper.getCrossReferenceNode(resource, selectedRegion);
                if(crossReferenceNode == null) {
                    // selection is on the declaration. make sure it's the name
                    ITextRegion significantRegion = locationInFileProvider.getSignificantTextRegion(targetElement);
                    if(!significantRegion.contains(selectedRegion)) 
                        return false;
                }
            }
            IRenameStrategy.Provider renameStrategyProvider = globalServiceProvider.findService(targetElement,
                    IRenameStrategy.Provider.class);
            try {
                return renameStrategyProvider.get(targetElement, renameElementContext) != null;
            } catch (NoSuchStrategyException e) {
                MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Cannot rename element",
                        e.getMessage());
            }
        }
    }
    return false;
}
项目:bts    文件:DefaultRenameStrategyProvider.java   
public IRenameStrategy get(EObject targetEObject, IRenameElementContext renameElementContext) throws NoSuchStrategyException {
    IRenameStrategy renameStrategy = createRenameStrategy(targetEObject, renameElementContext);
    if (renameStrategy instanceof DefaultRenameStrategyProvider.IInitializable
            && ((DefaultRenameStrategyProvider.IInitializable) renameStrategy).initialize(targetEObject,
                    renameElementContext)) {
        return renameStrategy;
    }
    return null;
}
项目:bts    文件:RenamedElementTracker.java   
public Map<URI, URI> renameAndTrack(Iterable<URI> renamedElementURIs, String newName, ResourceSet resourceSet, IRenameStrategy renameStrategy, IProgressMonitor monitor) {
    SubMonitor progress = SubMonitor.convert(monitor).setWorkRemaining(3);
    Map<EObject, URI> renamedElement2oldURI = resolveRenamedElements(renamedElementURIs, resourceSet);
    progress.worked(1);
    renameStrategy.applyDeclarationChange(newName, resourceSet);
    progress.worked(1);
    Map<URI, URI> old2newURI = relocateRenamedElements(renamedElement2oldURI);
    progress.worked(1);
    renameStrategy.revertDeclarationChange(resourceSet);
    return old2newURI;
}
项目:pokemon-tcgo-deck-generator    文件:AbstractPkmntcgoUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:n4js    文件:AbstractN4JSUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:n4js    文件:AbstractRegularExpressionUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:n4js    文件:AbstractN4MFUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:n4js    文件:AbstractTypesUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:Xtext_Xtend_HTML_Generator    文件:AbstractMyDslUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:bromium    文件:AbstractBromiumUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:gw4e.project    文件:AbstractDSLPoliciesUiModule.java   
public Class<? extends IRenameStrategy.Provider> bindIRenameStrategy$Provider() {
    return JvmMemberRenameStrategy.Provider.class;
}
项目:gw4e.project    文件:AbstractDSLPoliciesUiModule.java   
public void configureJvmMemberRenameStrategy$Provider$Delegate(Binder binder) {
    binder.bind(IRenameStrategy.Provider.class).annotatedWith(JvmMemberRenameStrategy.Provider.Delegate.class).to(DefaultRenameStrategyProvider.class);
}
项目:gw4e.project    文件:AbstractDSLPoliciesUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultJvmModelRenameStrategy.class;
}
项目:lcdsl    文件:AbstractLcDslUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:gemoc-studio    文件:AbstractDslUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:org.xtext.dsl.restaurante    文件:AbstractRestauranteUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:OCCI-Studio    文件:AbstractOCCIUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:M2Doc    文件:AbstractMyDslUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:minitl    文件:AbstractMinitlUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:Sparrow    文件:AbstractModelEditorUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:bts    文件:EmfUiModule.java   
/**
 * @since 2.1
 */
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return EmfResourceRenameStrategy.class;
}
项目:bts    文件:EmfUiModule.java   
/**
 * @since 2.0
 */
public Class<? extends IRenameStrategy.Provider> bindIRenameStrategy$Provider() {
    return DefaultRenameStrategyProvider.class;
}
项目:bts    文件:DefaultLinkedPositionGroupCalculator.java   
public LinkedPositionGroup getLinkedPositionGroup(IRenameElementContext renameElementContext,
        IProgressMonitor monitor) {
    SubMonitor progress = SubMonitor.convert(monitor, 100);
    XtextEditor editor = (XtextEditor) renameElementContext.getTriggeringEditor();
    IProject project = projectUtil.getProject(renameElementContext.getContextResourceURI());
    if (project == null)
        throw new IllegalStateException("Could not determine project for context resource "
                + renameElementContext.getContextResourceURI());
    ResourceSet resourceSet = resourceSetProvider.get(project);
    EObject targetElement = resourceSet.getEObject(renameElementContext.getTargetElementURI(), true);
    if (targetElement == null)
        throw new IllegalStateException("Target element could not be loaded");
    IRenameStrategy.Provider strategyProvider = globalServiceProvider.findService(targetElement,
            IRenameStrategy.Provider.class);
    IRenameStrategy renameStrategy = null;
    try {
        renameStrategy = strategyProvider.get(targetElement, renameElementContext);
    } catch(NoSuchStrategyException exc) {
        // handle in next line
    }
    if(renameStrategy == null) 
        throw new IllegalArgumentException("Cannot find a rename strategy for "
                + notNull(renameElementContext.getTargetElementURI()));
    String newName = renameStrategy.getOriginalName();
    IResourceServiceProvider resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(renameElementContext.getTargetElementURI());
    IDependentElementsCalculator dependentElementsCalculator =  resourceServiceProvider.get(IDependentElementsCalculator.class);
    Iterable<URI> dependentElementURIs = dependentElementsCalculator.getDependentElementURIs(targetElement,
            progress.newChild(10));
    LocalResourceRefactoringUpdateAcceptor updateAcceptor = updateAcceptorProvider.get();
    updateAcceptor.setLocalResourceURI(renameElementContext.getContextResourceURI());
    renameStrategy.createDeclarationUpdates(newName, resourceSet, updateAcceptor);
    Map<URI, URI> original2newEObjectURI = renamedElementTracker.renameAndTrack(
            concat(Collections.singleton(renameElementContext.getTargetElementURI()), dependentElementURIs),
            newName, resourceSet, renameStrategy, progress.newChild(10));
    ElementRenameArguments elementRenameArguments = new ElementRenameArguments(
            renameElementContext.getTargetElementURI(), newName, renameStrategy, original2newEObjectURI);
    final List<IReferenceDescription> referenceDescriptions = newArrayList();
    IAcceptor<IReferenceDescription> referenceAcceptor = new IAcceptor<IReferenceDescription>() {
        public void accept(IReferenceDescription referenceDescription) {
            referenceDescriptions.add(referenceDescription);
        }
    };
    referenceFinder.findReferences(elementRenameArguments.getRenamedElementURIs(),
            singleton(renameElementContext.getContextResourceURI()), new SimpleLocalResourceAccess(resourceSet),
            referenceAcceptor, progress.newChild(60));
    referenceUpdater.createReferenceUpdates(elementRenameArguments, referenceDescriptions, updateAcceptor,
            progress.newChild(10));
    List<ReplaceEdit> textEdits = updateAcceptor.getTextEdits();
    LinkedPositionGroup linkedGroup = createLinkedGroupFromReplaceEdits(textEdits, editor,
            renameStrategy.getOriginalName(), progress.newChild(10));
    return linkedGroup;
}
项目:bts    文件:RenameElementProcessor.java   
protected IRenameStrategy createRenameElementStrategy(EObject targetElement,
        IRenameElementContext renameElementContext) throws NoSuchStrategyException {
    IRenameStrategy result = strategyProvider.get(targetElement, renameElementContext);
    return result;
}
项目:bts    文件:RenameElementProcessor.java   
public IRenameStrategy getRenameElementStrategy() {
    return renameStrategy;
}
项目:bts    文件:DefaultRenameStrategyProvider.java   
protected IRenameStrategy createRenameStrategy(EObject targetEObject, IRenameElementContext renameElementContext) {
    return guiceStrategyProvider == null ? null : guiceStrategyProvider.get();
}
项目:cs2as    文件:AbstractASBHLangUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}
项目:cs2as    文件:AbstractMiniOCLUiModule.java   
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
    return DefaultRenameStrategy.class;
}