Go to the documentation of this file.00001 __author__ = 'tom1231'
00002 from PyQt4.QtGui import *
00003 from BAL.Interface.DeviceFrame import DeviceFrame, RELAY
00004
00005
00006 class Relay(DeviceFrame):
00007 relayCount = 0
00008
00009 def __init__(self, frame, data, relayPorts):
00010 DeviceFrame.__init__(self, RELAY, frame, data)
00011 self.mainPorts = relayPorts
00012
00013 self._name = 'RiC_Relay'
00014 self._port = self._port = str(self.mainPorts.currentText())
00015
00016 def fromDict(self, data):
00017 self._name = data['name']
00018 self._port = data['port']
00019
00020 def toDict(self):
00021 data = dict()
00022 data['type'] = RELAY
00023 data['name'] = self._name
00024 data['port'] = self._port
00025
00026 return data
00027
00028 def findItem(self):
00029 for i in xrange(self.mainPorts.count()):
00030 if self._port == str(self.mainPorts.itemText(i)):
00031 return i
00032 return 1
00033
00034 def getPort(self):
00035 return self._port
00036
00037 def saveToFile(self, file):
00038 file.write('relay' + str(Relay.relayCount) + '/name: ' + self._name + '\n')
00039 file.write('relay' + str(Relay.relayCount) + '/port: ' + self._port + '\n')
00040 Relay.relayCount += 1
00041
00042 def showDetails(self, items=None):
00043 self.relayPorts = QComboBox()
00044 self.relayPorts.addItems([self.mainPorts.itemText(i) for i in xrange(self.mainPorts.count())])
00045 self.relayPorts.setCurrentIndex(self.findItem())
00046
00047 self.name = QLineEdit(self._name)
00048
00049 self._frame.layout().addRow(QLabel('name: '), self.name)
00050 self._frame.layout().addRow(QLabel('Port: '), self.relayPorts)
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._isValid = True
00066 self._port = str(self.relayPorts.currentText())
00067 self.mainPorts.removeItem(self.relayPorts.currentIndex())
00068
00069 def printDetails(self):
00070 self._frame.layout().addRow(QLabel('name: '), QLabel(self._name))
00071 self._frame.layout().addRow(QLabel('Port: '), QLabel(self._port))
00072
00073 def getName(self):
00074 return self._name