IF handle #
NIL
THEN {
OPEN handle;
allTexts ← CleanUpTexts[allTexts, TRUE];
entityGroupList ← CleanUpEGL[entityGroupList, TRUE];
FOR i:
INT
IN [0..EntityHashSize)
DO
entityHash[i] ← CleanUpEL[entityHash[i], FALSE];
ENDLOOP;
chart
FOR i: CaretIndex IN CaretIndex DO chart.caretState[i]^ ← []; ENDLOOP;
chart^ ← [viewer: chart.viewer, caretState: chart.caretState];
controller
IF controller #
NIL
THEN {
ViewerOps.DestroyViewer[controller.table];
controller.table ← NIL;
};
graph
graph.entityList ← CleanUpEL[graph.entityList, FALSE];
FOR i: CaretIndex IN CaretIndex DO graph.caret[i]^ ← []; ENDLOOP;
FOR i: XY IN XY DO graph.target[i]^ ← []; ENDLOOP;
graph.color^ ← defaultColors^;
graph.font^ ← defaultFonts^;
graph^ ← [caret: graph.caret, target: graph.target, color: graph.color, font: graph.font];
lastEntityColor ← LastEntityColor;
lastTextId ← lastEntityId ← -1;
zoomPt1 ← [];
zoomPt2 ← [];
waitingGraph ← FALSE;
selectProcId ← 0;
Process.Abort[selectProc];
selectProc ← NIL;
};