Changeset 1229

Show
Ignore:
Timestamp:
04/16/07 22:58:45 (2 years ago)
Author:
arj..@yirdis.nl
Message:

implemented Properties service application wide

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphor/trunk/gaphor/UML/elementfactory.py

    r1219 r1229  
    3232        self._elements = odict.odict() 
    3333        self._observers = list() 
     34 
     35    def init(self, app): 
     36        pass 
     37 
     38    def shutdown(self): 
     39        pass 
    3440 
    3541    def create(self, type): 
  • gaphor/trunk/gaphor/actions/mainactions.py

    r1227 r1229  
    678678 
    679679    gui_manager = inject('gui_manager') 
     680    properties = inject('properties') 
    680681     
    681682    def __init__(self, slot_id): 
     
    683684 
    684685    def get_menu(self): 
    685         recent_files = resource('recent-files', []) 
     686        recent_files = self.properties('recent-files', []) 
    686687        window = self.gui_manager.main_window 
    687688        file_list = [] 
  • gaphor/trunk/gaphor/application.py

    r1227 r1229  
    7272 
    7373    def shutdown(self): 
    74         pass # for each IService: shutdown 
     74        for u in component.getAllUtilitiesRegisteredFor(IService): 
     75            u.shutdown() 
     76 
    7577 
    7678# Make sure there is only one! 
  • gaphor/trunk/gaphor/misc/resource.py

    r1205 r1229  
    11#!/usr/bin/env python 
    2 # vim:sw=4:et 
    32""" 
    43""" 
     
    1918        self._resources.update(initial_resources) 
    2019        self._persistent = [] 
    21         self._backend = backend or FileBackend() 
    22         self._backend.load(self) 
     20        #self._backend = backend or FileBackend() 
     21        #self._backend.load(self) 
    2322 
    2423    def __call__(self, r, default=_no_default): 
     
    2625 
    2726    def save(self): 
    28         self._backend.save(self, self._persistent) 
     27        #self._backend.save(self, self._persistent) 
     28        pass 
    2929 
    3030    def _items(self): 
     
    9393        if r not in self._persistent: 
    9494            self._persistent.append(r) 
    95         self._backend.update(r, value) 
     95        #self._backend.update(r, value) 
    9696 
    9797 
    98 class FileBackend(object): 
    99     """Resource backend that stores data to a resource file 
    100     ($HOME/.gaphor/resource). 
    101     """ 
    102     RESOURCE_FILE='resources' 
    103     
    104     def __init__(self): 
    105         pass 
    106  
    107     def get_filename(self, datadir, create=False): 
    108         if create and not os.path.exists(datadir): 
    109             os.mkdir(datadir) 
    110         return os.path.join(datadir, self.RESOURCE_FILE) 
    111  
    112     def load(self, resource): 
    113         filename = self.get_filename(resource('UserDataDir')) 
    114         if os.path.exists(filename) and os.path.isfile(filename): 
    115             f = open(filename) 
    116             d = f.read() 
    117             f.close() 
    118             for k, v in eval(d).iteritems(): 
    119                 resource.set(k, v, persistent=True) 
    120  
    121     def save(self, resource, persistent): 
    122         """Save persist resources from the resources dictionary. 
    123         @resource is the Resource instance 
    124         @persistent is a list of persistent resource names. 
    125         """ 
    126         filename = self.get_filename(resource('UserDataDir'), create=True) 
    127         f = open(filename, 'w') 
    128         persist = dict([(k, v) for k, v in resource._items() if k in persistent]) 
    129         pprint.pprint(persist, f) 
    130  
    131     def update(self, r, value): 
    132         pass 
    133  
    134  
    135 try: 
    136     import gconf 
    137 except ImportError, e: 
    138     pass 
    139 else: 
    140     class GConfBackend(object): 
    141         DOMAIN = '/apps/gaphor/' 
    142  
    143         def __init__(self): 
    144             self._gconf_client = gconf.client_get_default () 
    145  
    146         def load(self, resources): 
    147             pass 
    148  
    149         def save(self, resources, persistent): 
    150             pass 
    151  
    152         def update(self, r, value): 
    153             pass 
    154  
    155  
     98# vim:sw=4:et 
  • gaphor/trunk/gaphor/services/properties.py

    r1222 r1229  
    3030    def __init__(self, backend=None): 
    3131        self._resources = {} 
    32         self._persistent = [] 
    3332        self._backend = backend or FileBackend() 
    3433 
     
    8988        Save the property to a persistent storage. 
    9089        """ 
    91         if r not in self._persistent: 
    92             self._persistent.append(r) 
    9390        self._backend.update(r, value) 
    9491 
     
    126123        filename = self.get_filename(user_data_dir, create=True) 
    127124        f = open(filename, 'w') 
    128         pprint.pprint(resource._items(), f) 
     125        pprint.pprint(resource._resources, f) 
    129126 
    130127    def update(self, r, value): 
  • gaphor/trunk/gaphor/ui/mainwindow.py

    r1219 r1229  
    66from gaphor import resource 
    77from gaphor import UML 
     8from gaphor.core import inject 
    89from gaphor.i18n import _ 
    910from gaphor.ui import namespace 
     
    2425    It contains a Namespace-based tree view and a menu and a statusbar. 
    2526    """ 
     27    properties = inject('properties') 
    2628 
    2729    toolbox = ( 
     
    177179        # Add to recent files list 
    178180        if filename: 
    179             recent_files = resource('recent-files', [])  
     181            recent_files = self.properties.get('recent-files', [])  
    180182            if filename not in recent_files: 
    181183                recent_files = [filename] + recent_files[:8] 
    182                 resource.set('recent-files', recent_files, persistent=True
     184                self.properties.set('recent-files', recent_files
    183185                self.get_action_pool().get_slot('RecentFiles').rebuild() 
    184186 
     
    279281        secondPaned = gtk.VPaned() 
    280282        secondPaned.set_property('position', 
    281                                  int(resource('ui.object-inspector-position', 600))) 
     283                                 int(self.properties.get('ui.object-inspector-position', 600))) 
    282284        secondPaned.pack1(notebook) 
    283285        secondPaned.pack2(self.objectInspector) 
     
    293295        self.view = view 
    294296 
    295         window_size = resource('ui.window-size', (760, 580)) 
     297        window_size = self.properties.get('ui.window-size', (760, 580)) 
    296298        self._construct_window(name='main', 
    297299                               title='Gaphor', 
     
    443445 
    444446    def on_window_size_allocate(self, window, allocation): 
    445         resource.set('ui.window-size', (allocation.width, allocation.height), persistent=True
     447        self.properties.set('ui.window-size', (allocation.width, allocation.height)
    446448 
    447449    def on_object_inspector_notify_position(self, paned, arg): 
    448         resource.set('ui.object-inspector-position', 
    449                      paned.get_position(), persistent=True
     450        self.properties.set('ui.object-inspector-position', 
     451                     paned.get_position()
    450452 
    451453#    def on_toolbox_toggled(self, toolbox, box_name, visible): 
    452454#        print 'Box', box_name, 'is visible:', visible 
    453 #        #resource.set('ui.toolbox.%s' % box_name, visible, persistent=True
     455#        #resource.set('ui.toolbox.%s' % box_name, visible
    454456 
    455457#    def on_transient_window_closed(self, window): 
  • gaphor/trunk/gaphor/ui/toolbox.py

    r1131 r1229  
    66import gtk 
    77 
    8 from gaphor import resource 
     8from gaphor.core import inject 
    99 
    1010class Toolbox(gtk.VBox): 
     
    2424                    gobject.TYPE_NONE, (gobject.TYPE_STRING, gobject.TYPE_INT)) 
    2525    } 
     26 
     27    properties = inject('properties') 
    2628 
    2729    def __init__(self, menu_factory, toolboxdef): 
     
    5254            self.emit('toggled', button.toggle_id, False) 
    5355        # Save the property: 
    54         resource.set('ui.toolbox.%s' % button.toggle_id, 
    55                      content.get_property('visible'), persistent=True
     56        self.properties.set('ui.toolbox.%s' % button.toggle_id, 
     57                            content.get_property('visible')
    5658 
    5759    def make_wrapbox_decorator(self, title, content): 
     
    9092        vbox.content = content 
    9193 
    92         expanded = resource('ui.toolbox.%s' % button.toggle_id, False) 
     94        expanded = self.properties.get('ui.toolbox.%s' % button.toggle_id, False) 
    9395        content.set_property('visible', not expanded) 
    9496        self.on_wrapbox_decorator_toggled(button, content) 
     
    114116        expander.add(content) 
    115117         
    116         expanded = resource('ui.toolbox.%s' % title.replace(' ', '-').lower(), False) 
     118        expanded = self.properties.get('ui.toolbox.%s' % title.replace(' ', '-').lower(), False) 
    117119        expander.set_expanded(expanded) 
    118120