def _inicializar(self):
   self.sizer = wx.FlexGridSizer(1, 0, 1, 1) 
   self.sizer.AddGrowableRow(0)
   self.SetSizer(self.sizer)
   
   self._opcoes = self._obterOpcoes()
   self._escolhas = EscolhasComRotulo(parent = self, 
                                     rotulo = self._obterRotulo(), 
                                     opcoes = self._opcoes, 
                                     funcaoChamadaEmEvento = self.clicouEmTipoDoGerador)
   
   self.sizer.Add(self._escolhas)
   self.sizer.AddSpacer(gui_constantes.ESPACAMENTO)
   self.sizer.Add(self._sizerDoPainelInterno)
class PainelMultiplaEscolha(wx.Panel):
  
  def __init__(self, parent, frame, *args, **kwargs):
    wx.Panel.__init__(self, parent, *args, **kwargs)
    
    self._parent = parent
    self._frame = frame
    
    self._sizerDoPainelInterno = wx.FlexGridSizer(1, 0, 1, 1) 
    self._sizerDoPainelInterno.AddGrowableRow(0)
    
    self._paineisInternos = self._obterPaineisInternos()
    self._painelInternoAtual = None
    self._inicializar()
    
  def _inicializar(self):
    self.sizer = wx.FlexGridSizer(1, 0, 1, 1) 
    self.sizer.AddGrowableRow(0)
    self.SetSizer(self.sizer)
    
    self._opcoes = self._obterOpcoes()
    self._escolhas = EscolhasComRotulo(parent = self, 
                                      rotulo = self._obterRotulo(), 
                                      opcoes = self._opcoes, 
                                      funcaoChamadaEmEvento = self.clicouEmTipoDoGerador)
    
    self.sizer.Add(self._escolhas)
    self.sizer.AddSpacer(gui_constantes.ESPACAMENTO)
    self.sizer.Add(self._sizerDoPainelInterno)
    
  def _obterPaineisInternos(self):
    """ ABSTRATO: RETORNAR O MAPA DE PAINEIS INTERNOS <Opcao, Instancia de painel>"""
    
  def _obterOpcoes(self):
    """ ABSTRATO: DEFINIR A LISTA DE OPCOES (Strings)"""
  
  def _obterRotulo(self):
    """ ABSTRATO: DEFINIR O ROTULO (String)"""
    
  def obterValoresNosCamposAtuais(self):
    if(self._painelInternoAtual == None):
      return None
      
    return self._painelInternoAtual.obterValoresNosCampos()
      
  def clicouEmTipoDoGerador(self, evento):
    self._sizerDoPainelInterno.Clear()
    
    for opcao in self._paineisInternos.keys():
      self._paineisInternos[opcao].Show(False)
    
    self._painelInternoAtual = self._paineisInternos[self._escolhas.obterOpcaoSelecionada()]
    self._sizerDoPainelInterno.Add(self._painelInternoAtual)
    self._sizerDoPainelInterno.ShowItems(True)
    self._sizerDoPainelInterno.Layout()
    if(os.name == 'nt'):
      atualizarRecursivamente(self)
    self._frame.SendSizeEvent() 
       
    
  def obterEscolhaSelecionada(self):
    return self._escolhas.obterOpcaoSelecionada()
  
  def obterPainelDeEscolhaDeTempoAleatorio(self):
    return self._painelFreqDiferenteEmp