Changeset 1267
- Timestamp:
- 05/11/07 00:03:20 (2 years ago)
- Files:
-
- gaphor/trunk/gaphor/__init__.py (modified) (1 diff)
- gaphor/trunk/gaphor/services/actionmanager.py (modified) (5 diffs)
- gaphor/trunk/gaphor/services/filemanager.py (modified) (3 diffs)
- gaphor/trunk/gaphor/services/guimanager.py (modified) (1 diff)
- gaphor/trunk/gaphor/ui/consolewindow.py (modified) (1 diff)
- gaphor/trunk/gaphor/ui/mainwindow.py (modified) (1 diff)
- gaphor/trunk/gaphor/ui/toplevelwindow.py (modified) (1 diff)
- gaphor/trunk/setup.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gaphor/trunk/gaphor/__init__.py
r1244 r1267 41 41 if gaphor_file: 42 42 main_window.set_filename(gaphor_file) 43 action_manager.execute(' FileRevert')43 action_manager.execute('file-revert') 44 44 else: 45 action_manager.execute(' FileNew')45 action_manager.execute('file-new') 46 46 Application.run() 47 47 Application.shutdown() gaphor/trunk/gaphor/services/actionmanager.py
r1264 r1267 6 6 from gaphor.core import inject 7 7 from gaphor.interfaces import IService, IActionProvider 8 from gaphor.event import ServiceInitializedEvent 9 from gaphor.misc.action import ActionPool 8 from gaphor.event import ServiceInitializedEvent, ActionExecuted 9 10 10 11 11 class ActionManager(object): … … 30 30 if a: 31 31 a.activate() 32 component.handle(ActionExecuted(action_id, a)) 32 33 else: 33 34 log.warning('Unknown action: %s' % action_id) … … 41 42 if a: return a 42 43 43 def register_action_provider(self, action_provider , priority=-1):44 log.debug('Regist ring actions for %s' % str(action_provider))44 def register_action_provider(self, action_provider): 45 log.debug('Registering actions for %s' % str(action_provider)) 45 46 action_provider = IActionProvider(action_provider) 46 47 try: … … 49 50 except AttributeError: 50 51 52 assert action_provider.action_group 53 self.ui_manager.insert_action_group(action_provider.action_group, -1) 51 54 if action_provider.menu_xml: 52 55 action_provider.__ui_merge_id = \ 53 56 self.ui_manager.add_ui_from_string(action_provider.menu_xml) 54 self.ui_manager.insert_action_group(action_provider.action_group, priority)55 57 56 58 @component.adapter(ServiceInitializedEvent) … … 61 63 # is in order (e.i. menu structure is correctly set up) 62 64 if event.name == 'gui_manager': 65 log.info('Loading not yet registered action provider services') 63 66 for name, service in component.getUtilitiesFor(IService): 64 67 if IActionProvider.providedBy(service): gaphor/trunk/gaphor/services/filemanager.py
r1264 r1267 3 3 """ 4 4 5 import gc 5 6 from zope import interface, component 6 7 from gaphor.interfaces import IService, IActionProvider 7 8 from gaphor.core import _, inject, action, build_action_group 9 from gaphor import UML 10 8 11 9 12 class FileManager(object): … … 15 18 16 19 element_factory = inject('element_factory') 20 gui_manager = inject('gui_manager') 17 21 18 22 menu_xml = """ … … 36 40 37 41 def __init__(self): 38 pass42 self.filename = None 39 43 40 44 def init(self, app): 41 45 self.action_group = build_action_group(self) 42 46 47 def shutdown(self): 48 pass 49 43 50 @action(name='file-new', stock_id='gtk-new') 44 51 def new(self): 45 pass 52 element_factory = self.element_factory 53 main_window = self.gui_manager.main_window 54 if element_factory.size(): 55 dialog = gtk.MessageDialog(main_window.window, 56 gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, 57 gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, 58 _("Opening a new model will flush the currently loaded model.\nAny changes made will not be saved. Do you want to continue?")) 59 answer = dialog.run() 60 dialog.destroy() 61 if answer != gtk.RESPONSE_YES: 62 return 63 64 element_factory.flush() 65 gc.collect() 66 model = element_factory.create(UML.Package) 67 model.name = _('New model') 68 diagram = element_factory.create(UML.Diagram) 69 diagram.package = model 70 diagram.name= _('main') 71 self.filename = None 72 element_factory.notify_model() 73 74 main_window.select_element(diagram) 75 main_window.show_diagram(diagram) 46 76 47 77 @action(name='file-open', stock_id='gtk-open') gaphor/trunk/gaphor/services/guimanager.py
r1264 r1267 51 51 self._ui_components[ep.name] = uicomp 52 52 if IActionProvider.providedBy(uicomp): 53 self.action_manager.register_action_provider(uicomp , priority=0)53 self.action_manager.register_action_provider(uicomp) 54 54 55 55 def init_main_window(self): gaphor/trunk/gaphor/ui/consolewindow.py
r1264 r1267 20 20 <ui> 21 21 <menubar name="mainwindow"> 22 <menu name="window" >22 <menu name="window" action="window"> 23 23 <menuitem action="ConsoleWindow:open" /> 24 24 </menu> gaphor/trunk/gaphor/ui/mainwindow.py
r1264 r1267 519 519 self.action_manager.execute('SelectRow') 520 520 521 521 522 # Signal callbacks: 522 523 gaphor/trunk/gaphor/ui/toplevelwindow.py
r1263 r1267 29 29 vbox.show() 30 30 31 self.ui_manager.insert_action_group(self.action_group, 0)32 self.ui_manager.add_ui_from_string(self.menu_xml)31 #self.ui_manager.insert_action_group(self.action_group, 0) 32 #self.ui_manager.add_ui_from_string(self.menu_xml) 33 33 34 34 self.window.add_accel_group(self.ui_manager.get_accel_group()) gaphor/trunk/setup.py
r1264 r1267 78 78 ], 79 79 'gaphor.services': [ 80 'adapter_loader = gaphor.services.adapterloader:AdapterLoader', 80 81 'properties = gaphor.services.properties:Properties', 81 82 'undo_manager = gaphor.services.undomanager:UndoManager', 82 'plugin_manager = gaphor.services.pluginmanager:PluginManager',83 # 'plugin_manager = gaphor.services.pluginmanager:PluginManager', 83 84 'action_manager = gaphor.services.actionmanager:ActionManager', 84 'gui_manager = gaphor.services.guimanager:GUIManager',85 'adapter_loader = gaphor.services.adapterloader:AdapterLoader',86 85 'element_factory = gaphor.UML.elementfactory:ElementFactory', 87 86 'file_manager = gaphor.services.filemanager:FileManager', 87 'gui_manager = gaphor.services.guimanager:GUIManager', 88 88 ], 89 89 'gaphor.uicomponents': [
