Exemple #1
0
class MainPanel(Widget):

    show_num = Observer.show_num
    group_list = ListProperty([])
    created_group_id_list = ListProperty([])
    lamp_list = ListProperty([])
    blinker_lamp = StringProperty()

    max_notice_num = 4
    info_font_size = 20
    checkbox_font_size = 16

    def __init__(self, **kwargs):
        self.blinker = False
        self.ob = Observer()
        self.group_list = self.ob.get_observing_group_list()
        self.created_group_id_list = []
        self.lamp_list = [""] * self.show_num
        self.set_lamp_list()
        super(MainPanel, self).__init__(**kwargs)
        Clock.schedule_interval(self.observing, 15)
        Clock.schedule_interval(self.set_blinker, 0.5)

    def set_lamp_list(self):
        for i in range(len(self.group_list)):
            g = self.group_list[i]
            if g.group_type == 0:
                self.lamp_list[i] = "./image/empty.png"
            else:
                if g.isfull == True:
                    self.lamp_list[i] = "./image/full.png"
                elif g.group_id in self.created_group_id_list:
                    self.lamp_list[i] = self.blinker_lamp
                else:
                    self.lamp_list[i] = "./image/available.png"

    def observing(self, dt):
        try:
            self.ob.renew()
        except:
            pass
        self.group_list = self.ob.get_observing_group_list()
        created = self.ob.get_created_attention_group_dict()

        if len(created) != 0:
            sound.play()

        for key in created:
            if len(self.created_group_id_list) > self.max_notice_num:
                self.created_group_id_list.pop(0)
            self.created_group_id_list.append(key)

    def set_blinker(self, dt):
        self.blinker = not self.blinker
        if self.blinker:
            self.blinker_lamp = "./image/available.png"
        else:
            self.blinker_lamp = "./image/empty.png"
        self.set_lamp_list()

    def on_checkbox_press(self, group_kind):
        is_checked = False
        group_name = ""
        if group_kind == "da_a":
            group_name = "DA Office A"
            is_checked = self.ids.da_a.active
        elif group_kind == "da_b":
            group_name = "DA Office B"
            is_checked = self.ids.da_b.active
        elif group_kind == "da_c":
            group_name = "DA Office C"
            is_checked = self.ids.da_c.active
        elif group_kind == "da_d":
            group_name = "DA Office D"
            is_checked = self.ids.da_d.active
        elif group_kind == "cj":
            group_name = "CJ"
            is_checked = self.ids.cj.active
        elif group_kind == "golf_front":
            group_name = "Front 3 Golf Course"
            is_checked = self.ids.golf_front.active
        elif group_kind == "golf_middle":
            group_name = "Middle 6 Golf Course"
            is_checked = self.ids.golf_middle.active
        elif group_kind == "golf_back":
            group_name = "Back 9 Golf Course"
            is_checked = self.ids.golf_back.active
        elif group_kind == "ceo":
            group_name = "CEO"
            is_checked = self.ids.ceo.active
        elif group_kind == "shopping_vp":
            group_name = "SOS Shopping VP"
            is_checked = self.ids.shopping_vp.active

        if is_checked == True:
            self.ob.observing_groups.append(group_name)
        else:
            self.ob.observing_groups.remove(group_name)

        self.group_list = self.ob.get_observing_group_list()
        self.set_lamp_list()