def onZComboBoxSelected(self, event):
        combobox = event.widget
        structuralNode = combobox.zStructuralNode
        if combobox.zAxisAspectEntryMode:
            aspectValue = structuralNode.aspectEntryHeaderValues.get(combobox.get())
            if aspectValue is not None:
                self.zOrdinateChoices[structuralNode.definitionNode] = \
                    structuralNode.aspects = {combobox.zAxisAspect: aspectValue, 'aspectValueLabel': combobox.get()}
                self.view() # redraw grid
        elif combobox.zAxisIsOpenExplicitDimension and combobox.get() == "(all members)":
            # reload combo box
            self.comboboxLoadExplicitDimension(combobox, 
                                               structuralNode, # owner of combobox
                                               structuralNode.choiceStructuralNodes[structuralNode.choiceNodeIndex]) # aspect filter node
            structuralNode.choiceNodeIndex = -1 # use entry aspect value
            combobox.zAxisAspectEntryMode = True
        elif combobox.zAxisTypedDimension is not None and combobox.get() == "(enter typed member)":
            # ask typed member entry
            import tkinter.simpledialog
            result = tkinter.simpledialog.askstring(_("Enter new typed dimension value"), 
                                                    combobox.zAxisTypedDimension.label(), 
                                                    parent=self.tabWin)
            if result:
                structuralNode.choiceNodeIndex = -1 # use entry aspect value
                aspectValue = FunctionXfi.create_element(self.rendrCntx, 
                                                         None, 
                                                         (combobox.zAxisTypedDimension.typedDomainElement.qname, (), result))
                self.zOrdinateChoices[structuralNode.definitionNode] = \
                    structuralNode.aspects = {combobox.zAxisAspect: aspectValue, 
                                              Aspect.DIMENSIONS: {combobox.zAxisTypedDimension.qname},
                                              'aspectValueLabel': result}
                if not hasattr(structuralNode, "aspectEntryHeaderValues"): structuralNode.aspectEntryHeaderValues = {}
                structuralNode.aspectEntryHeaderValues[result] = aspectValue
                valueHeaders = list(combobox["values"])
                if result not in valueHeaders: valueHeaders.insert(0, result)
                combobox["values"] = valueHeaders
                combobox.zAxisAspectEntryMode = True
                self.view() # redraw grid
        else:
            # remove prior combo choice aspect
            self.setZStructuralNodeAspects(structuralNode.choiceStructuralNodes[structuralNode.choiceNodeIndex], add=False)
            i = combobox.valueIndex
            self.zOrdinateChoices[combobox.zStructuralNode.definitionNode] =  structuralNode.choiceNodeIndex = i
            # set current combo choice aspect
            self.setZStructuralNodeAspects(structuralNode.choiceStructuralNodes[i])
            self.view() # redraw grid
dataset/ETHPy150Open Arelle/Arelle/arelle/ViewWinRenderedGrid.py/ViewRenderedGrid.onZComboBoxSelected/original