Switch.py
Go to the documentation of this file.
00001 __author__ = 'tom1231'
00002 from PyQt4.QtGui import *
00003 from BAL.Interface.DeviceFrame import DeviceFrame, SWITCH
00004 
00005 
00006 class Switch(DeviceFrame):
00007     switchCount = 0
00008 
00009     def __init__(self, frame, data, switchPorts):
00010         DeviceFrame.__init__(self, SWITCH, frame, data)
00011         self.mainPorts = switchPorts
00012 
00013         self._pubHz = '20'
00014         self._name = 'RiC_Switch'
00015         self._port = str(self.mainPorts.currentText())
00016 
00017     def fromDict(self, data):
00018         self._pubHz = data['pubHz']
00019         self._name = data['name']
00020         self._port = data['port']
00021 
00022     def toDict(self):
00023         data = dict()
00024 
00025         data['type'] = SWITCH
00026         data['pubHz'] = self._pubHz
00027         data['name'] = self._name
00028         data['port'] = self._port
00029 
00030         return data
00031 
00032     def saveToFile(self, file):
00033         file.write('switch' + str(Switch.switchCount) + '/name: ' + self._name + '\n')
00034         file.write('switch' + str(Switch.switchCount) + '/port: ' + self._port + '\n')
00035         file.write('switch' + str(Switch.switchCount) + '/publishHz: ' + self._pubHz + '\n')
00036         Switch.switchCount += 1
00037 
00038     def getPort(self):
00039         return self._port
00040 
00041     def findItem(self):
00042         for i in xrange(self.mainPorts.count()):
00043             if self._port == str(self.mainPorts.itemText(i)):
00044                 return i
00045         return 1
00046 
00047     def showDetails(self, items=None):
00048         self.switchPorts = QComboBox()
00049         self.switchPorts.addItems([self.mainPorts.itemText(i) for i in xrange(self.mainPorts.count())])
00050         self.switchPorts.setCurrentIndex(self.findItem())
00051 
00052         self.pubHz = QLineEdit(self._pubHz)
00053         self.name = QLineEdit(self._name)
00054 
00055         self._frame.layout().addRow(QLabel('Publish Hz: '), self.pubHz)
00056         self._frame.layout().addRow(QLabel('name: '), self.name)
00057         self._frame.layout().addRow(QLabel('Port: '), self.switchPorts)
00058 
00059 
00060     def getName(self):
00061         return self._name
00062 
00063     def add(self):
00064         old = self._name
00065         self._name = str(self.name.text())
00066 
00067         if not self.nameIsValid():
00068             error = QErrorMessage()
00069             error.setWindowTitle("Same name error")
00070             error.showMessage("Name already taken.")
00071             error.exec_()
00072             self._name = old
00073             self._isValid = False
00074             return
00075 
00076         self._isValid = True
00077         self._pubHz = str(self.pubHz.text())
00078         self._name = str(self.name.text())
00079         self._port = str(self.switchPorts.currentText())
00080         self.mainPorts.removeItem(self.switchPorts.currentIndex())
00081 
00082     def printDetails(self):
00083         self._frame.layout().addRow(QLabel('Publish Hz: '), QLabel(self._pubHz))
00084         self._frame.layout().addRow(QLabel('Name: '), QLabel(self._name))
00085         self._frame.layout().addRow(QLabel('Port: '), QLabel(self._port))


ric_board
Author(s): RoboTiCan
autogenerated on Fri Oct 27 2017 03:02:31