class_docstr: Handle representation of the filter panel
  
  The code for handling the filter UI is moderately massive, so it gets
  its own class, if for no other reason than to organize the code.
docstr: Insert the item in the sizer at the right location
  
  sizer - sizer for the line
  
  item - the control to be added
  
  index - index of the control within the sizer
  
  address - address of the sizer
docstr_tok: ["Insert","the","item","in","the","sizer","at","the","right","location","sizer","-","sizer","for","the","line","item","-","the","control","to","be","added","index","-","index","of","the","control","within","the","sizer","address","-","address","of","the","sizer"]
code: def add_to_sizer(self, sizer, item, index, address):
      """Insert the item in the sizer at the right location
  
      sizer - sizer for the line
  
      item - the control to be added
  
      index - index of the control within the sizer
  
      address - address of the sizer
      """
      key = tuple(address + [index])
      next_key = tuple(address + [index + 1])
      if next_key in self.sizer_item_dict:
          next_ctrl = self.sizer_item_dict[next_key]
      else:
          next_ctrl = self.stretch_spacer_dict[tuple(address)]
      index = self.get_sizer_index(sizer, next_ctrl)
      sizer.Insert(index, item, 0, wx.ALIGN_LEFT)
      if key not in self.sizer_item_dict:
          self.sizer_item_dict[key] = item
  
imports: import logging
  import wx
  from cellprofiler_core.setting.filter import Filter, FilterPredicate
  from cellprofiler_core.setting.filter._filter import AND_PREDICATE, OR_PREDICATE, LITERAL_PREDICATE
  from ._module_view import ModuleView
  from ..utilities.module_view import edit_control_name
label_desc: Use image node_id 18 for calling the FilterPanelController obj's underlying member method code with example usage: obj.add_to_sizer(sizer, item, index, address) without return types