// ----------------------------------------------------------------------
        // OK
        public static void Fold(iCS_EditorObject node)
        {
#if DEBUG
            Debug.Log("iCanScript: Fold => " + node.DisplayName);
#endif
            if (!node.IsNode || node.DisplayOption == iCS_DisplayOptionEnum.Folded)
            {
                return;
            }
            var iStorage = node.IStorage;
            OpenTransaction(iStorage);
            try {
                SendStartRelayoutOfTree(iStorage);
                iStorage.AnimateGraph(null,
                                      _ => {
                    node.Fold();
                    node.SetAsHighestLayoutPriority();
                    iStorage.ForcedRelayoutOfTree();
                    node.ClearLayoutPriority();
                    var visualEditor = iCS_EditorController.FindVisualEditor();
                    if (visualEditor != null)
                    {
                        visualEditor.SmartFocusOn(node);
                    }
                }
                                      );
                SendEndRelayoutOfTree(iStorage);
            }
            catch (System.Exception) {
                CancelTransaction(iStorage);
                return;
            }
            CloseTransaction(iStorage, "Fold " + node.DisplayName);
        }