[Zope] Embedding java applet into python Product

Josef Meile jmeile at hotmail.com
Tue May 11 14:26:59 EDT 2004


Hi,

the idea of this is to have the instances of a python product to use a 
java applet, which comes with the product itself.

This is what I've done, but I haven't had any success:

On MyInstanceHome/Products/MyProduct/MyProduct.py:

from OFS.Image import File
import os,Globals

def loadAppletClass():
   #Gets the physic path where the applet is:
   #MyInstanceHome/Products/MyProduct/java/myApplet.class
   productHome=Globals.package_home(globals())
   appletName='myApplet.class'
   appletPath=os.path.join(productHome,'java/'+appletName)

   #Then loads the data
   appletData=file(appletPath)
   return File(appletName,'',appletData)
   #return appletData -> I tried this as well

#Creates a global variable to store the
#file reference
APPLET_CLASS=loadAppletClass()

#Here comes the usual code for manage_add

# Then the class definition
class MyProduct(SimpleItem):
   """ MyProduct class definition"""

   #__init__ and other class methods come here

   #Inside this method, I use some class variables that
   #I have already initialize on the __init__ method
   def appletHeader(self):
     """Renders the applet tag"""
     return \
     """
           <applet code="%s" width="%s" height="%s" name="myApplet">
             <param name="showValue" value="no">
             <param name="sampleHeight" value="10">
             <param name="bgColor" value="%s">
             no applet
           </applet>
     """ % (APPLET_CLASS,self.appletWidth,self.appletHeight,self.bgColor)

then I called it from a Page template like this:

<applet tal:replace='structure python:here.appletHeader()'>
   Some Applet
</applet>

but I get:

<applet code="---> The whole binary data comes here <---"
         width="325" height="100" name="myApplet">
             <param name="showValue" value="no">
             <param name="sampleHeight" value="10">
             <param name="bgColor" value="#eeeeee">
             no applet
           </applet>

I think this result is pretty normal because on one hand I'm returning 
the object contents and not a reference. On the other hand, the binary 
data is being treated as ASCII. How do I return a reference instead of 
returning the File object itself?

Thanks in advanced,
Josef



More information about the Zope mailing list