def saveData(self):
     fileName = FlightPlanBaseDlg.saveData(self)
     if fileName == None:
         return
     doc = DataHelper.loadXmlDocFromFile(fileName)
     dialogNodeList = doc.elementsByTagName(self.objectName())
     if dialogNodeList.isEmpty():
         raise UserWarning, "self file is not correct."
     dialogElem = dialogNodeList.at(0).toElement()
     elemTrack = doc.createElement("Track")
     
     elemStart = doc.createElement("StartPoint")
     elemX = doc.createElement("X")
     elemX.appendChild(doc.createTextNode(str(self.parametersPanel.txtTrack.captureRadialTool.startPoint.x())))
     elemY = doc.createElement("Y")
     elemY.appendChild(doc.createTextNode(str(self.parametersPanel.txtTrack.captureRadialTool.startPoint.y())))
     elemStart.appendChild(elemX)
     elemStart.appendChild(elemY)
     elemTrack.appendChild(elemStart)
     
     elemEnd = doc.createElement("EndPoint")
     elemX = doc.createElement("X")
     elemX.appendChild(doc.createTextNode(str(self.parametersPanel.txtTrack.captureRadialTool.endPoint.x())))
     elemY = doc.createElement("Y")
     elemY.appendChild(doc.createTextNode(str(self.parametersPanel.txtTrack.captureRadialTool.endPoint.y())))
     elemEnd.appendChild(elemX)
     elemEnd.appendChild(elemY)
     elemTrack.appendChild(elemEnd)
     dialogElem.appendChild(elemTrack)
     DataHelper.saveXmlDocToFile(fileName, doc)
    def openData(self):
        try:
            fileName = FlightPlanBaseDlg.openData(self)
            if fileName == None:
                return
            doc = DataHelper.loadXmlDocFromFile(fileName)
            dialogNodeList = doc.elementsByTagName(self.objectName())
            if dialogNodeList.isEmpty():
                raise UserWarning, "self file is not correct."
            dialogElem = dialogNodeList.at(0).toElement()
            trackNodeList = dialogElem.elementsByTagName("Track")
            if trackNodeList.isEmpty():
                return
            elemTrack = trackNodeList.at(0).toElement()
            elemStart = elemTrack.elementsByTagName("StartPoint").at(
                0).toElement()
            elemEnd = elemTrack.elementsByTagName("EndPoint").at(0).toElement()

            x, y = DataHelper.getPointValueFromElem(elemStart)
            self.parametersPanel.txtTrack.captureRadialTool.startPoint = Point3D(
                x, y)

            x, y = DataHelper.getPointValueFromElem(elemEnd)
            self.parametersPanel.txtTrack.captureRadialTool.endPoint = Point3D(
                x, y)
        except BaseException as e:
            QMessageBox.warning(self, "Error", e.message)