@Override
  protected IEditorPart getCorrespondingEditor(RepositoryNode node) {
    IEditorReference[] eidtors = getActivePage().getEditorReferences();

    for (IEditorReference eidtor : eidtors) {
      try {
        IEditorInput input = eidtor.getEditorInput();
        if (!(input instanceof JobEditorInput)) {
          continue;
        }

        JobEditorInput repositoryInput = (JobEditorInput) input;
        checkUnLoadedNodeForProcess(repositoryInput);
        if (repositoryInput.getItem().equals(node.getObject().getProperty().getItem())) {

          IPath path = repositoryInput.getFile().getLocation();

          return eidtor.getEditor(false);
        }
      } catch (PartInitException e) {
        continue;
      }
    }
    return null;
  }
  private void checkUnLoadedNodeForProcess(JobEditorInput fileEditorInput) {
    if (fileEditorInput == null || fileEditorInput.getLoadedProcess() == null) {
      return;
    }
    IProcess2 loadedProcess = fileEditorInput.getLoadedProcess();
    List<NodeType> unloadedNode = loadedProcess.getUnloadedNode();
    if (unloadedNode != null && !unloadedNode.isEmpty()) {

      String message = "Some Component are not loaded:\n";
      for (int i = 0; i < unloadedNode.size(); i++) {
        message = message + unloadedNode.get(i).getComponentName() + "\n";
      }
      if (!CommonsPlugin.isHeadless() && PlatformUI.isWorkbenchRunning()) {
        Display display = Display.getCurrent();
        if (display == null) {
          display = Display.getDefault();
        }
        if (display != null) {
          final Display tmpDis = display;
          final String tmpMess = message;
          display.syncExec(
              new Runnable() {

                @Override
                public void run() {
                  Shell shell = null;
                  final IWorkbenchWindow activeWorkbenchWindow =
                      PlatformUI.getWorkbench().getActiveWorkbenchWindow();
                  if (activeWorkbenchWindow != null) {
                    shell = activeWorkbenchWindow.getShell();
                  } else {
                    if (tmpDis != null) {
                      shell = tmpDis.getActiveShell();
                    } else {
                      shell = new Shell();
                    }
                  }
                  MessageDialog.openWarning(shell, "Warning", tmpMess);
                }
              });
        }
      }
    }
  }