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

Source Code for Module pyjamas.ui.SimplePanel

 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  from __pyjamas__ import console 
18  from Panel import Panel 
19   
20 -class SimplePanel(Panel):
21 """ 22 A panel which contains a single widget. Useful if you have an area where 23 you'd like to be able to replace the widget with another, or if you need to 24 wrap something in a DIV. 25 """
26 - def __init__(self, Element=None, **kwargs):
27 if Element is None: 28 Element = DOM.createDiv() 29 self.setElement(Element) 30 Panel.__init__(self, **kwargs)
31
32 - def add(self, widget):
33 if self.getWidget() is not None: 34 console.error("SimplePanel can only contain one child widget") 35 return 36 self.setWidget(widget)
37
38 - def getWidget(self):
39 if len(self.children): 40 return self.children[0] 41 return None
42
43 - def remove(self, widget):
44 if self.getWidget() != widget: 45 return False 46 self.disown(widget) 47 del self.children[0] 48 return True
49
50 - def getContainerElement(self):
51 return self.getElement()
52
53 - def setWidget(self, widget):
54 if self.getWidget() == widget: 55 return 56 57 if self.getWidget() is not None: 58 self.remove(self.getWidget()) 59 60 if widget is not None: 61 self.adopt(widget, self.getContainerElement()) 62 self.children.append(widget)
63 64 Factory.registerClass('pyjamas.ui.SimplePanel', SimplePanel) 65