Changeset 759

Show
Ignore:
Timestamp:
05/31/07 15:37:07 (6 years ago)
Author:
ggpolo
Message:

Cleanups on viewer.py, add more one method to retrieve.py.

Location:
branch/ggpolo
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • branch/ggpolo/umitDB/retrieve.py

    r755 r759  
    334334        Get IPv4 address for a host. 
    335335        """ 
    336         debug("Getting ipv4 address for host %d.." % fk_host) 
     336        debug("Getting ipv4 address for host id %d.." % fk_host) 
    337337         
    338338        fk_address = self.cursor.execute("SELECT fk_address FROM _host_address \ 
     
    348348             
    349349        return address[0] 
     350     
     351    def get_finish_timestamp_for_scan_from_db(self, scan): 
     352        """ 
     353        Get finish timestamp for a scan. 
     354        """ 
     355        debug("Getting finish timestamp for scan id %d.." % scan) 
     356         
     357        fts = self.cursor.execute("SELECT finish FROM scan WHERE \ 
     358                                  pk = ?", (scan, )).fetchone()[0] 
     359         
     360        return fts 
    350361 
    351362 
  • branch/ggpolo/umitInventory/tl/youarehere.py

    r758 r759  
    194194        cr.rectangle(*event.area) 
    195195        cr.clip() 
     196 
     197        cr.save() 
     198        cr.rectangle(*event.area) 
     199        cr.set_source_rgb(1, 1, 1) 
     200        cr.fill() 
     201        cr.restore() 
     202         
     203        cr.rectangle(0, 0, self.allocation[2], self.allocation[3]) 
     204        cr.stroke() 
    196205         
    197206        if self.tl.draw_border and self.__focus: 
  • branch/ggpolo/umitInventory/viewer.py

    r758 r759  
    9797            data["root"] = root 
    9898            data["host_addr"] = host_addr 
    99             self.daddy.emit('inventory-activated', data) 
    10099         
    101100        else: 
     
    110109            data["root"] = root 
    111110            data["host_addr"] = None 
    112             self.daddy.emit('inventory-activated', data) 
     111             
     112        self.daddy.emit('inventory-activated', data) 
    113113 
    114114 
     
    141141             
    142142            self.__layout() 
     143 
     144            return 0 
     145         
     146        return 1 
    143147         
    144148         
     
    167171        self.remove(page) 
    168172         
    169         if not len(self.pages): 
     173        if not len(self.pages): # last page in this inventory was just removed 
    170174            self.daddy._delete_inventory_page() 
    171175 
     
    240244                                border_on_focus=False, 
    241245                                **get_current_date_for_timeline()) 
    242         #self.tlyah = tl.youarehere(self.timeline) 
     246        self.tlyah = tl.youarehere(self.timeline) 
    243247        self.larrow = tl.arrow(-1, self.timeline) # left arrow (previous date) 
    244248        self.rarrow = tl.arrow(1, self.timeline) # right arrow (next date) 
     
    254258        # tooltips 
    255259        self.tooltips = gtk.Tooltips() 
    256         #self.tooltips.set_tip(self.uparrow, _("Zoom out one level.")) 
    257         #self.tooltips.set_tip(self.downarrow, _("Zoom in one level.")) 
     260        self.tooltips.set_tip(self.tlyah, _("Timeline: You are here!")) 
    258261        self.tooltips.set_tip(self.larrow, _("Go to the previous date.")) 
    259262        self.tooltips.set_tip(self.rarrow, _("Go to the next date.")) 
     
    278281        """ 
    279282        if self.tl_dtitle.flags () & gtk.VISIBLE or not event: 
    280             self.tl_dtitle.set_markup("<span weight='heavy'>Viewing date: %s \ 
    281 </span>" % (self.timeline.title_by_zoom()))     
     283            self.tl_dtitle.set_markup(_("<span weight='heavy'>Viewing: %s \ 
     284</span>") % (self.timeline.title_by_zoom()))     
    282285            self._tl_verify_zoom() 
    283286     
     
    342345 
    343346 
     347    def _set_yahrange(self, min, max): 
     348        """ 
     349        Set new TimeLine year range. 
     350        """ 
     351        miny = min.year - 1  
     352        maxy = max.year + 1 
     353             
     354        self.timeline.year_range = (miny, maxy) 
     355        self.timeline.emit('range-change-notify') 
     356     
     357 
    344358    def _opt_timeline(self, event): 
    345359        """ 
    346360        Show/Hide TimeLine. 
    347361        """ 
    348         if self.tl_dtitle.flags () & gtk.VISIBLE: 
    349             self.tl_dtitle.hide() 
    350             self.timeline.hide() 
    351             self.larrow.hide() 
    352             self.rarrow.hide() 
    353              
    354             timeline_zi = self.main_action_group.get_action("ZoomIn") 
    355             timeline_zo = self.main_action_group.get_action("ZoomOut") 
    356             timeline_zi.set_sensitive(False) 
    357             timeline_zo.set_sensitive(False) 
     362        visible = not ((self.tl_dtitle.flags () & gtk.VISIBLE) and 1 or 0) 
     363        methods = ("hide", "show") 
     364         
     365        getattr(self.tl_dtitle, methods[visible])() 
     366        getattr(self.timeline, methods[visible])() 
     367        getattr(self.larrow, methods[visible])() 
     368        getattr(self.rarrow, methods[visible])() 
     369         
     370        timeline_zi = self.main_action_group.get_action("ZoomIn") 
     371        timeline_zo = self.main_action_group.get_action("ZoomOut") 
     372        timeline_zi.set_sensitive(visible) 
     373        timeline_zo.set_sensitive(visible) 
     374         
     375        if visible: 
     376            self._tl_verify_zoom() 
     377             
     378     
     379    def _opt_tlyah(self, event): 
     380        """ 
     381        Show/Hide "You Are Here!".         
     382        """ 
     383        if self.yah_hb.flags () & gtk.VISIBLE: 
     384            self.yah_hb.hide() 
    358385        else: 
    359             self.tl_dtitle.show() 
    360             self.timeline.show() 
    361             self.larrow.show() 
    362             self.rarrow.show() 
    363              
    364             timeline_zi = self.main_action_group.get_action("ZoomIn") 
    365             timeline_zo = self.main_action_group.get_action("ZoomOut") 
    366             timeline_zi.set_sensitive(True) 
    367             timeline_zo.set_sensitive(True) 
    368          
    369             self._tl_verify_zoom() 
    370      
     386            self.yah_hb.show() 
     387         
    371388     
    372389    def _close_current_hosttab(self, event): 
     
    386403    def _close_current_invtab(self, event): 
    387404        """ 
    388         Closes current active inventory tab. 
     405        Closes current active inventory notebook. 
    389406        """ 
    390407        holder = self.invnb.get_nth_page(self.invnb.get_current_page()) 
     
    401418         
    402419 
    403     def _invnb_change_cbtn(self, event): 
    404         """ 
    405         Enable/Disable close button in Inventory tabs. 
    406         """ 
    407         self.invnb_close_btn = not self.invnb_close_btn 
    408         self.emit("invnb-cbtn-changed") 
    409  
    410  
    411420    def _delete_inventory_page(self): 
    412421        """ 
    413         Removed last page from an Inventory notebook. 
     422        Removed last page from an Inventory notebook, now remove the Inventory 
     423        notebook. 
    414424        """ 
    415425        cur_page = self.invnb.get_current_page() 
     
    429439        title = data["root"] 
    430440         
    431         if not data["host_addr"]: # inventory activated 
    432             if not title in self.invnbpages_titles: 
    433                 newinvnb = InventoryNB(self, title, True) 
    434                 self.invnb.append_page(newinvnb, gtk.Label(_("%s" % title))) 
     441        if not title in self.invnbpages_titles: 
     442            newinvnb = InventoryNB(self, title, not data["host_addr"]) 
     443            self.invnb.append_page(newinvnb, gtk.Label(_("%s" % title))) 
    435444                 
    436                 self.invnbpages_titles.append(title) 
    437                 self.invnbpages_objects.append(newinvnb) 
     445            self.invnbpages_titles.append(title) 
     446            self.invnbpages_objects.append(newinvnb) 
     447             
     448            if data["host_addr"]: # host activated 
     449                newinvnb.append_host(data["host_addr"]) 
     450                 
     451            err = 0    
     452        else: 
     453            p = self.invnbpages_objects[self.invnbpages_titles.index(title)] 
     454            if data["host_addr"]: # host activated 
     455                err = p.append_host(data["host_addr"]) 
     456            else: # inventory activated 
     457                err = p.append_inv() 
     458             
     459        if not err: # tab wasn't in inventory tab 
     460            print "inv: %s" % title 
     461             
     462            if data["host_addr"]: 
     463                print "load %s data" % data["host_addr"] 
    438464            else: 
    439                 p = self.invnbpages_objects[self.invnbpages_titles.index(title)] 
    440                 p.append_inv() 
     465                print "load inv info" 
    441466                 
    442         else: # host activated 
    443             if not title in self.invnbpages_titles: 
    444                 newinvnb = InventoryNB(self, title) 
    445                 self.invnb.append_page(newinvnb, gtk.Label(_("%s" % title))) 
    446                  
    447                 self.invnbpages_titles.append(title) 
    448                 self.invnbpages_objects.append(newinvnb) 
    449                  
    450                 newinvnb.append_host(data["host_addr"]) 
    451                 err = 0 
    452             else: 
    453                 p = self.invnbpages_objects[self.invnbpages_titles.index(title)] 
    454                 err = p.append_host(data["host_addr"]) 
    455              
    456             if not err: # host wasn't in inventory tab 
    457                 pass 
    458                 # load data 
    459                 # ... 
    460                 # 
    461                 # ... 
     467            # load data 
     468            # ... 
     469            # 
     470            # ... 
    462471             
    463472 
     
    467476        """ 
    468477        self.addresses = { } 
     478        timestamps = [ ] 
    469479         
    470480        tr = self.invtree.treestore 
     
    476486            # retrieve scans id for each inventory 
    477487            for scan in self.invdb.get_scans_ids_for_inventory(invid): 
     488 
     489                # retrieve scan finish timestamp 
     490                fts = self.invdb.get_finish_timestamp_for_scan_from_db(scan[0]) 
     491                timestamps.append(fts) 
    478492                 
    479493                # retrieve hosts id for each scan 
     
    499513                        tr.append(root, ['%s' % addr]) 
    500514         
    501          
     515        # Adjusts timeline range based on min and max timestamps from scans. 
     516        self._set_yahrange(min(timestamps), max(timestamps)) 
     517     
    502518        self.invtree.treeview.expand_all() 
    503519        self.invtree.tcolumn.set_title("My Inventories (%d)" % len(tr)) 
     
    561577             self._opt_timeline, 
    562578             True), 
     579            ("ShowYAH", None, 
     580             _("Show \"You Are Here!\""), None, 
     581             _("Show/Hide \"You Are Here!\""), 
     582             self._opt_tlyah, 
     583             True), 
    563584            # Edit/Notebooks 
    564585            ("TabCloseBtn", None, 
     
    579600                <menu action='Edit'> 
    580601                    <menu action='TimeLine'> 
    581                         <menuitem action='ShowTimeline' /> 
    582602                        <menuitem action='ZoomIn' /> 
    583603                        <menuitem action='ZoomOut' /> 
     604                        <menuitem action='ShowTimeline' /> 
     605                        <menuitem action='ShowYAH' /> 
    584606                    </menu> 
    585607                    <menu action='ToolbarOpt'> 
     
    623645        Set window properties. 
    624646        """ 
    625         self.set_title(_("UMIT Network Inventory 0.0.2")) 
     647        self.set_title(_("UMIT Network Inventory 0.0.2.2")) 
    626648        self.maximize() 
    627649         
     
    645667        main_vbox.pack_start(toolbar, False, False, 0) 
    646668 
    647         main_hpaned.add1(self.invtree) 
     669        left_pane_box = gtk.VBox() 
     670        #left_pane_box.set_border_width(3) 
     671        left_pane_box.pack_start(self.invtree, True, True, 0) 
     672         
     673        self.yah_hb = gtk.HandleBox() 
     674        self.yah_hb.add(self.tlyah) 
     675        self.yah_hb.set_handle_position(gtk.POS_TOP) 
     676        left_pane_box.pack_end(self.yah_hb, False, False, 0) 
     677         
     678        main_hpaned.add1(left_pane_box) 
    648679        main_hpaned.add2(nb_tl_hpaned) 
    649680 
    650681        # align left and right arrow with timeline height 
    651         #tl_and_info = gtk.VBox() 
    652          
    653          
    654682        tlbox2 = gtk.HBox() 
    655         #tlbox2.set_border_width(6) 
    656683        align = gtk.Alignment(0, 1, 0, 0.5) 
    657684        align.add(self.larrow) 
     
    665692        align.add(self.rarrow) 
    666693        tlbox2.pack_end(align, False, False, 6) 
    667         #tl_and_info.pack_start(tlbox, False, False, 6) 
    668694         
    669695        tlbox.pack_start(tlbox2, True, True, 0) 
     
    673699        nbscroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
    674700        nbscroll.add_with_viewport(self.invnb) 
    675         #box3 = gtk.VBox() 
    676  
    677         # UNCOMMENT! 
    678         #box3.pack_start(self.tltitle, False, False, 6) 
    679         #box3.pack_start(tlbox, False, False, 6) 
    680          
    681         # up arrow, title, down arrow 
    682         #align = gtk.Alignment(0.5, 0.5, 0, 0) 
    683         #align.add(self.tltitle) 
    684          
    685         #box3.add(nbscroll) 
    686          
    687         #tlbox2 = gtk.VBox() 
    688         #align = gtk.Alignment(1, 0, 0.4, 0) 
    689         #align.add(self.uparrow) 
    690         #tlbox2.pack_start(align, False, False, 6) 
    691          
    692         #tlalign = gtk.Alignment(1, 0, 0.5, 0) 
    693         #tlalign.add(self.timeline) 
    694         #tlbox2.pack_start(tlalign, False, False, 0) 
    695          
    696         #align = gtk.Alignment(1, 0, 0.4, 0) 
    697         #align.add(self.downarrow) 
    698         #tlbox2.pack_end(align, False, False, 6) 
    699          
    700         #yahbox.pack_start(self.tltitle, False, False, 0) 
    701         #yahbox.pack_start(self.tlyah, False, False, 0) 
    702         #yahbox.pack_start(tlbox2, False, False, 0) 
    703701        nb_tl_hpaned.pack1(nbscroll, True, False) 
    704         #nb_tl_hpaned.pack2(yahbox, False, False) 
    705          
    706          
    707         #secondary_vbox.pack_start(tlbox, False, False, 6) 
    708         #secondary_vbox.pack_start(hpaned, True, True, 0) 
     702        
    709703        main_vbox.pack_start(self.tl_dtitle, False, False, 6) 
    710704        main_vbox.pack_start(tlbox, False, False, 0) 
    711         #main_vbox.pack_start(box3, False, False, 0) 
    712705        main_vbox.pack_start(main_hpaned, True, True, 0) 
    713          
    714         #main_vbox.pack_start(secondary_vbox, True, True, 0) 
    715          
    716706        main_vbox.pack_end(self.statusbar, False, False, 0) 
    717707