Go to the documentation of this file.00001 __author__ = 'tom1231'
00002 from PyQt4.QtCore import QUrl
00003 from PyQt4.QtGui import *
00004 from BAL.Interface.DeviceFrame import DeviceFrame, EX_DEV, OPRNNI
00005 from lxml.etree import Element, SubElement, XML
00006
00007
00008 class Opennni(DeviceFrame):
00009 def __init__(self, frame, data):
00010 DeviceFrame.__init__(self, EX_DEV, frame, data)
00011 self._value = 'None'
00012
00013 def fromDict(self, data):
00014 self._value = data['name']
00015
00016 def toDict(self):
00017 data = dict()
00018
00019 data['type'] = OPRNNI
00020 data['name'] = self._value
00021
00022 return data
00023
00024 def printDetails(self):
00025 self._frame.layout().addRow(QLabel('Value: '), QLabel(self._value))
00026
00027 def getName(self):
00028 return 'OpenniCamera'
00029
00030 def showDetails(self, items=None):
00031 self.value = QLineEdit(self._value)
00032 link = QLabel("<a href = http://wiki.ros.org/openni2_launch> Openni Wiki </a>")
00033 link.linkActivated.connect(self.onLink)
00034
00035 self._frame.layout().addRow(QLabel('Value: '), self.value)
00036 self._frame.layout().addRow(QLabel('More information: '), link)
00037
00038 def onLink(self, URL):
00039 QDesktopServices().openUrl(QUrl(URL))
00040
00041 def add(self):
00042 if not self.nameIsValid():
00043 error = QErrorMessage()
00044 error.setWindowTitle("Same name error")
00045 error.showMessage("Name already taken.")
00046 error.exec_()
00047 self._isValid = False
00048 return
00049 self._isValid = True
00050 self._value = str(self.value.text())
00051
00052 def saveToFile(self, parent):
00053 element = SubElement(parent, 'include', {
00054 'file': '$(find openni2_launch)/launch/openni2.launch'
00055 })
00056 SubElement(element, 'arg', {
00057 'name': 'camera',
00058 'value': self._value
00059 })