public SearchResults getAffectedNodes(final RefactoringContext refactoringContext) { SearchResults searchResults = new SearchResults(); for (SNode selNode : ListSequence.fromList(refactoringContext.getSelectedNodes())) { searchResults.addAll( FindUtils.getSearchResults( new EmptyProgressMonitor(), selNode, GlobalScope.getInstance(), "jetbrains.mps.lang.structure.findUsages.NodeAndDescendantsUsages_Finder")); } return searchResults; }
public void refactor(final RefactoringContext refactoringContext) { List<SNode> nodes = refactoringContext.getSelectedNodes(); SModel targetModel = null; List<SNode> movedNodes = null; if (((Object) refactoringContext.getParameter("target")) instanceof SModel) { targetModel = ((SModel) ((Object) refactoringContext.getParameter("target"))); movedNodes = refactoringContext.moveNodesToModel(nodes, targetModel); } if (((Object) refactoringContext.getParameter("target")) instanceof SNode) { SNode targetNode = (SNode) ((Object) refactoringContext.getParameter("target")); movedNodes = refactoringContext.moveNodesToNode( nodes, ListSequence.fromList(nodes).first().getRoleInParent(), targetNode); targetModel = SNodeOperations.getModel(targetNode); } if (targetModel != null) { refactoringContext.setParameter("nodeToOpen", ListSequence.fromList(movedNodes).first()); } }
public ModelOrNodeChooser(final RefactoringContext context) { super(); this.myTree = new ProjectTree(context.getSelectedProject()); this.setViewportView(this.myTree); ThreadUtils.runInUIThreadNoWait( new Runnable() { public void run() { ModelOrNodeChooser.this.myTree.rebuildNow(); ModelOrNodeChooser.this.myTree.runWithoutExpansion( new Runnable() { public void run() { MPSTreeNode treeNode = ModelOrNodeChooser.this.myHelper.findMostSuitableModelTreeNode( context.getSelectedModel()); if (treeNode == null) { return; } ModelOrNodeChooser.this.myTree.selectNode(treeNode); } }); } }); }
@Override public boolean testRefactoring( final Project project, final SModel sandbox1, final SModel sandbox2, final Language testRefactoringLanguage, final Language testRefactoringTargetLanguage) { final String newConceptName = "MyVeryGoodConcept2"; final ModelAccess modelAccess = project.getRepository().getModelAccess(); final Wrappers._T<IRefactoring> refactoring = new Wrappers._T<IRefactoring>(); modelAccess.runReadAction( new Runnable() { public void run() { refactoring.value = RefactoringUtil.getRefactoringByClassName( BehaviorReflection.invokeVirtual( String.class, SNodeOperations.getNode( "r:de5b7214-45ee-4f6d-89bf-acde59cdb050(jetbrains.mps.lang.structure.refactorings)", "1347577327951781517"), "virtual_getFqName_1213877404258", new Object[] {})); } }); final RefactoringContext refactoringContext = new RefactoringContext(project, refactoring.value); refactoringContext.setCurrentOperationContext(new ProjectOperationContext(project)); modelAccess.runReadAction( new Runnable() { public void run() { final SModel structureModelDescriptor = testRefactoringLanguage.getStructureModelDescriptor(); refactoringContext.setParameter( RenameConceptRefactoringTester.STRMD, structureModelDescriptor); SModel model = structureModelDescriptor; SNode concept = SModelOperations.getRootByName(model, "MyVeryGoodConcept1"); refactoringContext.setSelectedNode(concept); refactoringContext.setSelectedModel(structureModelDescriptor); refactoringContext.setParameter("newName", newConceptName); } }); new RefactoringTestFacade().doExecuteInTest(refactoringContext); final boolean[] result = new boolean[] {false}; ThreadUtils.runInUIThreadAndWait( new Runnable() { @Override public void run() { modelAccess.runReadAction( new Runnable() { public void run() { try { if (sandbox1.isLoaded()) { System.err.println( "test environment is invalid: model sandbox1 is already initialized, should be not"); result[0] = false; return; } SModel sModel = sandbox1; String conceptFqName = sModel.getRootNodes().iterator().next().getConcept().getConceptId(); SModel structureModelDescriptor = (SModel) refactoringContext.getParameter(RenameConceptRefactoringTester.STRMD); result[0] = conceptFqName.equals( structureModelDescriptor.getReference().getModelName() + "." + newConceptName); } catch (Throwable t) { t.printStackTrace(); result[0] = false; } } }); } }); return result[0]; }
public void refactor(final RefactoringContext refactoringContext) { new ConvertAnonymousRefactoring( refactoringContext.getSelectedNode(), ((String) refactoringContext.getParameter("name"))) .doRefactor(); }