          self.tree.configure(height=len(sessions_summary))
  
          for item in sessions_summary:
              values = [item[column] for column in self.columns]
              kwargs = {"values": values, "image": get_images().icons["graph"]}
              if values[0] == "Total":
                  kwargs["tags"] = "total"
              self.tree.insert("", "end", **kwargs)
  
      def tree_clear(self):
 
</s> remove                 default = "10"
 </s> add                 default = "500" </s> remove             var.set(True)
            var.trace("w", self.optbtn_reset)
 </s> add             if loss_key.startswith("loss"):
                var.set(True) </s> remove             if item == "raw":
 </s> add             if item == self.default_view: </s> remove             if region == "tree":
                self.data_popup()
 </s> add             if region == "tree" and self.check_valid_data(values):
                datapoints = int(values[self.columns.index("iterations")])
                self.data_popup(datapoints)

    def check_valid_data(self, values):
        """ Check there is valid data available for popping up a graph """
        col_indices = [self.columns.index("batch"), self.columns.index("iterations")]
        for idx in col_indices:
            if (isinstance(values[idx], int) or values[idx].isdigit()) and int(values[idx]) == 0:
                logger.warning("No data to graph for selected session")
                return False
        return True

    def data_popup(self, datapoints):
        """ Pop up a window and control it's position
            kwargs = {"values": values}
            if self.check_valid_data(values):
                # Don't show graph icon for non-existent sessions
                kwargs["image"] = get_images().icons["graph"]
          self.tree.configure(height=len(sessions_summary))
  
          for item in sessions_summary:
              values = [item[column] for column in self.columns]
            kwargs = {"values": values}
            if self.check_valid_data(values):
                # Don't show graph icon for non-existent sessions
                kwargs["image"] = get_images().icons["graph"]
              if values[0] == "Total":
                  kwargs["tags"] = "total"
              self.tree.insert("", "end", **kwargs)
  
      def tree_clear(self):
keep keep keep keep replace keep keep keep keep keep
 GUI Fixups

- Analysis: Handle missing session Ids
- Analysis: Handle invalid data selections
- Analysis: Don't update graph on check box selection
- Analysis: Add cursor events to analysis tab
- Analysis: Change default graph view
- Training: Prevent GUI from attempting to close graphs which do not exist
- Extract/Convert: Make file extensions case-insensitive for preview
- Progress bar: Make compatible for downloads
- Progress bar: Add TQDM Description to progress bar stats text 
lib/gui/display_analysis.py