def accept(self): """ DOCUMENT ME! """ # ponto da trajetória existe ? if self.__brk_trj is not None: # salva edição do ponto da trajetória ldct_brk_trj = self.__gui_data2dict() # coloca no dicionário ldct_brk_trj["nBrk"] = self.__brk_trj.i_brk_id # carrega o dicionário self.__brk_trj.load_brk(ldct_brk_trj) # senão, o ponto da trajetória não existe else: # cria um novo ponto da trajetória self.__brk_trj = bptrj.CBrkNEW(self.__model, self, self.__gui_data2dict()) assert self.__brk_trj # faz o "accept" QtGui.QDialog.accept(self)
def make_trj(self, fdct_data): """ carrega os dados de procedimento de trajetória a partir de um dicionário (formato 0001) @param fdct_data: dicionário com os dados do procedimento de trajetória """ # identificação da trajetória if "nTrj" in fdct_data: self.i_prc_id = int(fdct_data["nTrj"]) self.s_prc_desc = "Trajetória {:04d}".format(fdct_data["nTrj"]) # descrição if "descricao" in fdct_data: self.s_prc_desc = fdct_data["descricao"] # star if "star" in fdct_data: self._v_trj_star = ('S' == fdct_data["star"].strip().upper()) # proa if "proa" in fdct_data: self._f_trj_proa = float(fdct_data["proa"].strip().upper()) # breakpoints da trajetória if "breakpoints" in fdct_data: # para todos breakpoints da trajetória... for l_brk in sorted(fdct_data["breakpoints"], key=lambda l_k: l_k["nBrk"]): # cria o breakpoint lo_brk = brktrj.CBrkNEW(self._model, self, l_brk) assert lo_brk # coloca o breakpoint na lista self._lst_trj_brk.append(lo_brk) # (bool) self.v_prc_ok = True
def __make_apx(self, fdct_data): """ carrega os dados de procedimento de aproximação a partir de um dicionário (formato 0001) @param fdct_data: dicionário com os dados do procedimento de aproximação """ # identificação do procedimento de aproximação if "nApx" in fdct_data: self.i_prc_id = int(fdct_data["nApx"]) self.s_prc_desc = "Aproximação {:03d}".format(fdct_data["nApx"]) # descrição do procedimento de aproximação if "descricao" in fdct_data: self.s_prc_desc = fdct_data["descricao"].strip() # aeródromo da aproximação if "aerodromo" in fdct_data: # obtém o dicionário de aeródromos ldct_aer = self.__model.airspace.dct_aer # obtém o indicativo do aeródromo ls_aer_indc = fdct_data["aerodromo"] # obtém o aeródromo de aproximação self.__ptr_apx_aer = ldct_aer.get(ls_aer_indc, None) # não existe o aeródromo no dicionário ? if self.__ptr_apx_aer is None: # logger l_log = logging.getLogger("CSubNEW::__make_apx") l_log.setLevel(logging.WARNING) l_log.warning( u"<E01: aeródromo [{}] não existe.".format(ls_aer_indc)) # pista de aproximação if "pista" in fdct_data: # existe o aeródromo ? if self.__ptr_apx_aer is not None: # obtém o dicionário de pistas ldct_pis = self.__ptr_apx_aer.dct_aer_pistas # obtém o indicativo do aeródromo ls_pst_indc = fdct_data["pista"] # obtém o pista de subida self.__ptr_apx_pis = ldct_pis.get(ls_pst_indc, None) # não existe a pista no dicionário ? if self.__ptr_apx_pis is None: # logger l_log = logging.getLogger("CApxNEW::__make_apx") l_log.setLevel(logging.WARNING) l_log.warning( u"<E02: aeródromo [{}]/pista [{}] não existe.".format( self.__ptr_apx_aer.s_aer_indc, ls_pst_indc)) # flag ILS if "ils" in fdct_data: self.__v_apx_ils = ('S' == fdct_data["ils"].strip().upper()) # flag aproximação perdida if "aproxperd" in fdct_data: self.__v_apx_ape = ('S' == fdct_data["aproxperd"].strip().upper()) # número da espera if "espera" in fdct_data: self.__ptr_apx_prc_esp = int(fdct_data["espera"]) # breakpoints da aproximação if "breakpoints" in fdct_data: # para todos breakpoints da aproximação... for l_brk in sorted(fdct_data["breakpoints"], key=lambda l_k: l_k["nBrk"]): # cria o breakpoints lo_brk = brknew.CBrkNEW(self.__model, self, l_brk) assert lo_brk # coloca o breakpoint na lista self.__lst_apx_brk.append(lo_brk) # (bool) self.v_prc_ok = True
def _make_sub(self, fdct_data): """ carrega os dados de procedimento de subida a partir de um dicionário (formato 0001) @param fdct_data: dicionário com os dados do procedimento de subida """ # identificação do procedimento de subida if "nSub" in fdct_data: self.i_prc_id = int(fdct_data["nSub"]) self.s_prc_desc = "Subida {:03d}".format(fdct_data["nSub"]) # descrição if "descricao" in fdct_data: self.s_prc_desc = fdct_data["descricao"] # aeródromo da subida if "aerodromo" in fdct_data: # obtém o dicionário de aeródromos ldct_aer = self._model.airspace.dct_aer # obtém o indicativo do aeródromo ls_aer_id = fdct_data["aerodromo"] # obtém o aeródromo de subida self._ptr_sub_aer = ldct_aer.get(ls_aer_id, None) # não existe o aeródromo no dicionário ? if self._ptr_sub_aer is None: # logger l_log = logging.getLogger("CSubNEW::_make_sub") l_log.setLevel(logging.WARNING) l_log.warning( "<E01: aerodromo [{}] não existe no dicionário.".format( ls_aer_id)) # pista de subida if "pista" in fdct_data: # existe o aeródromo ? if self._ptr_sub_aer is not None: # obtém o dicionário de pistas ldct_pis = self._ptr_sub_aer.dct_aer_pistas # obtém o indicativo do aeródromo ls_pis_id = fdct_data["pista"] # obtém o pista de subida self._ptr_sub_pis = ldct_pis.get(ls_pis_id, None) # não existe a pista no dicionário ? if self._ptr_sub_pis is None: # logger l_log = logging.getLogger("CSubNEW::_make_sub") l_log.setLevel(logging.WARNING) l_log.warning( "<E02: pista [{}] não existe no dicionário.".format( ls_pis_id)) # break-points da subida if "breakpoints" in fdct_data: # para todos break-points da subida... for l_brk in sorted(fdct_data["breakpoints"], key=lambda l_k: l_k["nBrk"]): # cria o break-points lo_brk = brknew.CBrkNEW(self._model, self, l_brk) assert lo_brk # coloca o break-point na lista self._lst_sub_brk.append(lo_brk) # (bool) self.v_prc_ok = True