示例#1
0
class BottomPanel(JPanel):
    def __init__(self):

        self.holdPanel = JPanel()
        self.topPanel = JPanel()
        self.bottomPanel = JPanel()

        self.holdPanel.setBackground(Color.decode('#dddee6'))
        self.topPanel.setBackground(Color.decode('#dddee6'))
        self.bottomPanel.setBackground(Color.decode('#dddee6'))

        self.topPanel.setPreferredSize(Dimension(300, 30))

        self.regBar = JProgressBar()
        self.gatePassBar = JProgressBar()
        self.regLabel = JLabel('Register : ')
        self.gatepassLabel = JLabel('          Gate Pass : '******'')
        self.gatePercentlabel = JLabel('')

        self.refreshButton = JButton('Refresh',
                                     actionPerformed=self.updateProgress)

        self.regBar.setMinimum(0)
        self.regBar.setMaximum(100)
        self.regBar.setStringPainted(True)

        self.gatePassBar.setMinimum(0)
        self.gatePassBar.setMaximum(100)
        self.gatePassBar.setStringPainted(True)

        self.setLayout(BorderLayout())

        self.updateProgress(None)

    def updateProgress(self, e):

        progress = client.get_progress()
        regTotal = progress[0]
        regRecog = progress[1]
        gateTotal = progress[2]
        gateRecog = progress[3]

        regPercent = int((regRecog * 100) / regTotal)
        gatePercent = int((gateRecog * 100) / gateTotal)

        self.regBar.setValue(regPercent)
        self.gatePassBar.setValue(gatePercent)

        self.regBar.setString(str(regPercent) + '%')
        self.gatePassBar.setString(str(gatePercent) + '%')

        self.regPercentlabel.setText(str(regRecog) + '/' + str(regTotal))
        self.gatePercentlabel.setText(
            str(gateRecog) + '/' + str(gateTotal) + '           ')

        if regPercent <= 30:
            regColor = Color.RED
        elif regPercent > 30 and regPercent < 50:
            regColor = Color.ORANGE
        elif regPercent >= 50 and regPercent <= 100:
            regColor = Color.GREEN

        if gatePercent <= 30:
            gateColor = Color.RED
        elif gatePercent > 30 and gatePercent < 50:
            gateColor = Color.ORANGE
        elif gatePercent >= 50 and gatePercent <= 100:
            gateColor = Color.GREEN

        self.regBar.setForeground(regColor)
        self.gatePassBar.setForeground(gateColor)

        self.holdPanel.add(self.regLabel)
        self.holdPanel.add(self.regBar)
        self.holdPanel.add(self.regPercentlabel)
        self.holdPanel.add(self.gatepassLabel)
        self.holdPanel.add(self.gatePassBar)
        self.holdPanel.add(self.gatePercentlabel)
        self.holdPanel.add(self.refreshButton)

        self.add(self.holdPanel, BorderLayout.CENTER)
        self.add(self.topPanel, BorderLayout.PAGE_START)
        self.add(self.bottomPanel, BorderLayout.PAGE_END)

        self.validate()