code: def add_files(self, file_objects):
      uid = uuid.uuid4()
      npaths = len(file_objects)
      added_folders = False
      changed_folders = set()
      for i, file_object in enumerate(file_objects):
          path = file_object.path
          url = file_object.url
          if i % 100 == 0:
              report_progress(
                  uid, float(i) / npaths, "Loading %s into UI" % path
              )
          folder, filename = os.path.split(path)
          if folder in self.folder_id_map:
              folder_id = self.folder_id_map[folder]
          else:
              added_folders = True
              folder_id = self.AppendItem(self.root_id, folder)
              self.SetItemTextColour(folder_id, FOLDER_COLOR)
              self.folder_id_map[folder] = folder_id
          changed_folders.add(folder_id)
          if url in self.file_id_map:
              continue
          else:
              file_id = self.AppendItem(
                  folder_id, filename, data=file_object
              )
              self.file_id_map[url] = file_id
              if url in self.disabled_urls:
                  self.SetItemTextColour(file_id, DISABLED_COLOR)
              if file_object.extracted:
                  for detail in file_object.plane_details_text:
                      plane_id = self.AppendItem(
                          file_id, detail, data=file_object
                      )
                      self.SetItemFont(
                          plane_id, self._plane_details_font
                      )
                      self.SetItemTextColour(plane_id, PLANE_COLOR)
      if added_folders:
          self.SortChildren(self.root_id)
      for folder_id in changed_folders:
          self.SortChildren(folder_id)
      self.ExpandAll()
      if npaths:
          report_progress(uid, 1, "Done")
      self._metadata_extracted = False
      # Needed to remove 'Drop files' text
      self.Refresh()
  
imports: import logging
  import os
  import sys
  import uuid
  from urllib.request import url2pathname
  from urllib.parse import urlparse
  import wx
  import wx.lib.scrolledpanel
  from cellprofiler_core.pipeline import ImageFile
  from cellprofiler_core.preferences import report_progress
label_desc: Use image node_id 12 for calling the PathListCtrl obj's underlying member method code with example usage: obj.add_files(file_objects) without return types