[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/OFS - NaiveFile.py:1.1.2.1 NaiveFileEdit.py:1.1.2.1
   
    Stephan Richter
     
    srichter@cbu.edu
       
    Sat, 19 Jan 2002 15:05:21 -0500
    
    
  
Update of /cvs-repository/Zope3/lib/python/Zope/App/OFS
In directory cvs.zope.org:/tmp/cvs-serv7462
Added Files:
      Tag: Zope-3x-branch
	NaiveFile.py NaiveFileEdit.py 
Log Message:
- Added Support for simple File saved in the ZODB
- Provided a Web-based view
Note: You should not use this object to save large pieces of data.
=== Added File Zope3/lib/python/Zope/App/OFS/NaiveFile.py ===
# This software is subject to the provisions of the Zope Public License,
# Version 1.1 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 
# FOR A PARTICULAR PURPOSE.
import Persistence
from Interface import Interface
from Zope.App.Security.IAttributeRolePermissionManageable \
     import IAttributeRolePermissionManageable
class INaiveFile(Interface):
    """This is a simple implementation of a File in Zope.
    Warning: You should not use this interface to implement large data
             files.
    """
    def edit(data, contentType):
        """Sets the data and the content type for the object."""
    def setData(data):
        """Sets ONLY the data without changing the content type."""
    
    def getData():
        """Returns the bits (data) of the File itself."""
    def setContentType(contentType):
        """Sets the content type of the file."""
    def getContentType():
        """Returns the content type of the file using mime-types syntax."""
_RAISE_KEYERROR = []
class NaiveFile(Persistence.Persistent):
    """ """
    __implements__ = INaiveFile
    def __init__(self, data=None, contentType=None):
        """ """
        self._data = data
        if contentType is None:
            self._contentType = ''
        else:
            self._contentType = contentType
        
    ############################################################
    # Implementation methods for interface
    # Zope.App.OFS.NaiveFile.INaiveFile
    def setContentType(self, contentType):
        '''See interface INaiveFile'''
        self._contentType = contentType
        
    def getContentType(self):
        '''See interface INaiveFile'''
        return self._contentType
        
    def edit(self, data, contentType):
        '''See interface INaiveFile'''
        self._data = data
        self._contentType = contentType
    def getData(self):
        '''See interface INaiveFile'''
        return self._data
    def setData(self, data):
        '''See interface INaiveFile'''
        self._data = data
        
    #
    ############################################################
                                                                                
=== Added File Zope3/lib/python/Zope/App/OFS/NaiveFileEdit.py ===
# This software is subject to the provisions of the Zope Public License,
# Version 1.1 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 
# FOR A PARTICULAR PURPOSE.
"""
    Define view component for naive file editing.
"""
import os
from Zope.Publisher.Browser.AttributePublisher import AttributePublisher
from Zope.PageTemplate.PageTemplateFile import PageTemplateFile
class NaiveFileEdit( AttributePublisher ):
    __implements__ = AttributePublisher.__implements__
    
    def __init__( self, naiveFile ):
        self._naiveFile = naiveFile
    def edit(self, data, contentType, REQUEST=None):
        file = self.getContext()
        file.edit(data, contentType)
        if REQUEST is not None:
            return self.index(REQUEST, msg='File Edited.')
    #
    #   Make it possible for 'index' to find the naiveFile.
    #
    def getContext( self ):
        return self._naiveFile
    index = PageTemplateFile('www/naiveFile_edit.pt')