예제 #1
0
    def GetLinkedProjects(self, pi, refProjectType, outProjectType=None):
        try:
            if outProjectType is None:
                listProject = []

                for piItem in self.ProjectsList:
                    if piItem.Pt != refProjectType:
                        continue

                    for case in switch(pi.Pt):
                        if case(enumProjectType.ptProject):
                            if pi.Name == piItem.ProjName:
                                listProject.append(piItem)
                            break
                        elif case(enumProjectType.ptSubProject):
                            if pi.Name == piItem.SubProjName:
                                listProject.append(piItem)
                            break
                        elif case(enumProjectType.ptWorkspace):
                            if pi.Name == piItem.WorkspaceName:
                                listProject.append(piItem)
                            break
                        elif case(enumProjectType.ptFile):
                            if pi.Name == piItem.ProcedureName:
                                listProject.append(piItem)
                            break
                return listProject
            else:
                listProject = []
                for piItem in self.ProjectsList:
                    if piItem.Pt != outProjectType:
                        continue

                    for case in switch(refProjectType):
                        if case(enumProjectType.ptProject):
                            if pi == piItem.ProjName:
                                listProject.append(piItem.Name)
                            break
                        elif case(enumProjectType.ptSubProject):
                            if pi == piItem.SubProjName:
                                listProject.append(piItem.Name)
                            break
                        elif case(enumProjectType.ptWorkspace):
                            if pi == piItem.WorkspaceName:
                                listProject.append(piItem.Name)
                            break
                        elif case(enumProjectType.ptFile):
                            if pi == piItem.ProcedureName:
                                listProject.append(piItem.Name)
                            break
                return listProject
        except:
            # MessageBox.Show(ex.Message)
            return None
예제 #2
0
    def mTypeBoxCrrentIndexChanged(self, index):
        # FIXME: sync with providers/ogr/qgsogrprovider.cpp
        if isinstance(index, str) or isinstance(index, QString):
            return
        for case in switch(index):
            if case(0):  # Text data
                if (int(self.ui.mWidth.text()) < 1
                        or int(self.ui.mWidth.text()) > 255):
                    self.ui.mWidth.setText("80")
                self.ui.mPrecision.setEnabled(False)
                self.ui.mWidth.setValidator(QIntValidator(1, 255, self))
                break

            elif case(1):  # Whole number
                if (int(self.ui.mWidth.text()) < 1
                        or int(self.ui.mWidth.text()) > 10):
                    self.ui.mWidth.setText("10")
                self.ui.mPrecision.setEnabled(False)
                self.ui.mWidth.setValidator(QIntValidator(1, 10, self))
                break

            elif case(2):  # Decimal number
                if (int(self.ui.mWidth.text()) < 1
                        or int(self.ui.mWidth.text()) > 20):
                    self.ui.mWidth.setText("20")
                self.ui.mPrecision.setEnabled(True)
                self.ui.mWidth.setValidator(QIntValidator(1, 20, self))
                break

            else:
                QMessageBox.warning(self, "Warning", "unexpected index")
                break
예제 #3
0
    def cmbAircraftCategory_Event_0(self):

        if self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.H:
            self.parametersPanel.pnlDistXz.Value = Distance(-700)
            self.parametersPanel.pnlDistXz.Enabled = False
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.Custom:
            self.parametersPanel.pnlDistXz.Enabled = True
        else:
            self.parametersPanel.pnlDistXz.Enabled = False
            if self.dlgType == SurfaceTypes.BARO_VNAV:
                for case in switch(self.parametersPanel.cmbAircraftCategory.
                                   SelectedIndex):
                    if case(AircraftSpeedCategory.A) or case(
                            AircraftSpeedCategory.B):
                        self.parametersPanel.pnlDistXz.Value = Distance(-900)
                    elif case(AircraftSpeedCategory.C):
                        self.parametersPanel.pnlDistXz.Value = Distance(-1100)
                    elif case(AircraftSpeedCategory.D):
                        self.parametersPanel.pnlDistXz.Value = Distance(-1400)
                    elif case(AircraftSpeedCategory.E):
                        self.parametersPanel.pnlDistXz.Value = Distance(-1400)
            else:
                self.parametersPanel.pnlDistXz.Value = Distance(-900)

        self.putAircraftSpeed()
        self.putWithInHeightLoss()
