code: def change_selected(self,new_fit):
          
          if len(self.fit_list)==0: return
          if self.search_query and self.parent.current_fit not in [x[0] for x in self.fit_list]: return
          if self.current_fit_index == None:
              if not self.parent.current_fit: return
              for i,(fit,specimen) in enumerate(self.fit_list):
                  if fit == self.parent.current_fit:
                      self.current_fit_index = i
                      break
          i = 0
          if isinstance(new_fit, Fit):
              for i, (fit,speci) in enumerate(self.fit_list):
                  if fit == new_fit:
                      break
          elif type(new_fit) is int:
              i = new_fit
          elif new_fit != None:
              print(('cannot select fit of type: ' + str(type(new_fit))))
          if self.current_fit_index != None and \
          len(self.fit_list) > 0 and \
          self.fit_list[self.current_fit_index][0] in self.parent.bad_fits:
              self.logger.SetItemBackgroundColour(self.current_fit_index,"")
          else:
              self.logger.SetItemBackgroundColour(self.current_fit_index,"WHITE")
          self.current_fit_index = i
          if self.fit_list[self.current_fit_index][0] in self.parent.bad_fits:
              self.logger.SetItemBackgroundColour(self.current_fit_index,"red")
          else:
              self.logger.SetItemBackgroundColour(self.current_fit_index,"LIGHT BLUE")
docs: updates passed in fit or index as current fit for the editor (does not affect parent),
          if no parameters are passed in it sets first fit as current
          @param: new_fit -> fit object to highlight as selected