class_docstr: The gui to start and manipulate the analysis model
class_docstr_tok: ["The","gui","to","start","and","manipulate","the","analysis","model"]
code: def on_preconfigured(self, index):
      config = self.preconfigured_combo.itemData(index)
      self.on_clear()
      if config is None:
          return
      if type(config).__name__ == "LabelledImage":
          self.data_type_combo.setCurrentIndex(0)
          self.name = config.data.data_file
          self.data_label.setText(config.data.data_file)
          self.label_name = config.data.label_file
          self.label_label.setText(config.data.label_file)
          if config.hsne.hsne_file != "":
              self.hsne_name = config.hsne.hsne_file
              self.__set_scale_from_hsne_file()
              self.scale_spin.setDisabled(True)
          elif config.hsne.scales > 0:
              self.scale_spin.setValue(config.hsne.scales)
          if config.image.dim_x > 0 and config.image.dim_y > 0:
              self.image_x.setText(str(config.image.dim_x))
              self.image_y.setText(str(config.image.dim_y))
  
      elif type(config).__name__ == "PointMeta":
          self.data_type_combo.setCurrentIndex(1)
          self.name = config.data.data_file
          self.data_label.setText(config.data.data_file)
          self.meta_name = config.data.meta_file
          self.meta_label.setText(config.data.meta_file)
          if config.hsne.hsne_file != "":
              self.hsne_name = config.hsne.hsne_file
              self.__set_scale_from_hsne_file()
              self.scale_spin.setDisabled(True)
          elif config.hsne.scales > 0:
              self.scale_spin.setValue(config.hsne.scales)
  
      elif type(config).__name__ == "HyperspectralImage":
          self.data_type_combo.setCurrentIndex(2)
          self.name = config.data.data_file
          self.data_label.setText(config.data.data_file)
          if config.hsne.hsne_file != "":
              self.hsne_name = config.hsne.hsne_file
              self.__set_scale_from_hsne_file()
              self.scale_spin.setDisabled(True)
          elif config.hsne.scales > 0:
              self.scale_spin.setValue(config.hsne.scales)
          if config.image.dim_x > 0 and config.image.dim_y > 0:
              self.image_x.setText(str(config.image.dim_x))
              self.image_y.setText(str(config.image.dim_y))
  
      self.start_button.setEnabled(True)
  
imports: import sys
  import os
  import queue
  from pathlib import Path
  import math
  from enum import Enum
  import nptsne
  import numpy
  import PIL
  from PIL import ImageQt, Image
  from PyQt5.QtWidgets import QApplication, QTreeView, QWidget, QGridLayout, QDialog, QGroupBox, QFormLayout, QPushButton, QLabel, QSpinBox, QFileDialog, QAbstractItemView, QComboBox, QHBoxLayout, QVBoxLayout, QLineEdit, QHeaderView
  from PyQt5.QtCore import Qt, QTimer, QSize, pyqtSlot
  from PyQt5.QtGui import QIcon, QStandardItemModel, QStandardItem, QPixmap, QIntValidator
  from DemoConfig import CONFIGS
label_desc: Use image node_id 9 for calling the ModelGui obj's underlying member method code with example usage: obj.on_preconfigured(index) without return types