Package pyjamas :: Package ui :: Module FlashPanel
[hide private]
[frames] | no frames]

Source Code for Module pyjamas.ui.FlashPanel

  1  """ 
  2  Flash embedding Panel 
  3   
  4  @license: Apache License Version 2.0 
  5  @copyright: 2009 Tobias Weber 
  6  @author: Tobias Weber 
  7  @contact: tobi-weber@gmx.de 
  8  """ 
  9   
 10  from pyjamas import DOM 
 11  from pyjamas.ui.Panel import Panel 
 12  from pyjamas import log 
 13  from __pyjamas__ import wnd 
 14  import sys 
 15  if sys.platform in ['mozilla', 'ie6', 'opera', 'oldmoz', 'safari']: 
 16      from __javascript__ import Array, Object, eval 
 17   
18 -def browser():
19 return 'w3c'
20
21 -class FlashPanel(Panel):
22
23 - def __init__(self, **kwargs):
24 element = DOM.createDiv() 25 self.setElement(element) 26 Panel.__init__(self, **kwargs) 27 28 self.object_id = 'FlashObject' 29 """ id of the object-tag. Default: FlashObject """ 30 self.object_class = None 31 """ The class-name of the object-tag. Default: None""" 32 self.object_width = None 33 """ The width-parameter of the object-tag. Default: None""" 34 self.object_height = None 35 """ The height-parameter of the object-tag. Default: None""" 36 self.flash_url = None 37 """ The Flash-Movie url. Default: None""" 38 self.wmode = None #'window' 39 """ The flashmovie wmode parameter. Default: None""" 40 self.quality = 'high' 41 """ The flashmovie quality parameter. Default: high""" 42 self.menu = None # 'false' 43 """ The flashmovie wmode parameter. Default: None""" 44 self.allowScriptAccess = 'always' 45 """ The flashmovie allowscriptaccess parameter. Default: always""" 46 self.allowFullscreen = 'false' 47 """ The flashmovie allowfullscreen parameter. Default: False""" 48 self.bgColor = '#FFFFFF' 49 """ The flashmovie bgcolor parameter. Default: #FFFFFF (white)""" 50 self.flashvars = '' 51 self.browser = browser()
52 #log.writebr('FlashPanel loaded on %s' % self.browser) 53
54 - def onLoad(self):
56
57 - def getObjectID(self):
58 """ 59 @return: id of the object-tag 60 """ 61 return self.object_id
62
63 - def setObjectID(self, object_id):
64 """ 65 @param object_id: The id of the object-tag 66 """ 67 self.object_id = object_id
68
69 - def getObjectClass(self):
70 """ 71 @return: class-name of the object-tag 72 """ 73 return self.object_class
74
75 - def setObjectClass(self, object_class):
76 """ 77 @param object_class: The class-name of the object-tag 78 """ 79 self.object_class = object_class
80
81 - def getObjectWidth(self):
82 """ 83 @return: width parameter of the object-tag 84 """ 85 return self.object_width
86
87 - def setObjectWidth(self, width):
88 """ 89 @param object_class: The width parameter of the object-tag 90 """ 91 self.object_width = str(width)
92
93 - def getObjectHeight(self):
94 """ 95 @return: height parameter of the object-tag 96 """ 97 return self.object_height
98
99 - def setObjectHeight(self, height):
100 """ 101 @param object_class: The height parameter of the object-tag 102 """ 103 self.object_height = str(height)
104
105 - def getFlashUrl(self):
106 """ 107 @return: url of the flashmovie 108 """ 109 return self.flash_url
110
111 - def setFlashUrl(self, flash_url):
112 """ 113 @param flash_url: The url of the flash_movie 114 """ 115 self.flash_url = flash_url
116
117 - def getWmode(self):
118 """ 119 @return: flash parameter wmode 120 """ 121 return self.wmode
122
123 - def setWmode(self, wmode):
124 """ 125 @param wmode: The flash parameter wmode 126 """ 127 self.wmode = wmode
128
129 - def getQuality(self):
130 """ 131 @return: flash parameter quality 132 """ 133 return self.quality
134
135 - def setQuality(self, quality):
136 """ 137 @param quality: The flash parameter quality 138 """ 139 self.quality = quality
140
141 - def getMenu(self):
142 """ 143 @return: flash parameter menu 144 """ 145 if self.menu == 'true': 146 return True 147 else: 148 return False
149
150 - def setMenu(self, menu):
151 """ 152 @param menu: The flash parameter menu 153 """ 154 if menu: 155 self.menu = 'true' 156 else: 157 self.menu = 'false'
158
159 - def getAllowFullscreen(self):
160 """ 161 @return: flash parameter allowfullscreen 162 """ 163 if self.allowFullscreen == 'true': 164 return True 165 else: 166 return False
167
168 - def setAllowFullscreen(self, allowFullscreen):
169 """ 170 @param allowFullscreen: The flash parameter allowfullscreen 171 """ 172 if allowFullscreen: 173 self.allowFullscreen = 'true' 174 else: 175 self.allowFullscreen = 'false'
176
177 - def getBGColor(self):
178 """ 179 @return: flash parameter bgcolor 180 """ 181 return self.bgColor
182
183 - def setBGColor(self, bgcolor):
184 """ 185 @param bgcolor: The flash parameter bgcolor 186 """ 187 self.bgColor = bgcolor
188
189 - def getFlashVars(self):
190 """ 191 @return: flash parameter flashvars 192 """ 193 return self.flashvars
194
195 - def setFlashVars(self, flashvars):
196 """ 197 @param flashvars: The flash parameter flashvars 198 """ 199 self.flashvars = flashvars
200
201 - def __getFlashHTML(self):
202 object = 'id="'+self.object_id+'"' 203 if self.object_width: 204 object += ' width="'+self.object_width+'"' 205 if self.object_height: 206 object += ' height="'+self.object_height+'"' 207 if self.object_class: 208 object += ' class="'+self.object_class+'"' 209 if self.browser == 'ie': 210 object += ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' 211 else: 212 object += ' type="application/x-shockwave-flash"' 213 object += ' data="'+self.flash_url+'"' 214 html = ['<object %s>' % object] 215 if self.flash_url: 216 html.append('<param name="movie" value="'+self.flash_url+'" />') 217 if self.quality: 218 html.append('<param name="quality" value="'+self.quality+'" />') 219 if self.allowScriptAccess != None: 220 html.append('<param name="allowscriptaccess" value="'+self.allowScriptAccess+'" />') 221 if self.allowFullscreen != None: 222 html.append('<param name="allowfullscreen" value="'+self.allowFullscreen+'" />') 223 if self.bgColor: 224 html.append('<param name="bgcolor" value="'+self.bgColor+'"/>') 225 if self.wmode != None: 226 html.append('<param name="wmode" value="'+self.wmode+'" />') 227 if self.menu != None: 228 html.append('<param name="menu" value="'+self.menu+'" />') 229 html.append('<param name="flashvars" value="'+self.getFlashVars()+'" />') 230 # If Flash is not installed 231 html.append(""" 232 <div class="noflash"> 233 <h3>You have no flash plugin installed</h3> 234 <p>Click here to download latest version</p> 235 <p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p> 236 </div> 237 """) 238 html.append('</object>') 239 240 flashvars = ''.join(html) 241 return flashvars
242
243 - def getMovieElement(self):
244 """ 245 @return: element DOM-Object of the object-tag 246 """ 247 element = DOM.getElementById(self.object_id) 248 return element
249
250 - def callFlash(self, functionName, arguments=[]):
251 """ 252 @param functionName: Methodname of ExternalInterface 253 @param arguments: List with arguments of ExternalInterfaces method 254 255 @return: return value of ExternalInterfaces method 256 """ 257 raise NotImplemented("calling of javascript and conversion of javascript parameters is required")
258
259 - def toJS(self, list_or_dict):
260 """ 261 @param list_or_dict: A List or a Dictonary 262 263 Converting recrusive Dictonarys and Lists to Javascript Types. 264 265 @return: javascript array or object 266 """ 267 raise NotImplemented("conversion of javascript parameters is required")
268
269 - def flashArgumentsToXML(self, arguments, num):
270 """ 271 @return: result of flashs build in function __flash__argumentsToXML 272 """ 273 arguments = self.toJS(arguments) 274 return wnd().__flash__argumentsToXML(arguments, num);
275