/
twoCANN.py
executable file
·111 lines (98 loc) · 4.57 KB
/
twoCANN.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/usr/bin/env python3
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from handlers import Handler
from lib.project import Project
from util.command_editor import init_tagtable
class twoCANN:
def __init_var_manager_treeview(self, treeview):
variables_liststore = Gtk.ListStore(str, str)
treeview.set_model(variables_liststore)
for i, col_title in enumerate(["Name", "Val"]):
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(col_title, renderer, text=i)
column.set_sort_column_id(i)
treeview.append_column(column)
# FOR TEST
return variables_liststore
def __init_pro_manager_treeview(self, treeview):
pro_liststore = Gtk.ListStore(int, str, str)
treeview.set_model(pro_liststore)
for i, col_title in enumerate(["Step", "Module Name", "State"]):
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(col_title, renderer, text=i)
treeview.append_column(column)
if i == 1:
column.set_min_width(100) # min width for module name
# FOR TEST
return pro_liststore
def __init_loop_manager_treeview(self, treeview):
loop_liststore = Gtk.ListStore(int, str, str, str)
treeview.set_model(loop_liststore)
for i, col_title in enumerate(["No.", "Var", "Value", "Directory Selection"]):
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(col_title, renderer, text=i)
treeview.append_column(column)
return loop_liststore
def __init_loop_viewer_treeview(self, treeview):
lv_liststore = Gtk.ListStore(str, str)
treeview.set_model(lv_liststore)
for i, col_title in enumerate(["Var Value", "Directory Selection"]):
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(col_title, renderer, text=i)
column.set_sort_column_id(i)
treeview.append_column(column)
return lv_liststore
def __init_log_run_treeview(self, treeview):
log_run_liststore = Gtk.ListStore(str)
treeview.set_model(log_run_liststore)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Run Time", renderer, text=0)
column.set_sort_column_id(0)
treeview.append_column(column)
return log_run_liststore
def __init_log_mod_treeview(self, treeview):
log_mod_liststore = Gtk.ListStore(str, str, str, str)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Run Time", renderer, text=0)
column.set_visible(False)
treeview.append_column(column)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Module", renderer, text=1)
treeview.append_column(column)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("State", renderer, text=2)
treeview.append_column(column)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Log", renderer, text=3)
column.set_visible(False)
treeview.append_column(column)
return log_mod_liststore
def __init__(self):
# Create new project object
project = Project()
# import Glade generated GUI
builder = Gtk.Builder.new_from_file('2CANN.glade')
# Setup treeviews and liststores
variables_liststore = self.__init_var_manager_treeview(builder.get_object('vm_treeview'))
pro_liststore = self.__init_pro_manager_treeview(builder.get_object('pro_treeview'))
loop_liststore = self.__init_loop_manager_treeview(builder.get_object('loop_treeview'))
loop_viewer_liststore = self.__init_loop_viewer_treeview(builder.get_object('loop_viewer_treeview'))
log_run_liststore = self.__init_log_run_treeview(builder.get_object('log_run_treeview'))
log_mod_liststore = self.__init_log_mod_treeview(builder.get_object('log_mod_treeview'))
liststores = (variables_liststore, pro_liststore, loop_liststore,
loop_viewer_liststore, log_run_liststore, log_mod_liststore)
# build tag table for command editor Gtk.TextView for different
# text styles
tagtable = init_tagtable()
# connect event handlers
builder.connect_signals(Handler(project, builder, liststores, tagtable))
# build GUI
self.window = builder.get_object('wrapper')
self.window.show_all()
def main():
Gtk.main()
if __name__ == "__main__":
win = twoCANN()
main()