예제 #1
0
    def __init__(self, inventory=None, hostaddr=None):
        """
        Load timeline for every inventory, or if especified, a single
        host in an inventory.
        """

        gtk.VBox.__init__(self)

        self.connector = Connector()
        self.base = TLBase(self.connector, inventory, hostaddr)

        # startup data
        line_filter, start, evts = self.base.grab_data()
        xlabel = self.base.xlabel
        glabel = self.base.title_by_graphmode()
        dlabel = self.base.descr_by_graphmode()

        # graph
        self.graph = InteractiveGraph(evts, start, x_label=xlabel,
            y_label=_('Number of events'), graph_label=glabel,
            descr_label=dlabel, vdiv_labels=self.base.labels,
            line_filter=line_filter, connector=self.connector)
        # graph toolbar
        self.graphtb = GraphControllerTB(self.graph, self.connector,
            self.base.graph_mode, self.base.graph_kind)
        # graph filter
        self.filterbtns = FilterBox(filter=line_filter,
            connector=self.connector)
        # graph date
        self.dateview = TimeBox(self.connector, self.base)
        # categories label
        self.viewing_lbl = gtk.Label(_("Viewing"))
        # tl selected, bar display
        self.tlsel = TLSelected(self.connector, self.base)
        # changes tree
        categories = self.base.get_categories()
        cnames = [value[1] for value in categories.values()]
        self.changestree = TLChangesTree(self.connector, self.base, cnames,
            inventory, hostaddr)
        # changes displaying
        self.changes_display = ChangesDiff(self.base)
        self.changes_list = ChangesList(self, self.base,
            self.changes_display, None, load_now=False)


        self.connector.connect('data-update', self._update_graph)
        self.connector.connect('filter-update', self._update_graph_filter)
        self.connector.connect('graph-show', self._update_graph_visibility)
        self.changestree.connect('data-update', self._changes_show)

        self.__layout()