def __init__(self, master, bpmn, cases): # cases is a list of cases, where a case is a list in the format: # (event object, start time, end time) BPMN_Draw.__init__(self, master, bpmn) master.wm_title("BPMN Simulation") self.cases = cases self.toggle_lock() frame = Frame(master) vcmd = (master.register(self._num_entry_validate), '%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W') self.case_text = Label(frame, text="Steps:") self.case_text.grid(row=0, column=0, sticky=W+E+N+S) self.num_entry = Spinbox(frame, increment=1, from_=1, to=maxint, validate='all', validatecommand=vcmd) self.num_entry.grid(row=0, column=1, sticky=W+E+N+S) self.increm_options = ["seconds", "minutes", "hours", "days"] self.increm_var = StringVar() self.increm_var.set(self.increm_options[0]) self.increm_sel = OptionMenu(frame, self.increm_var, *self.increm_options) self.increm_sel.grid(row=0, column=2, sticky=W+N+E+S) img_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "graphics") self.prev_but = Button(frame, command=self.on_prev_button) self.prev_but.grid(row=0, column=3, sticky=W+E+N+S) self.prev_img = PhotoImage(file=os.path.join(img_dir, "skip-backward.gif")) self.prev_but.config(image=self.prev_img, width=24, height=24) self.play_but = Button(frame, command=self.on_play_button) self.play_but.grid(row=0, column=4, sticky=W+E+N+S) self.play_img = PhotoImage(file=os.path.join(img_dir, "play.gif")) self.play_but.config(image=self.play_img, width=24, height=24) self.pause_img = PhotoImage(file=os.path.join(img_dir, "pause.gif")) self.stop_but = Button(frame, command=self.on_stop_button) self.stop_but.grid(row=0, column=5, sticky=W+E+N+S) self.stop_img = PhotoImage(file=os.path.join(img_dir, "stop.gif")) self.stop_but.config(image=self.stop_img, width=24, height=24) self.next_but = Button(frame, command=self.on_next_button) self.next_but.grid(row=0, column=6, sticky=W+E+N+S) self.next_img = PhotoImage(file=os.path.join(img_dir, "skip-forward.gif")) self.next_but.config(image=self.next_img, width=24, height=24) self.case_text = Label(frame, text="Case:") self.case_text.grid(row=0, column=7, sticky=W+E+N+S) self.case_options = range(1, len(self.cases)+1) self.case_var = StringVar() self.case_var.set(self.case_options[0]) self.case_sel = OptionMenu(frame, self.case_var, *self.case_options) self.case_sel.grid(row=0, column=8, sticky=W+E+N+S) frame.pack(anchor=W) frame2 = Frame(master) self.currt_lab = Label(frame2, text="Current time:") self.currt_lab.grid(row=0, column=0, sticky=W+N+S) self.currt_var = StringVar() self.currt = Label(frame2, textvariable=self.currt_var) self.currt.grid(row=0, column=1, sticky=W+N+S) frame2.pack(anchor=W) self.case_var.trace("w", self.on_case_change) self.simulating = "stop" self.last_tick = datetime.now() self.anim_tick = datetime.now() self.animations = {}
def __init__(self, master, bpmn): BPMN_Draw.__init__(self, master, bpmn) master.wm_title("BPMN Edition")
def __init__(self, master, bpmn): BPMN_Draw.__init__(self, master, bpmn) master.wm_title("BPMN Edition")
def __init__(self, master, bpmn, cases): # cases is a list of cases, where a case is a list in the format: # (event object, start time, end time) BPMN_Draw.__init__(self, master, bpmn) master.wm_title("BPMN Simulation") self.cases = cases self.toggle_lock() frame = Frame(master) vcmd = (master.register(self._num_entry_validate), '%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W') self.case_text = Label(frame, text="Steps:") self.case_text.grid(row=0, column=0, sticky=W + E + N + S) self.num_entry = Spinbox(frame, increment=1, from_=1, to=maxint, validate='all', validatecommand=vcmd) self.num_entry.grid(row=0, column=1, sticky=W + E + N + S) self.increm_options = ["seconds", "minutes", "hours", "days"] self.increm_var = StringVar() self.increm_var.set(self.increm_options[0]) self.increm_sel = OptionMenu(frame, self.increm_var, *self.increm_options) self.increm_sel.grid(row=0, column=2, sticky=W + N + E + S) img_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "graphics") self.prev_but = Button(frame, command=self.on_prev_button) self.prev_but.grid(row=0, column=3, sticky=W + E + N + S) self.prev_img = PhotoImage( file=os.path.join(img_dir, "skip-backward.gif")) self.prev_but.config(image=self.prev_img, width=24, height=24) self.play_but = Button(frame, command=self.on_play_button) self.play_but.grid(row=0, column=4, sticky=W + E + N + S) self.play_img = PhotoImage(file=os.path.join(img_dir, "play.gif")) self.play_but.config(image=self.play_img, width=24, height=24) self.pause_img = PhotoImage(file=os.path.join(img_dir, "pause.gif")) self.stop_but = Button(frame, command=self.on_stop_button) self.stop_but.grid(row=0, column=5, sticky=W + E + N + S) self.stop_img = PhotoImage(file=os.path.join(img_dir, "stop.gif")) self.stop_but.config(image=self.stop_img, width=24, height=24) self.next_but = Button(frame, command=self.on_next_button) self.next_but.grid(row=0, column=6, sticky=W + E + N + S) self.next_img = PhotoImage( file=os.path.join(img_dir, "skip-forward.gif")) self.next_but.config(image=self.next_img, width=24, height=24) self.case_text = Label(frame, text="Case:") self.case_text.grid(row=0, column=7, sticky=W + E + N + S) self.case_options = range(1, len(self.cases) + 1) self.case_var = StringVar() self.case_var.set(self.case_options[0]) self.case_sel = OptionMenu(frame, self.case_var, *self.case_options) self.case_sel.grid(row=0, column=8, sticky=W + E + N + S) frame.pack(anchor=W) frame2 = Frame(master) self.currt_lab = Label(frame2, text="Current time:") self.currt_lab.grid(row=0, column=0, sticky=W + N + S) self.currt_var = StringVar() self.currt = Label(frame2, textvariable=self.currt_var) self.currt.grid(row=0, column=1, sticky=W + N + S) frame2.pack(anchor=W) self.case_var.trace("w", self.on_case_change) self.simulating = "stop" self.last_tick = datetime.now() self.anim_tick = datetime.now() self.animations = {}