def update( self, section ) :

		self.__section = section
		self.__widgetsColumn[:] = section.widgets

		existingTabs = collections.OrderedDict()
		for tab in self.__tabbedContainer[:] :
			existingTabs[self.__tabbedContainer.getLabel( tab )] = tab

		updatedTabs = collections.OrderedDict()
		for name, subsection in section.subsections.items() :
			tab = existingTabs.get( name )
			if tab is None :
				tab = GafferUI.ScrolledContainer( borderWidth = 8 )
				if self.orientation() not in GafferUI.ListContainer.Orientation.Vertical :
					tab.setHorizontalMode( GafferUI.ScrolledContainer.ScrollMode.Never )
				else :
					tab.setVerticalMode( GafferUI.ScrolledContainer.ScrollMode.Never )
				tab.setChild( _CollapsibleLayout( self.orientation() ) )
			tab.getChild().update( subsection )
			updatedTabs[name] = tab

		if existingTabs.keys() != updatedTabs.keys() :
			with Gaffer.BlockedConnection( self.__currentTabChangedConnection ) :
				del self.__tabbedContainer[:]
				for name, tab in updatedTabs.items() :
					self.__tabbedContainer.append( tab, label = name )

		for index, subsection in enumerate( section.subsections.values() ) :
			## \todo Consider how/if we should add a public tooltip API to TabbedContainer.
			self.__tabbedContainer._qtWidget().setTabToolTip( index, subsection.summary )

		if not len( existingTabs ) :
			currentTabIndex = self.__section.restoreState( "currentTab" ) or 0
			if currentTabIndex < len( self.__tabbedContainer ) :
				self.__tabbedContainer.setCurrent( self.__tabbedContainer[currentTabIndex] )

		self.__widgetsColumn.setVisible( len( section.widgets ) )
		self.__tabbedContainer.setVisible( len( self.__tabbedContainer ) )
dataset/ETHPy150Open ImageEngine/gaffer/python/GafferUI/PlugLayout.py/_TabLayout.update/operator `==` -> `not in`