annotate pyink/comp_dock.py @ 1312:89e640789750

Separate envet handlers from base functions of comp_doc
author Thinker K.F. Li <thinker@codemud.net>
date Thu, 20 Jan 2011 13:47:56 +0800
parents e6bb9d00341f
children cc557ce8e9fa
rev   line source
1303
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
1 import gtk
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
2 import os
1304
94e6594dea59 Make comp_dock being instantiated by domview_ui
Thinker K.F. Li <thinker@codemud.net>
parents: 1303
diff changeset
3 import data_monitor
1303
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
4
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
5
1303
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
6 ## \brief User interface for management components and their timelines.
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
7 #
1312
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
8 # This class provide base functions to show components and timelines.
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
9 #
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
10 class comp_dock_base(object):
1304
94e6594dea59 Make comp_dock being instantiated by domview_ui
Thinker K.F. Li <thinker@codemud.net>
parents: 1303
diff changeset
11 def __init__(self, domview_ui, fname=None):
1312
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
12 super(comp_dock_base, self).__init__(domview_ui, fname)
1303
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
13
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
14 if not fname:
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
15 dirname = os.path.dirname(__file__)
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
16 fname = os.path.join(dirname, 'component_dock.glade')
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
17 pass
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
18
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
19 builder = gtk.Builder()
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
20 builder.add_from_file(fname)
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
21 builder.connect_signals(self)
1303
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
22 dock_top = builder.get_object('component_dock_top')
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
23 components_model = builder.get_object('components_model')
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
24 timelines_model = builder.get_object('timelines_model')
1309
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
25 components_treeview = builder.get_object('treeview_components')
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
26 timelines_treeview = builder.get_object('treeview_timelines')
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
27
1303
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
28 dock_top_parent = dock_top.get_parent()
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
29 dock_top_parent.remove(dock_top)
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
30
1304
94e6594dea59 Make comp_dock being instantiated by domview_ui
Thinker K.F. Li <thinker@codemud.net>
parents: 1303
diff changeset
31 self._domview_ui = domview_ui
94e6594dea59 Make comp_dock being instantiated by domview_ui
Thinker K.F. Li <thinker@codemud.net>
parents: 1303
diff changeset
32 self._locker = domview_ui
1303
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
33 self._builder = builder
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
34 self._dock_top = dock_top
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
35 self._desktop = None
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
36 self._dock_item = None
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
37
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
38 self._components_model = components_model
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
39 self._timelines_model = timelines_model
1309
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
40 self._components_treeview = components_treeview
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
41 self._timelines_treeview = timelines_treeview
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
42
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
43 self._cur_component = -1
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
44 self._cur_timeline = -1
1303
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
45 pass
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
46
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
47 def install_dock(self, desktop):
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
48 self._desktop = desktop
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
49
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
50 dock = desktop.getDock()
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
51 item = dock.new_item('component_dock',
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
52 'Component and timeline manager',
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
53 'feBlend-icon', dock.ITEM_ST_DOCKED_STATE)
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
54 item_vbox = item.get_vbox()
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
55 self._dock_item = item
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
56
1304
94e6594dea59 Make comp_dock being instantiated by domview_ui
Thinker K.F. Li <thinker@codemud.net>
parents: 1303
diff changeset
57 item_vbox.pack_start(self._dock_top)
94e6594dea59 Make comp_dock being instantiated by domview_ui
Thinker K.F. Li <thinker@codemud.net>
parents: 1303
diff changeset
58 self._dock_top.show()
1303
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
59 pass
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
60
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
61 ## \brief Refresh content of component list and timeline list.
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
62 #
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
63 def refresh(self):
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
64 components_model = self._components_model
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
65 components_model.clear()
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
66
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
67 for comp_name in self._domview_ui.all_comp_names():
1311
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
68 if comp_name == 'main':
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
69 editable = False
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
70 else:
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
71 editable = True
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
72 pass
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
73
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
74 components_model.append((comp_name, editable))
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
75 pass
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
76
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
77 timelines_model = self._timelines_model
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
78 timelines_model.clear()
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
79
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
80 for timeline_name in self._domview_ui.all_timeline_names():
1309
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
81 timelines_model.append((timeline_name, True))
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
82 pass
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
83 pass
1310
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
84
1311
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
85 def dom_add_component(self, name):
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
86 model = self._components_model
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
87 model.append((name, True))
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
88 pass
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
89
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
90 def dom_rm_component(self, name):
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
91 model = self._components_model
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
92
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
93 itr = model.get_iter_first()
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
94 while itr:
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
95 itr_name = model.get_value(itr, 0)
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
96 if itr_name == name:
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
97 model.remove(itr)
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
98 return
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
99
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
100 itr = itr.iter_next()
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
101 pass
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
102
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
103 raise ValueError, 'unknown component name - %s' % (name)
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
104
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
105 def dom_add_timeline(self, name):
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
106 model = self._timelines_model
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
107 model.append((name, True))
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
108 pass
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
109
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
110 def dom_rm_timeline(self, name):
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
111 model = self._timelines_model
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
112
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
113 itr = model.get_iter_first()
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
114 while itr:
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
115 itr_name = model.get_value(itr, 0)
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
116 if itr_name == name:
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
117 model.remove(itr)
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
118 return
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
119
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
120 itr = itr.iter_next()
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
121 pass
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
122
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
123 raise ValueError, 'unknown component name - %s' % (name)
1312
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
124 pass
1311
e6bb9d00341f Make content dom and comp_dock synchronized
Thinker K.F. Li <thinker@codemud.net>
parents: 1310
diff changeset
125
1312
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
126 ## \brief UI interactive handlers
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
127 #
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
128 # A mix-in to handle UI events.
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
129 #
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
130 class comp_dock_ui(object):
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
131 __metaclass__ = data_monitor.data_monitor
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
132 __data_monitor_prefix__ = 'on_'
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
133
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
134 def __init__(self, *args):
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
135 super(comp_dock_ui, self).__init__()
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
136 pass
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
137
1310
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
138 def _current_component(self):
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
139 treeview = self._components_treeview
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
140 path, col = treeview.get_cursor()
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
141
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
142 model = self._components_model
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
143 itr = model.get_iter(path)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
144 name = model.get_value(itr, 0)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
145 return name
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
146
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
147 def _current_timeline(self):
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
148 treeview = self._timelines_treeview
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
149 path, col = treeview.get_cursor()
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
150
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
151 model = self._timelines_model
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
152 itr = model.get_iter(path)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
153 name = model.get_value(itr, 0)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
154 return name
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
155
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
156 def _add_component(self):
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
157 def _make_component_name():
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
158 comp_name = 'New Component'
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
159 idx = 0
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
160 while comp_name in self._domview_ui.all_comp_names():
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
161 comp_name = 'New Component %d' % (idx)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
162 idx = idx + 1
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
163 pass
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
164 return comp_name
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
165
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
166 comp_name = _make_component_name()
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
167 print comp_name
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
168 self._domview_ui.add_component(comp_name)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
169 pass
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
170
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
171 def _rm_component(self):
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
172 if self._current_component() == 'main':
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
173 return
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
174
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
175 treeview = self._components_treeview
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
176 path, col = treeview.get_cursor()
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
177
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
178 model = self._components_model
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
179 itr = model.get_iter(path)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
180 comp_name = model.get_value(itr, 0)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
181 print comp_name
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
182
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
183 self._domview_ui.rm_component(comp_name)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
184 pass
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
185
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
186 def _add_timeline(self):
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
187 def _make_timeline_name():
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
188 tl_name = 'New Timeline'
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
189 idx = 0
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
190 while tl_name in self._domview_ui.all_timeline_names():
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
191 tl_name = 'New Timeline %d' % (idx)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
192 idx = idx + 1
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
193 pass
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
194 return tl_name
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
195
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
196 if self._current_component() == 'main':
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
197 return
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
198
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
199 tl_name = _make_timeline_name()
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
200 print tl_name
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
201 self._domview_ui.add_timeline(tl_name)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
202 pass
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
203
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
204 def _rm_timeline(self):
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
205 if self._current_component() == 'main':
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
206 return
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
207
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
208 treeview = self._timelines_treeview
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
209 path, col = treeview.get_cursor()
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
210
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
211 model = self._timelines_model
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
212 itr = model.get_iter(path)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
213 tl_name = model.get_value(itr, col)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
214 print tl_name
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
215
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
216 self._domview_ui.rm_timeline(tl_name)
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
217 pass
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
218
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
219 def on_add_comp_clicked(self, *args):
1310
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
220 self._add_component()
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
221 pass
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
222
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
223 def on_remove_comp_clicked(self, *args):
1310
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
224 self._rm_component()
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
225 pass
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
226
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
227 def on_treeview_components_cursor_changed(self, *args):
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
228 print args
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
229 pass
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
230
1309
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
231 def on_cellrenderer_comp_edited(self, renderer, path,
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
232 new_text, *args):
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
233 print '%s - %s' % (path, new_text)
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
234 pass
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
235
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
236 def on_add_timeline_clicked(self, *args):
1310
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
237 self._add_timeline()
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
238 pass
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
239
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
240 def on_remove_timeline_clicked(self, *args):
1310
85d04ba11146 Support adding new components
Thinker K.F. Li <thinker@codemud.net>
parents: 1309
diff changeset
241 self._rm_timeline()
1308
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
242 pass
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
243
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
244 def on_treeview_timelines_cursor_changed(self, *args):
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
245 print args
49775feefbcf Show components and timelines in comp_dock
Thinker K.F. Li <thinker@codemud.net>
parents: 1305
diff changeset
246 pass
1309
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
247
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
248 def on_cellrenderer_timelines_edited(self, renderer, path,
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
249 new_text, *args):
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
250 print '%s - %s' % (path, new_text)
f2b1b22f7cbc Make comp_dock editable
Thinker K.F. Li <thinker@codemud.net>
parents: 1308
diff changeset
251 pass
1303
cf2691a18a7a Add component dock
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
252 pass
1312
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
253
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
254 ## \brief Component dock
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
255 #
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
256 # Mix base functions and event handlers together.
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
257 #
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
258 class comp_dock(comp_dock_base, comp_dock_ui):
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
259 def __init__(self, domview_ui, fname=None):
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
260 super(comp_dock, self).__init__(domview_ui, fname)
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
261 pass
89e640789750 Separate envet handlers from base functions of comp_doc
Thinker K.F. Li <thinker@codemud.net>
parents: 1311
diff changeset
262 pass