예제 #4
0
    def smethod_0(iwin32Window_0):
        num = 0
        str0 = ""
        navigationalAidList = NavigationalAidList()
        NavigationalAidList.NavigationalAidList()
        navigationalAidList.append(OmnidirectionalNavigationalAid("DME N", AngleGradientSlope(1), Distance(3000), Distance(300), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("VOR", AngleGradientSlope(1), Distance(3000), Distance(600), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("Directional Finder (DF)", AngleGradientSlope(1), Distance(3000), Distance(500), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("Markers", AngleGradientSlope(20), Distance(200), Distance(50), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("NDB", AngleGradientSlope(5), Distance(1000), Distance(200), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("GBAS ground reference receiver", AngleGradientSlope(3), Distance(3000), Distance(400), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("GBAS VDB station", AngleGradientSlope(0.9), Distance(3000), Distance(300), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("SBAS ground monitoring station", AngleGradientSlope(3), Distance(3000), Distance(400), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("VHF (Communication Tx)", AngleGradientSlope(1), Distance(2000), Distance(300), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("VHF (Communication Rx)", AngleGradientSlope(1), Distance(2000), Distance(300), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("PSR", AngleGradientSlope(0.25), Distance(15000), Distance(500), True))
        navigationalAidList.append(OmnidirectionalNavigationalAid("SSR", AngleGradientSlope(0.25), Distance(15000), Distance(500), True))
        navigationalAidList.append(DirectionalNavigationalAid("ILS LOC (single freq.)", Distance.NaN(), Distance(500), Altitude(70), Distance(6000), Distance(500), Altitude(10), Distance(2300), AngleGradientSlope(30), True))
        navigationalAidList.append(DirectionalNavigationalAid("ILS LOC (dual freq.)", Distance.NaN(), Distance(500), Altitude(70), Distance(6000), Distance(500), Altitude(20), Distance(1500), AngleGradientSlope(20), True))
        navigationalAidList.append(DirectionalNavigationalAid("ILS GP M-Type (dual freq.)", Distance(800), Distance(50), Altitude(70), Distance(6000), Distance(250), Altitude(5), Distance(325), AngleGradientSlope(10), True))
        navigationalAidList.append(DirectionalNavigationalAid("MLS AZ", Distance.NaN(), Distance(20), Altitude(70), Distance(6000), Distance(600), Altitude(20), Distance(1500), AngleGradientSlope(40), True))
        navigationalAidList.append(DirectionalNavigationalAid("MLS EL", Distance(300), Distance(20), Altitude(70), Distance(6000), Distance(200), Altitude(20), Distance(1500), AngleGradientSlope(40), True))
        navigationalAidList.append(DirectionalNavigationalAid("DME (directional antennas)", Distance.NaN(), Distance(20), Altitude(70), Distance(6000), Distance(600), Altitude(20), Distance(1500), AngleGradientSlope(40), True))
        try:
            if (QFile.exists(NavigationalAidList.fileName)):
                xmlFile = XmlFile(NavigationalAidList.fileName, "NavigationalAids", False)
                xmlNodeLists = xmlFile.elementsByTagName("NavigationalAid")
                if (xmlNodeLists != None):
                    count =  xmlNodeLists.count()
                    for i in range(count):
                        xmlElement = xmlNodeLists.item(i)
                    # foreach (XmlElement xmlElement in xmlNodeLists)
                        result1, num = xmlFile.method_7(xmlElement, "Type")
                        result2, str0 = xmlFile.method_7(xmlElement, "Name")
                        if (not result1 or not result2):
                            continue
                        for case in switch(num):
                            if case(NavigationalAidType.Omnidirectional):
                                navigationalAidList.Add(OmnidirectionalNavigationalAid(None, xmlFile, xmlElement, str0))
                                continue
                            elif case(NavigationalAidType.Directional):
                                navigationalAidList.Add(DirectionalNavigationalAid(None, xmlFile, xmlElement, str0))
                                continue
                            elif case(NavigationalAidType.LineOfSight):
                                navigationalAidList.Add(LineOfSight(None, xmlFile, xmlElement, str0))
                                continue
                            else:
                                continue
        except:
            # Exception exception = exception1
            QMessageBox.warning(iwin32Window_0, "Error", Messages.ERR_FAILED_TO_LOAD_NAVAID_DATA_FILE)
            # ErrorMessageBox.smethod_0(iwin32Window_0, string.Format(Messages.ERR_FAILED_TO_LOAD_NAVAID_DATA_FILE, exception.Message))

        navigationalAidList.method_1()
        return navigationalAidList
예제 #5
0
 def LoadData(self, reader, version):
     QARecord.LoadData(reader, version);
     for case in switch (version):
         if case(QAFileVersion.V8) or case(QAFileVersion.V8_1):
             self.method_0(self.value, reader.ReadBytes(reader.ReadInt64()), False)
             return;
         elif case(QAFileVersion.V10):
             self.method_0(self.value, reader.ReadBytes(reader.ReadInt64()), True);
             return;
         else:
             raise SystemError
예제 #6
0
 def get_Name(self):
     for case in switch(self.Pt):
         if case(enumProjectType.ptProject):
             return self.ProjName
         elif case(enumProjectType.ptSubProject):
             return self.SubProjName
         elif case(enumProjectType.ptWorkspace):
             return self.WorkspaceName
         elif case(enumProjectType.ptFile):
             return self.ProcedureName
         else:
             return self.ProjName
예제 #7
0
 def LoadData(self, reader, version):
     # reader = open("")
     for case in switch(version):
         if case(QAFileVersion.V8) or case(QAFileVersion.V8_1):
             self.stamp = QDateTime.fromString(reader.readline())
             self.title = reader.readline()
             break
         elif case(QAFileVersion.V10):
             self.stamp = QDateTime.fromString(reader.readline())
             self.title = reader.readline()
             break
         else:
             raise SystemError
예제 #8
0
 def SaveData(self, writer, version):
     for case in switch(version):
         if case(QAFileVersion.V8) or case(QAFileVersion.V8_1):
             writer.write(self.stamp.toString(Qt.TextDate))
             writer.write(len(self.title))
             writer.Write(self.title)
             return
         elif case(QAFileVersion.V10):
             writer.write(self.stamp.toString(Qt.TextDate))
             writer.write(len(self.title))
             writer.write(self.title)
             return
         else:
             raise SystemError
예제 #9
0
 def method_4(self, iwin32Window_0, string_0, qafileVersion_0):
     try:
         count = len(self.Sessions)
         if (count <= 0 or not self.sessions[count - 1].Corrupted
                 or len(self.sessions[count - 1].Children) != 0):
             tempFileName = define.appPath + "/tempFile.txt"
             fileT = QFile(string_0)
             binaryWriter = file(tempFileName, "w")
             # using (FileStream fileStream = File.Open(tempFileName, FileMode.Create, FileAccess.write, FileShare.Read))
             # {
             #     using (BinaryWriter binaryWriter = new BinaryWriter(fileStream))
             #     {
             binaryWriter.write("PHXQAA")
             for case in switch(qafileVersion_0):
                 if case(QAFileVersion.V4) or case(QAFileVersion.V4_1):
                     if (qafileVersion_0 != QAFileVersion.V4):
                         binaryWriter.write(str(4.1))
                     else:
                         binaryWriter.write(str(4))
                     self.method_14(binaryWriter, qafileVersion_0)
                     break
                 elif case(QAFileVersion.V8) or case(QAFileVersion.V8_1):
                     if (qafileVersion_0 != QAFileVersion.V8):
                         binaryWriter.write(str(8.1))
                     else:
                         binaryWriter.write(str(8))
                     self.method_16(binaryWriter, qafileVersion_0)
                     break
                 elif case(QAFileVersion.V10):
                     binaryWriter.write(10)
                     self.method_16(binaryWriter, qafileVersion_0)
                     break
                 else:
                     QMessageBox.warning(
                         iwin32Window_0, "Error",
                         Messages.ERR_UNSUPPORTED_QA_FILE_VERSION)
                     raise SystemError
             if (fileT.exists()):
                 string_0 = String.Str2QString(string_0)
                 str0 = string_0.left(string_0.length() - 3) + "qab"
                 if (QFile.exists(str0)):
                     QFile.remove(str0)
                 QFile.copy(string_0, str0)
             QFile.copy(tempFileName, string_0)
     except:
         QMessageBox.warning(
             iwin32Window_0, "Error",
             Messages.ERR_FAILED_TO_SAVE_ACTIVE_QA_FILE.format(
                 sys.exc_info()[0]))
예제 #10
0
 def method_3(self, positionType_0):
     positionType0 = positionType_0
     if (positionType0 == PositionType.CWY):
         if (self.method_4(PositionType.CWY)):
             return self.method_1(PositionType.CWY)
         return self.method_1(PositionType.END)
     for case in switch(positionType0):
         if case(PositionType.END):
             return self.method_1(PositionType.END)
         elif case(PositionType.Position):
             return self.method_1(positionType_0)
         elif case(PositionType.START):
             return self.method_1(PositionType.START)
         else:
             return self.method_1(positionType_0)
예제 #11
0
 def SaveData(self, writer, version):
     numArray = [];
     QARecord.SaveData(writer, version);
     for case in switch (version):
         if case(QAFileVersion.V8) or case(QAFileVersion.V8_1):
             numArray = self.method_1(self.value, False);
             writer.write(numArray.LongLength);
             writer.write(numArray);
             return;
         elif case(QAFileVersion.V10):
             numArray = self.method_1(self.value, True);
             writer.write(numArray.LongLength);
             writer.write(numArray);
             return;
         else:
             raise  SystemError
예제 #12
0
 def SaveData(self, writer, version):
     numArray = []
     QARecord.SaveData(writer, version)
     for case in switch(version):
         if case(QAFileVersion.V8) or case(QAFileVersion.V8_1):
             numArray = self.method_1(self.value, False)
             writer.write(int(len(numArray)))
             writer.write(numArray)
             return
         elif case(QAFileVersion.V10):
             numArray = QARecord.method_1(self.value, True)
             writer.Write(int(len(numArray)))
             writer.write(numArray)
             return
         else:
             raise SystemError
예제 #13
0
 def set_Name(self, value):
     for case in switch(self.Pt):
         if case(enumProjectType.ptProject):
             self.ProjName = value
             break
         elif case(enumProjectType.ptSubProject):
             self.SubProjName = value
             break
         elif case(enumProjectType.ptWorkspace):
             self.WorkspaceName = value
             break
         elif case(enumProjectType.ptFile):
             self.ProcedureName = value
             break
         else:
             self.ProjName = value
             break
예제 #14
0
 def SaveData(self, writer, version):
     QARecord.SaveData(writer, version)
     for case in switch(version):
         if case(QAFileVersion.V8) or case(QAFileVersion.V8_1) or case(
                 QAFileVersion.V10):
             writer.write(self.modelSpace)
             writer.write(self.viewSize)
             writer.write(self.viewCenter.get_X())
             writer.write(self.viewCenter.get_Y())
             writer.write(self.viewCenter.get_Z())
             writer.write(self.imageFormatType)
             writer.write(self.imageRatio)
             writer.write(self.value.Length)
             writer.write(self.value.ToArray())
             return
         else:
             raise SystemError
예제 #15
0
 def smethod_1(dataBaseProcedureData_0, procEntityListType_0, point3d_0,
               textString, strS):
     procEntityBases = []
     for case in switch(procEntityListType_0):
         if case(ProcEntityListType.Holding) or case(
                 ProcEntityListType.Fixes) or case(
                     ProcEntityListType.FixesEx) or case(
                         ProcEntityListType.Centers) or case(
                             ProcEntityListType.CentersEx):
             if (not String.IsNullOrEmpty(textString)
                     and not String.IsNullOrEmpty(strS)):
                 dataBaseProcedureData_0.method_60(procEntityBases,
                                                   procEntityListType_0,
                                                   textString, strS)
             return procEntityBases
         else:
             return None
     return None
예제 #16
0
 def get_NavigationalAid(self):
     for case in switch(self.pnlType.SelectedItem):
         if case(NavigationalAidType.Omnidirectional):
             return OmnidirectionalNavigationalAid(
                 self.pnlName.Value, self.pnlAlfa.Value,
                 self.pnlRadiusCone.Value, self.pnlRadiusCylinder.Value,
                 False)
         elif case(NavigationalAidType.Directional):
             return DirectionalNavigationalAid(
                 self.pnlName.Value, self.pnla.Value, self.pnlb.Value,
                 self.pnlh.Value, self.pnlr.Value, self.pnlD.Value,
                 self.pnlHbig.Value, self.pnlL.Value, self.pnlphi.Value,
                 False)
         elif case(NavigationalAidType.LineOfSight):
             return LineOfSight(self.pnlName.Value, self.pnlSlope.Value,
                                self.pnlStartingHeight.Value,
                                self.pnlFinishingDistance.Value, False)
         else:
             return None
예제 #17
0
 def LoadData(self, reader, version):
     QARecord.LoadData(reader, version)
     for case in switch(version):
         if case(QAFileVersion.V8) or case(QAFileVersion.V8_1) or case(
                 QAFileVersion.V10):
             self.modelSpace = reader.ReadBoolean()
             self.viewSize = reader.ReadDouble()
             self.viewCenter = Point3D(reader.ReadDouble(),
                                       reader.ReadDouble(),
                                       reader.ReadDouble())
             self.imageFormatType = reader.ReadByte()
             self.imageRatio = reader.ReadDouble()
             num = reader.ReadInt64()
             self.value.SetLength(num)
             # self.value.Seek((long)0, SeekOrigin.Begin);
             self.value.write(reader.ReadBytes(int(num)), 0, int(num))
             return
         else:
             raise SystemError
예제 #18
0
 def method_4(self, positionType_0):
     for case in switch(positionType_0):
         if case(PositionType.CWY):
             if (self.method_5(PositionType.CWY)):
                 return self.method_1(PositionType.CWY)
             if (self.method_5(PositionType.SWY)):
                 return self.method_1(PositionType.SWY)
             return self.method_1(PositionType.END)
         elif case(PositionType.SWY):
             if (self.method_5(PositionType.SWY)):
                 return self.method_1(PositionType.SWY)
             return self.method_1(PositionType.END)
         elif case(PositionType.THR):
             return self.method_1(PositionType.THR)
         elif case(PositionType.END):
             return self.method_1(PositionType.END)
         elif case(PositionType.Position):
             return self.method_1(positionType_0)
         elif case(PositionType.START):
             if (self.method_5(PositionType.START)):
                 return self.method_1(PositionType.START)
             return self.method_1(PositionType.THR)
         else:
             return self.method_1(positionType_0)
예제 #19
0
 def method_14(self, string_0, int_0, int_1):
     str0 = "";
     stringBuilder = StringBuilder();
     strArrays = Extensions.smethod_4(string_0);
     for i in range(len(strArrays) - 1):
         str1 = strArrays[i];
         for case in switch (self.tableType):
             if case(QATableType.General):
                 stringBuilder.Append("<td>{0}</td>".format(self.method_13(str1, True)));
                 break;
             elif case(QATableType.OCAH):
                 if (int_0 == 0 or i == 0):
                     stringBuilder.Append("<th>{0}</th>".format(self.method_13(str1, False)));
                     break;
                 else:
                     stringBuilder.Append("<td>{0}</td>".format(self.method_13(str1, False)));
                     break;
             elif case(QATableType.ObstacleList):
                 if (int_0 != 0):
                     stringBuilder.Append("<td>{0}</td>".format(self.method_13(str1, False)));
                     break;
                 else:
                     stringBuilder.Append("<th>{0}</th>".format(self.method_13(str1, False)));
                     break;
     str0 = "<br>" if(len(strArrays) <= 0) else strArrays[len(strArrays) - 1];
     for case in switch (self.tableType):
         if case(QATableType.General):
             if (len(strArrays) == 1 and int_1 > 1):
                 num = str0.smethod_6();
                 if (num < 4):
                     str0 = "<b>{0}</b>".format(str0);
                 elif (num < 8):
                     str0 = "<b><i>{0}</i></b>".format(str0);
             if (len(strArrays) >= int_1):
                 stringBuilder.Append("<td>{0}</td>".format(self.method_13(str, True)));
                 break;
             else:
                 int1 = int_1 - len(strArrays) + 1;
                 stringBuilder.Append("<td colspan=\"{0}\">{1}</td>".format(str(int1), self.method_13(str, True)));
                 break;
         elif case(QATableType.OCAH):
             if (int_0 != 0):
                 if (len(strArrays) == 1):
                     stringBuilder.Append("<th>{0}</th>".format(self.method_13(str, False)));
                     for j in range(len(strArrays), int_1):
                         stringBuilder.Append("<td><br></td>");
                     break;
                 stringBuilder.Append("<td>{0}</td>".format(self.method_13(str, False)));
             stringBuilder.Append("<th>{0}</th>".format(self.method_13(str, False)));
             for j in range(len(strArrays), int_1):
                 stringBuilder.Append("<td><br></td>");
             break;
         elif case(QATableType.ObstacleList):
             if (int_0 != 0):
                 stringBuilder.Append("<td>{0}</td>".format(self.method_13(str, False)));
             else:
                 stringBuilder.Append("<th>{0}</th>".format(self.method_13(str, False)));
             for k in range(len(strArrays), int_1):
                 stringBuilder.Append("<td><br></td>");
             break;
     return stringBuilder.ToString();