Changeset 1360

Show
Ignore:
Timestamp:
06/11/07 06:28:01 (1 year ago)
Author:
arj..@yirdis.nl
Message:

fixed live object browser

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphor/trunk/gaphor/plugins/liveobjectbrowser/__init__.py

    r1243 r1360  
    1 # vim:sw=4:et 
     1""" 
     2Plugin based on the Live Object browser 
     3(http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/300304). 
     4It shows the state of the data model at the time the browser is activated. 
     5""" 
    26 
    3 import gaphor.plugin 
    4 from gaphor.core import inject 
     7__version__ = '0.1' 
     8__author__ = 'Arjan Molenaar' 
     9 
     10from zope import interface 
     11from gaphor.core import _, inject, action, build_action_group 
     12from gaphor.interfaces import IService, IActionProvider 
    513from browser import Browser 
    6 import gaphor 
    714 
    8 class LiveObjectBrowserAction(gaphor.plugin.Action): 
     15 
     16class LiveObjectBrowser(object): 
     17 
     18    interface.implements(IService, IActionProvider) 
    919 
    1020    element_factory = inject('element_factory') 
    1121 
     22    menu_xml = """ 
     23      <ui> 
     24        <menubar action="mainwindow"> 
     25          <menu action="tools"> 
     26            <menuitem action="tools-life-object-browser" /> 
     27          </menu> 
     28        </menubar> 
     29      </ui>""" 
     30 
     31    def __init__(self): 
     32        self.action_group = build_action_group(self) 
     33 
     34    def init(self, app): 
     35        pass 
     36 
     37    def shutdown(self): 
     38        pass 
     39 
     40    @action(name='tools-life-object-browser', label='Life object browser') 
    1241    def execute(self): 
    13         browser = Browser() 
    14         browser.construct("resource", element_factory.lselect()) 
    15         self.window.add_transient_window(browser) 
     42        browser = Browser("resource", self.element_factory.lselect()) 
     43 
     44 
     45# vim:sw=4:et 
  • gaphor/trunk/gaphor/plugins/liveobjectbrowser/browser.py

    r1225 r1360  
    1414 
    1515import gtk 
    16 from gaphor.ui.abstractwindow import AbstractWindow 
    1716 
    18 class Browser(AbstractWindow): 
    19  
    20     menu = ('_File', ('FileClose',)) 
    21  
    22     def __init__(self): 
    23         AbstractWindow.__init__(self) 
    24  
    25     def construct(self, name, value): 
    26  
    27         # we will store the name, the type name, and the repr  
    28         columns = [str,str,str] 
    29         self.treestore = gtk.TreeStore(*columns) 
    30  
    31         # the otank tells us what object we put at each node in the tree 
    32         self.otank = {} # map path -> (name,value) 
    33         self.make( name, value ) 
    34  
    35         self.treeview = gtk.TreeView(self.treestore) 
    36         self.treeview.connect("row-expanded", self.row_expanded ) 
    37  
    38         self.tvcolumns = [ gtk.TreeViewColumn() for _type in columns ] 
    39         i = 0 
    40         for tvcolumn in self.tvcolumns: 
    41             self.treeview.append_column(tvcolumn) 
    42             cell = gtk.CellRendererText() 
    43             tvcolumn.pack_start(cell, True) 
    44             tvcolumn.add_attribute(cell, 'text', i) 
    45             i = i + 1 
    46  
    47         scrolled_window = gtk.ScrolledWindow() 
    48         scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
    49         scrolled_window.set_shadow_type(gtk.SHADOW_ETCHED_IN) 
    50         scrolled_window.add(self.treeview) 
    51         scrolled_window.set_size_request(512, 320) 
    52         scrolled_window.show_all() 
    53  
    54         self._construct_window(name='console', 
    55                                title='Gaphor Console', 
    56                                size=(400, 400), 
    57                                contents=scrolled_window) 
     17class Browser(object): 
    5818 
    5919    def make_row( self, piter, name, value ): 
     
    10969        self.window.destroy() 
    11070        #gtk.main_quit() 
    111         return gtk.FALSE 
     71        return False 
    11272 
    113     def original__init__(self, name, value): 
     73    def __init__(self, name, value): 
    11474        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) 
    11575        self.window.set_title("Browser") 
     
    13797            i = i + 1 
    13898 
    139         self.window.add(self.treeview) 
     99        scrolled_window = gtk.ScrolledWindow() 
     100        scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
     101        scrolled_window.set_shadow_type(gtk.SHADOW_ETCHED_IN) 
     102        scrolled_window.add(self.treeview) 
     103 
     104        self.window.add(scrolled_window) 
    140105        self.window.show_all() 
    141106 
  • gaphor/trunk/setup.py

    r1357 r1360  
    132132            'pynsource = gaphor.plugins.pynsource:PyNSource', 
    133133            'check_metamodel = gaphor.plugins.checkmetamodel:CheckModelWindow', 
     134            'live_object_browser = gaphor.plugins.liveobjectbrowser:LiveObjectBrowser', 
    134135        ], 
    135136        'gaphor.uicomponents': [