Esempio n. 1
0
 protected void statusChanged(FileStatusManager fsm, @NotNull SNode node) {
   fsm.fileStatusChanged(myNodeFileSystem.getFileFor(myMPSProject.getRepository(), node));
 }
Esempio n. 2
0
  public void apply(final MPSProject project, final List<SNode> nodesToMove) {

    final Wrappers._T<SModel> currentModel = new Wrappers._T<SModel>();
    project
        .getRepository()
        .getModelAccess()
        .runReadAction(
            new Runnable() {
              public void run() {
                currentModel.value =
                    SNodeOperations.getModel(ListSequence.fromList(nodesToMove).first());
              }
            });
    final NodeLocation newLocation =
        MoveNodesDialog.getSelectedObject(
            project.getProject(),
            currentModel.value,
            new MoveNodesDialog.ModelFilter("Choose Node or Model") {
              @Override
              public boolean check(NodeLocation selectedObject, SModel model) {
                return true;
              }
            });
    if (newLocation == null) {
      return;
    }

    project
        .getRepository()
        .getModelAccess()
        .runReadAction(
            new Runnable() {
              public void run() {
                for (SNode node : ListSequence.fromList(nodesToMove)) {
                  if (!(SNodeUtil.isAccessible(node, project.getRepository()))) {
                    return;
                  }
                }
                if (!(newLocation.isValid(project, nodesToMove))) {
                  return;
                }

                final Set<SReference> refUsages = findUsages(project, nodesToMove);
                SearchResults<SNode> searchResults =
                    nodesToRefactoringResult(
                        nodesToMove,
                        SetSequence.fromSet(refUsages)
                            .select(
                                new ISelector<SReference, SNode>() {
                                  public SNode select(SReference it) {
                                    return it.getSourceNode();
                                  }
                                }),
                        "reference");
                RefactoringViewUtil.refactor(
                    project,
                    searchResults,
                    new _FunctionTypes._void_P1_E0<Set<SNode>>() {
                      public void invoke(final Set<SNode> included) {
                        Map<SReference, SNode> usagesMap =
                            classifyUsages(
                                SetSequence.fromSet(refUsages)
                                    .where(
                                        new IWhereFilter<SReference>() {
                                          public boolean accept(SReference it) {
                                            return SetSequence.fromSet(included)
                                                .contains(it.getSourceNode());
                                          }
                                        }));
                        newLocation.insertNodes(nodesToMove);
                        for (IMapping<SReference, SNode> mapping : MapSequence.fromMap(usagesMap)) {
                          updateUsage(mapping.key(), mapping.value());
                        }
                      }
                    },
                    "Move nodes");
              }
            });
  }
Esempio n. 3
0
 public TransientModelsComponent(
     com.intellij.openapi.project.Project ideaProject,
     MPSProject project,
     TransientSwapOwnerComponent swapOwner) {
   super(project.getRepository(), swapOwner);
 }