Пример #1
0
  private void redrawView() {
    System.err.println("Redrawing Navigator View ...");
    if (startTimeMSecs == 0L) {
      startTimeMSecs = System.currentTimeMillis();
    }
    this.setVisible(false);

    redrawPMThread =
        createProgressMonitorThread(
            "Redrawing Navigator View ...", 0, 6, Thread.currentThread(), this);
    if (!progressMonitorWait(redrawPMThread, this)) {
      System.err.println("progressMonitorWait failed");
      closeView(this);
      return;
    }
    redrawPMThread.getProgressMonitor().setProgress(3 * ViewConstants.MONITOR_MIN_MAX_SCALING);
    // content spec apply/reset do not change layout, only TokenNode/
    // variableNode/constraintNode opening/closing
    setNodesLinksVisible();

    if (isLayoutNeeded) {
      NavigatorViewLayout layout = new NavigatorViewLayout(jGoDocument, startTimeMSecs);
      layout.performLayout();

      isLayoutNeeded = false;
    }

    if ((focusNode == null) && (highlightPathNodesList != null)) {
      NodeGenerics.highlightPathNodes(highlightPathNodesList, jGoView);
    } else if (focusNode != null) {
      // do not highlight node, if it has been removed
      NodeGenerics.focusViewOnNode(focusNode, ((IncrementalNode) focusNode).inLayout(), jGoView);
    }

    long stopTimeMSecs = System.currentTimeMillis();
    System.err.println(
        "   ... "
            + ViewConstants.NAVIGATOR_VIEW
            + " elapsed time: "
            + (stopTimeMSecs - startTimeMSecs)
            + " msecs.");
    startTimeMSecs = 0L;
    this.setVisible(true);
    redrawPMThread.setProgressMonitorCancel();
  } // end redrawView