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