For FG 2.6, I decided that "cancel isolate" needs to blank hideMode. Otherwise, next chain you click is hidden! (bug!) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hide can be used before or after Isolate. Items checked in Hide are not checked in Isolate. If a checkbox-category is hidden, and the same checkbox is clicked in Isolate, option is offered to unhide and isolate that category (via confirm dialog). If a checkbox-category is isolated, then hidden, nothing remains visible. Left this alone as it seems obvious and recovery is just by unchecking. When hiding is inverted, isolate is disallowed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Isolate cannot be re-executed once something is isolated. After something is isolated, it is automatically centered. After isolation is undone, the visible atoms (some may remain hidden) are automatically centered. Isolate and Hide share makeHideHelpDetails() in help.js. makeIsolateHelp() sets isolateMode true, then calls makeHideHelpDetails(). isolateMode controls behavior after something is clicked or checked. Since isolate is limited to a single entity, after execution, isolateMode goes false. isolatedDescription goes nonblank with the text/echo description of what is isolated. isolatedAtomExpression contains the atom expression for isolation. ~hidden4isolated_jdef contains the isolated atoms. NOTE: In FGiJ 2.2, ~hidden_jdef was redefined to mean (~hidden4hide_jdef or ~hidden4isolate_jdef) The hidden arrays are cleared! Thus hiddenTot goes back to pre-isolate. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Execution: see makeIsolateHelp() above. isolateMode is true pickcall.js handles clicking. pickcall.js first populates the hidden??? arrays, then fills isolatedDescription and ***isolatedAtomExpression***, then clears the last entry in the hidden??? arrays. *** Used in makeIsolateSpt(). Checkboxes: makeHideCheckboxes() in help.js They call hideChecked(category) in scripts.js isolateChecked(category) comment: reDisplay will call makeHideSpt. [sets isolatedDescription and isolatedAtomExpression] reDisplay() in jcontrol.js doMolViewSpt() makeIsolateSpt() is called 2 places: doMolViewSpt() in scripts.js pickcall.js makeIsolateSpt() (jcontrol.js) is called in doMolViewSpt() (scripts.js) just before makeHideSpt(). makeIsolateSpt() (jcontrol.js) centers the isolated moiety. makeDefineIsolatedSpt() in jcontrol.js makeSelectSeqIDChainsSpt(isolatedAtomExpression) jcontrol.js QUERIES ALL ID CHAINS? PICKCALL: see echoId using atomid CHECKED: echo isolatedDescription + " Isolated" is in scripts.js in isolateChecked(). RANGE: hiddenRangeStart is a selectable residue to "label [". cancelIsolate() blanks it and sets the labels off. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Clearing (jcontrol.js): undoIsolated() calls clearIsolated() unHideAll() calls clearHidden() unHideLast() isolatedDescription isolatedAtomExpression - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -