def expand_children node=:current_index
      $multiplier = 999 if !$multiplier || $multiplier == 0
      node = row_to_node if node == :current_index
      return if node.children.empty? # or node.is_leaf?
      #node.children.each do |e| 
        #expand_node e # this will keep expanding parents
        #expand_children e
      #end
      node.breadth_each($multiplier) do |e|
        expand_node e
      end
      $multiplier = 0
      _structure_changed true
    end
def expand_children node=:current_index
      $multiplier = 999 if !$multiplier || $multiplier == 0
      node = row_to_node if node == :current_index
      return if node.children.empty? # or node.is_leaf?
      #node.children.each do |e| 
        #expand_node e # this will keep expanding parents
        #expand_children e
      #end
      node.breadth_each($multiplier) do |e|
        expand_node e
      end
      $multiplier = 0
      _structure_changed true
    end
this expands all the children of a node, recursively
 we can't use multiplier concept here since we are doing a preorder enumeration
 we need to do a breadth first enumeration to use a multiplier