def plot(self, date, facts, select_start, select_end = None): for bar in self.fact_bars: self.plot_area.sprites.remove(bar) self.fact_bars = [] for fact in facts: fact_bar = graphics.Rectangle(0, 0, fill="#aaa", stroke="#aaa") # dimensions will depend on screen situation fact_bar.fact = fact if fact.category in self.categories: fact_bar.category = self.categories.index(fact.category) else: fact_bar.category = len(self.categories) self.categories.append(fact.category) self.plot_area.add_child(fact_bar) self.fact_bars.append(fact_bar) self.view_time = dt.datetime.combine(date, self.day_start) self.date_label.text = self.view_time.strftime("%b %d") self.chosen_selection.start_time = select_start self.chosen_selection.end_time = select_end self.chosen_selection.width = None self.chosen_selection.fixed = True self.chosen_selection.visible = True self.redraw()
def __init__(self, key, value, normalized, label_color): graphics.Sprite.__init__(self, cache_as_bitmap=True) self.key, self.value, self.normalized = key, value, normalized self.height = 0 self.width = 20 self.interactive = True self.fill = None self.label = graphics.Label(value, size=8, color=label_color) self.label_background = graphics.Rectangle(self.label.width + 4, self.label.height + 4, 4, visible=False) self.add_child(self.label_background) self.add_child(self.label) self.connect("on-render", self.on_render)