123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- from Tkinter import *
- from PIL import Image, ImageTk
- import tkSimpleDialog
- import urllib
- import urllib2
- import json
- import time
- sys.path.append("interface/HUTN")
- sys.path.append("wrappers")
- from modelverse import *
- address = "http://127.0.0.1:8001"
- taskname = str(random.random())
- MAX_WIDTH = 500
- MAX_HEIGHT = 500
- init()
- login("admin", "admin")
- root = Tk()
- canvas = Canvas(root, width=MAX_WIDTH, height=MAX_HEIGHT, bg="white")
- class PromptDialog(tkSimpleDialog.Dialog):
- def __init__(self, master, query):
- self.query = query
- tkSimpleDialog.Dialog.__init__(self, master)
- def body(self, master):
- self.entries = []
- for i, q in enumerate(self.query):
- Label(master, text=q).grid(row=i, column=0)
- self.entries.append(Entry(master))
- self.entries[-1].grid(row=i, column=1)
- return self.entries[0]
- def apply(self):
- self.result = {self.query[i]: self.entries[i].get() for i in range(len(self.entries))}
- def open_model():
- try:
- # Exit if necessary
- model_exit()
- except InvalidMode:
- pass
- # Clear the canvas!
- print("Opening model: " + variable.get())
- model_modify(variable.get())
- def instantiate_model():
- try:
- # Exit if necessary
- model_exit()
- except InvalidMode:
- pass
- d = PromptDialog(root, ["Name:"])
- if d.result is not None:
- name = str(d.result["Name:"])
- print("Creating new model named " + name)
- model_add(name, variable.get())
- options.children["menu"].add_command(label=name, command=lambda v=name: variable.set(v))
- model_modify(name)
- def verify_model():
- try:
- # Exit if necessary
- model_exit()
- except InvalidMode:
- pass
- print(verify(variable.get()))
- bound_functions = {
- "open": open_model,
- "instantiate": instantiate_model,
- "verify": verify_model,
- }
- buttons = []
- models = model_list()
- variable = StringVar(root)
- options = OptionMenu(root, variable, *[i[0] for i in models])
- buttons.append(options)
- for k, v in bound_functions.items():
- buttons.append(Button(root, text=k, command=v))
- for i, b in enumerate(buttons):
- b.grid(row=0, column=i)
- canvas.grid(row=1,column=0,columnspan=len(buttons))
- def left_clicked():
- pass
- def middle_clicked():
- pass
- def right_clicked():
- pass
- canvas.bind("<Button-1>", left_clicked)
- canvas.bind("<Button-2>", middle_clicked)
- canvas.bind("<Button-3>", right_clicked)
- root.mainloop()
|