def init ( self, parent ): """ Finishes initializing the editor by creating the underlying toolkit widget. """ # Initialize the facet handler to use: facet_handler = self.factory.facet_handler if facet_handler is None: facet_handler = self.object.base_facet( self.name ).handler self._facet_handler = facet_handler # Create a scrolled window to hold all of the list item controls: self.control = QScrollArea( parent ) self.control.setFrameShape( QFrame.NoFrame ) # Create a widget with a grid layout as the container. self._list_pane = QWidget() layout = QGridLayout( self._list_pane ) layout.setMargin( 0 ) # Remember the editor to use for each individual list item: editor = self.factory.editor if editor is None: editor = facet_handler.item_facet.get_editor() self._editor = getattr( editor, self.kind ) # Set up the additional 'list items changed' event handler needed for # a list based facet: self.context_object.on_facet_set( self.update_editor_item, self.extended_name + '_items?', dispatch = 'ui' ) self.set_tooltip()