Go to the documentation of this file.00001 __author__ = 'tom'
00002 from PyQt4.QtGui import *
00003 from BAL.Interface.DeviceFrame import NODE, EX_DEV, DeviceFrame
00004 from lxml.etree import Element, SubElement, XML
00005
00006
00007 class RosNode(DeviceFrame):
00008 def __init__(self, frame, data):
00009 DeviceFrame.__init__(self, EX_DEV, frame, data)
00010 self._name = ''
00011 self._output = 'screen'
00012 self._pkg = ''
00013 self._nodeType = ''
00014
00015 def getName(self):
00016 return self._name
00017
00018 def toDict(self):
00019 data = dict()
00020
00021 data['type'] = NODE
00022 data['name'] = self._name
00023 data['output'] = self._output
00024 data['pkg'] = self._pkg
00025 data['nodeType'] = self._nodeType
00026
00027 return data
00028
00029 def fromDict(self, data):
00030 self._name = data['name']
00031 self._output = data['output']
00032 self._pkg = data['pkg']
00033 self._nodeType = data['nodeType']
00034
00035 def showDetails(self, items=None):
00036 self.name = QLineEdit(self._name)
00037 self.output = QLineEdit(self._output)
00038 self.pkg = QLineEdit(self._pkg)
00039 self.nodeType = QLineEdit(self._nodeType)
00040
00041 self._frame.layout().addRow(QLabel('Name:'), self.name)
00042 self._frame.layout().addRow(QLabel('Output:'), self.output)
00043 self._frame.layout().addRow(QLabel('package:'), self.pkg)
00044 self._frame.layout().addRow(QLabel('Type:'), self.nodeType)
00045
00046 def printDetails(self):
00047 self._frame.layout().addRow(QLabel('Name:'), QLabel(self._name))
00048 self._frame.layout().addRow(QLabel('Output:'), QLabel(self._output))
00049 self._frame.layout().addRow(QLabel('package:'), QLabel(self._pkg))
00050 self._frame.layout().addRow(QLabel('Type:'), QLabel(self._nodeType))
00051
00052 def add(self):
00053 old = self._name
00054 self._name = str(self.name.text())
00055
00056 if not self.nameIsValid():
00057 error = QErrorMessage()
00058 error.setWindowTitle("Same name error")
00059 error.showMessage("Name already taken.")
00060 error.exec_()
00061 self._name = old
00062 self._isValid = False
00063 return
00064
00065 self._output = str(self.output.text())
00066 self._pkg = str(self.pkg.text())
00067 self._nodeType = str(self.nodeType.text())
00068 self._isValid = True
00069
00070 def saveToFile(self, parent):
00071 SubElement(parent, 'node', dict(name=self._name, output=self._output, pkg=self._pkg, type=self._nodeType))