Changeset 1348

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

Added XMI export plugin.

Files:

Legend:

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

    r514 r1348  
    1 # vim:sw=4:et 
     1""" 
     2This plugin extends Gaphor with XMI export functionality. 
     3""" 
     4 
     5__plugin__ = "XMI Export" 
     6__version__ = "0.1" 
     7__author__ = "Jeroen Vloothuis" 
     8__description__ = 'This plugin extends Gaphor with XMI export functionality.' 
    29 
    310import gtk 
    4 from exportmodel import XMIExport         
    5 from gaphor.plugin import Action 
     11from zope import interface, component 
     12from gaphor.core import _, inject, action, build_action_group 
     13from gaphor.interfaces import IService, IActionProvider 
    614 
     15import exportmodel 
    716 
    8 class XMIExportAction(Action): 
     17class XMIExport(object): 
    918 
     19    interface.implements(IService, IActionProvider) 
     20 
     21    element_factory = inject('element_factory') 
     22    gui_manager = inject('gui_manager') 
     23 
     24    menu_xml = """ 
     25      <ui> 
     26        <menubar action="mainwindow"> 
     27          <menu action="file"> 
     28            <menu action="file-export"> 
     29              <menuitem action="file-export-xmi" /> 
     30            </menu> 
     31          </menu> 
     32        </menubar> 
     33      </ui>""" 
     34     
     35    def __init__(self): 
     36        self.action_group = build_action_group(self) 
     37 
     38    def init(self, app): 
     39        pass 
     40 
     41    def shutdown(self): 
     42        pass 
     43 
     44    @action(name='file-export-xmi', label=_('Export to XMI'), 
     45            tooltip=_('Export model to XMI (XML Model Interchange) format')) 
    1046    def execute(self): 
    11         filename = self.get_window().get_filename() 
     47        filename = self.gui_manager.main_window.get_filename() 
    1248        if filename: 
    1349            filename = filename.replace('.gaphor', '.xmi') 
     
    2662            if filename and len(filename) > 0: 
    2763                log.debug('Exporting XMI model to: %s' % filename) 
    28                 export = XMIExport(
     64                export = exportmodel.XMIExport(self.element_factory
    2965                try: 
    3066                    export.export(filename) 
     
    3268                    log.error('Error while saving model to file %s: %s' % (filename, e)) 
    3369 
     70 
     71# vim:sw=4:et 
  • gaphor/trunk/gaphor/plugins/xmiexport/exportmodel.py

    r1243 r1348  
    11# vim:sw=4:et 
    22 
    3 #from xml.sax.saxutils import XMLGenerator 
    43import time 
    5 from gaphor.core import inject 
    6 from gaphor import UML 
    74from gaphor.misc.xmlwriter import XMLWriter 
    85 
     
    2724class XMIExport(object): 
    2825     
    29     element_factory = inject('element_factory') 
     26    def __init__(self, element_factory): 
     27        self.element_factory = element_factory 
    3028 
    3129    # State diagram specific 
  • gaphor/trunk/gaphor/services/diagramexportmanager.py

    r1308 r1348  
    3030              <menuitem action="file-export-png" /> 
    3131              <menuitem action="file-export-pdf" /> 
     32              <separator /> 
    3233            </menu> 
    3334          </menu> 
  • gaphor/trunk/setup.py

    r1307 r1348  
    128128            'help = gaphor.services.helpservice:HelpService', 
    129129            'copy = gaphor.services.copyservice:CopyService', 
     130            'xmi_export = gaphor.plugins.xmiexport:XMIExport', 
    130131        ], 
    131132        'gaphor.uicomponents': [