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()