File:  [Repository] / ECHO_content / ECHO_language.py
Revision 1.7: download - view: text, annotated - select for diffs - revision graph
Thu Sep 14 14:31:53 2006 UTC (17 years, 8 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
minor

"""Methoden fuer Language Technologies"""

from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.ECHO_content.analyseAndTag.analyseAndTag import DonatusFile
from OFS.SimpleItem import SimpleItem
from OFS.Folder import Folder
import xml.parsers
import os.path
from Globals import package_home

class ECHO_language:
        """language methods"""
        
        
        def tagLex(self,nr="1",id=None):
            """gerateword tags"""
            
           
            df=DonatusFile(txt=self.getPage(_pn=nr,_id=id),baseUri=self.baseUri)
           
            return df.convertedXML()
            #return DonatusFile(txt=self.getPage(_pn=nr)).convertedXML()
        
class Collection(SimpleItem):
         
         def __init__(self,id):
             """initialise"""
             self.id=id
             self.entries=[]
             
         
         def getEntries(self):
             """get the entries"""
             return self.entries
         
         def deleteEntry(self,nr):
             """delete an entry"""
             del(self.entries[nr])
           
             
         def appendEntry(self,fn,id,type):
             """append an entry"""
             #check if last entry is complete
             createNew=False
             print "Here",fn,id,type
             if len(self.entries)==0: #noch gar kein Eintrag
                 createNew=True
             else:
                 entry=self.entries[-1]
                 if entry.get('master',None) and entry.get('slave',None):
                     createNew=True
             if createNew:

                 self.entries.append({})
                 entry=self.entries[-1]
             if type=="master":
                 entry['master']=(fn,id)
             elif type=="slave":
                 entry['slave']=(fn,id)
             
             self.entries[-1]=entry 
             
class ECHO_linkCreator(Folder):
     """creator for links"""
     
     meta_type="ECHO_linkCreator"
     

                 
                     
     def getCollectionEntries(self,collection):
         col=getattr(self,collection,None)
         if not col:
             return []
       
         return col.getEntries()
     
         
     def index_html(self,collection=None):
         """show create links"""
         if not collection:
             return "no collection"
         
              
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ECHO_linkCreator_main')).__of__(self)
         
         col=getattr(self,collection,None)
         if not col:
             return []
       
         masterUrl=getattr(col,'masterUrl','')
         slaveUrl=getattr(col,'slaveUrl','')
         
         return pt(collection=collection,masterUrl=masterUrl,slaveUrl=slaveUrl)
     
     def addEntry(self,collection,fn,id,type,fromurl=None,RESPONSE=None):
         """add an entry"""
         print "hello"
         col=getattr(self, collection,None)
         if not col:
             self._setObject(collection,Collection(collection))
             col=getattr(self, collection)
         print "XXXXX2",col  
         col.appendEntry(fn,id,type)
         
         if fromurl and RESPONSE:
             RESPONSE.redirect(fromurl)
     def removeEntry(self,collection,nr,RESPONSE=None):
         """remove an entry"""
         col=getattr(self, collection,None)
         col.deleteEntry(nr)
         
         if RESPONSE:
             RESPONSE.redirect(self.absolute_url()+"?collection="+collection)
         
     def setUrls(self,collection,masterUrl,slaveUrl,RESPONSE=None):
         """set the urls for the document viewer"""
         col=getattr(self, collection,None)
         setattr(col,'masterUrl',masterUrl)
         setattr(col,'slaveUrl',slaveUrl)
         
         if RESPONSE:
             RESPONSE.redirect(self.absolute_url()+"?collection="+collection)
         
         
         #self.index_html(collection)
         
def manage_addECHO_linkCreatorForm(self,RESPONSE=None):
    """Form for adding"""
    manage_addECHO_linkCreator(self,RESPONSE)

def manage_addECHO_linkCreator(self,RESPONSE=None):
    """Add an ECHO_main"""
    id='linkCreator'
    self._setObject(id,ECHO_linkCreator(id))
    
  
    if RESPONSE is not None:
        RESPONSE.redirect('manage_main')      
         
         
         
         
         
         
         
         
         
         
         
         
         
         

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>