PyutIoPlugin.py :  » UML » Python-UML-Tool » pyut-1.4.0 » src » plugins » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » UML » Python UML Tool 
Python UML Tool » pyut 1.4.0 » src » plugins » PyutIoPlugin.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__  = "Laurent Burgbacher <lb@alawa.ch>"
__version__ = "$Revision: 1.9 $"
__date__    = "2002-02-14"
#from wxPython.wx    import * 
from mediator import *
from PyutPlugin import PyutPlugin
import os, wx
#wx.FileSelector, wx.DirDialog, \
#wx.OPEN, wx.FILE_MUST_EXIST, wx.SAVE, wx.OVERWRITE_PROMPT, \
#w

class PyutIoPlugin(PyutPlugin):
    """
    Base class for input/output plug-ins.

    If you want to do a new plugin, you must inherit from this class and
    redefine some methods.

    Informational methods
    ---------------------

    These are:
        `getName`
        `getAuthor`
        `getVersion`
        `getInputFormat`
        `getOutputFormat`

    They must be redefined to return a simple string. See their respective doc.

    Interaction methods
    -------------------

    You can ask the user for plugin parameters. If you have to, just redefine
    these methods:
        `setImportOptions`
        `setExportOptions`

    Do whatever you need inside, and return True if all went good, or False
    to cancel the import/export.

    Real work
    ---------

    All the real import/export work is done in:
        `read(self, oglObjects, umlFrame)`
        `write(self, oglObjects)`

    Plugin call
    -----------

    To call a plugin, you need to instantiate it, and call one of:
        `doImport`
        `doExport`

    These two *Template Methods* (Desing patterns) will call what needs to be.

    @author Laurent Burgbacher <lb@alawa.ch>
    @version $Revision: 1.9 $
    """
    def __init__(self, oglObjects, umlFrame):
        """
        Constructor.

        @param OglObject oglObjects : list of ogl objects
        @param UmlFrame umlFrame : the umlframe of pyut
        @author Laurent Burgbacher <lb@alawa.ch>
        @since 1.0
        """
        PyutPlugin.__init__(self, umlFrame, getMediator())
        self.__oglObjects = oglObjects
        #self.__umlFrame = umlFrame
        #self.__ctrl = getMediator()


    #>------------------------------------------------------------------------

    def getName(self):
        """
        This method returns the name of the plugin.

        @return string
        @author Laurent Burgbacher <lb@alawa.ch>
        @since 1.0
        """
        return "No name"


    #>------------------------------------------------------------------------

    def getAuthor(self):
        """
        This method returns the author of the plugin.

        @return string
        @author Laurent Burgbacher <lb@alawa.ch>
        @since 1.0
        """
        return "No author"


    #>------------------------------------------------------------------------

    def getVersion(self):
        """
        This method returns the version of the plugin.

        @return string
        @author Laurent Burgbacher <lb@alawa.ch>
        @since 1.0
        """
        return "0.0"


    #>------------------------------------------------------------------------

    def getInputFormat(self):
        """
        Return a specification tupple.

        @return tuple
        @author Laurent Burgbacher <lb@alawa.ch>
        @since 1.0
        """
        # return None if this plugin can't read.
        # otherwise, return a tupple with
        # - name of the input format
        # - extension of the input format
        # - textual description of the plugin input format
        # example : return ("Text", "txt", "Tabbed text...")
        return None


    #>------------------------------------------------------------------------

    def getOutputFormat(self):
        """
        Return a specification tupple.

        @return tuple
        @author Laurent Burgbacher <lb@alawa.ch>
        @since 1.0
        """
        # return None if this plugin can't write.
        # otherwise, return a tupple with
        # - name of the output format
        # - extension of the output format
        # - textual description of the plugin output format
        # example : return ("Text", "txt", "Tabbed text...")
        return None

    #>------------------------------------------------------------------------


    def setImportOptions(self):
        """
        Prepare the import.
        This can be used to ask some questions to the user.

        @return Boolean : if False, the import will be cancelled.
        @author Laurent Burgbacher <lb@alawa.ch>
        @since 1.0
        """
        return 1


    #>------------------------------------------------------------------------

    def setExportOptions(self):
        """
        Prepare the export.
        This can be used to ask some questions to the user.

        @return Boolean : if False, the export will be cancelled.
        @author Laurent Burgbacher <lb@alawa.ch>
        @since 1.0
        """
        return 1


    #>------------------------------------------------------------------------

    def read(self, oglObjects, umlFrame):
        """
        Read data from filename. Abstract.

        @param OglClass and OglLink [] : list of imported objects
        @param UmlFrame : Pyut's UmlFrame
        @author Laurent Burgbacher <lb@alawa.ch>
        @since 1.0
        """
        pass


    #>------------------------------------------------------------------------

    def write(self, oglObjects):
        """
        Write data to filename. Abstract.

        @param OglClass and OglLink [] : list of exported objects
        @author Laurent Burgbacher <lb@alawa.ch>
        @since 1.0
        """
        pass



    #>------------------------------------------------------------------------

    def doImport(self):
        """
        Called by Pyut to begin the import process.

        @since 1.4
        """
        # if this plugin can import
        if self.getInputFormat() != None:
            # set user options for import
            if not self.setImportOptions():
                return None

            # read it into the list
            self.read(self.__oglObjects, self._umlFrame)

            # return the new oglObjects list
            return self.__oglObjects
        else:
            return None


    #>------------------------------------------------------------------------

    def doExport(self):
        """
        Called by Pyut to begin the export process.

        @since 1.4
        """
        # if this plugin can export
        if self.getOutputFormat() != None:
            # set user options for export
            if not self.setExportOptions():
                return None

            # write the file
            self.write(self.__oglObjects)
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.