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

Source Code for Module pyjamas.ui.Composite

 1  # Copyright 2006 James Tauber and contributors 
 2  # Copyright (C) 2009 Luke Kenneth Casson Leighton <lkcl@lkcl.net> 
 3  # 
 4  # Licensed under the Apache License, Version 2.0 (the "License"); 
 5  # you may not use this file except in compliance with the License. 
 6  # You may obtain a copy of the License at 
 7  # 
 8  #     http://www.apache.org/licenses/LICENSE-2.0 
 9  # 
10  # Unless required by applicable law or agreed to in writing, software 
11  # distributed under the License is distributed on an "AS IS" BASIS, 
12  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
13  # See the License for the specific language governing permissions and 
14  # limitations under the License. 
15  from pyjamas import DOM 
16  from pyjamas import Factory 
17   
18  from Widget import Widget 
19   
20 -class Composite(Widget):
21 - def __init__(self, widget=None, **kwargs):
22 # this is all a bit awkward! initialising 23 # stuff that really should be done in Widget.__init__ 24 # allows us to call self.initWidget here and thus 25 # have **kwargs applied afterwards. 26 self.widget = None 27 self.attached = None 28 if widget: 29 self.initWidget(widget) 30 Widget.__init__(self, **kwargs)
31
32 - def initWidget(self, widget):
33 if self.widget is not None: 34 return 35 36 widget.removeFromParent() 37 self.setElement(widget.getElement()) 38 39 self.widget = widget 40 widget.setParent(self)
41
42 - def isAttached(self):
43 if self.widget: 44 return self.widget.isAttached() 45 return False
46
47 - def onAttach(self):
48 #print "Composite.onAttach", self 49 self.widget.onAttach() 50 DOM.setEventListener(self.getElement(), self); 51 52 self.onLoad()
53
54 - def onDetach(self):
55 self.widget.onDetach()
56
57 - def setWidget(self, widget):
58 self.initWidget(widget)
59
60 - def onBrowserEvent(self, event):
61 Widget.onBrowserEvent(self, event) # takes care of auto-handlers 62 self.widget.onBrowserEvent(event)
63 64 Factory.registerClass('pyjamas.ui.Composite', Composite) 65