code: def _insert_item(self, root, data, from_file=False):
          
  
          tree = self.treeview
          treelabel = data.get_id()
          row = col = ''
          if root != '' and 'layout' in data:
              row = data.get_layout_property('row')
              col = data.get_layout_property('column')
  
              # fix row position when using copy and paste
              # If collision, increase by 1
              row_count = self.get_max_row(root)
              if not from_file and (row_count > int(row) and int(col) == 0):
                  row = str(row_count + 1)
                  data.set_layout_property('row', row)
  
          image = ''
          try:
              image = StockImage.get('16x16-tk.default')
          except StockImageException:
              # TODO: notify something here
              pass
  
          try:
              image = StockImage.get('16x16-{0}'.format(data.get_class()))
          except StockImageException:
              # TODO: notify something here
              pass
  
          values = (data.get_class(), row, col)
          item = tree.insert(root, 'end', text=treelabel, values=values,
                             image=image)
          data.attach(self)
          self.treedata[item] = data
  
          # Update grid r/c data
          self._update_max_grid_rc(root, from_file=True)
          self.app.set_changed()
  
          return item
docs: Insert a item on the treeview and fills columns from data