Statistik in den tree eingebaut. Ein paar Fixes in der Logik. Erweiterungen des
This commit is contained in:
+23
-1
@@ -57,7 +57,7 @@ class TreeView():
|
||||
# hier Anzahl der sichtbaren Zeilen des Baums angeben:
|
||||
self.tree = ttk.Treeview(frame, height=65)
|
||||
# TODO hier anstatt root die Statistik rein schreiben.
|
||||
self.tree.heading('#0', text='root', anchor=tk.W)
|
||||
#self.tree.heading('#0', text='root', anchor=tk.W)
|
||||
self.tree.grid(row=nrow, column=0, sticky=tk.NSEW)
|
||||
|
||||
# add a scrollbar
|
||||
@@ -69,12 +69,33 @@ class TreeView():
|
||||
self.tree.bind('<Double-Button-1>', self.item_selected) # Doppelklick:
|
||||
|
||||
self.trid2sivasId = dict()
|
||||
|
||||
def set_heading_text(self, parent_children_mapping, red_ids):
|
||||
done_items = set()
|
||||
undone_items = set()
|
||||
for parent,children in parent_children_mapping.items():
|
||||
if parent in red_ids:
|
||||
undone_items.add(parent)
|
||||
else:
|
||||
done_items.add(parent)
|
||||
for c in children:
|
||||
if c in red_ids:
|
||||
undone_items.add(c)
|
||||
else:
|
||||
done_items.add(c)
|
||||
num_done = len(done_items)
|
||||
num_undone = len(undone_items)
|
||||
percentage = round(num_done / (num_done + num_undone) * 100, 1)
|
||||
heading = "{percent}% ({done} ✔, {undone} ☐)".format(percent=percentage, done=num_done, undone=num_undone)
|
||||
self.tree.heading('#0', text=heading, anchor=tk.W)
|
||||
|
||||
|
||||
def set_controller(self, controller):
|
||||
self._controller = controller
|
||||
|
||||
def refresh(self, parent_children_mapping, red_ids, orange_ids):
|
||||
self.clear()
|
||||
self.set_heading_text(parent_children_mapping, red_ids)
|
||||
self.create(parent_children_mapping, red_ids, orange_ids)
|
||||
|
||||
def clear(self):
|
||||
@@ -90,6 +111,7 @@ class TreeView():
|
||||
|
||||
def create(self, parent_children_mapping, red_ids, orange_ids):
|
||||
pool = dict()
|
||||
self.set_heading_text(parent_children_mapping, red_ids)
|
||||
for parent, children in parent_children_mapping.items():
|
||||
# parent erzeugen, falls es diese nicht schon gibt (check der pool ids)
|
||||
if parent not in pool:
|
||||
|
||||
Reference in New Issue
Block a user