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

Source Code for Module pyjamas.ui.Panel

 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 console 
16  from pyjamas import Factory 
17  from pyjamas import DOM 
18   
19  from Widget import Widget 
20   
21 -class Panel(Widget):
22 - def __init__(self, **kwargs):
23 self.children = [] 24 Widget.__init__(self, **kwargs)
25
26 - def add(self):
27 console.error("This panel does not support no-arg add()")
28
29 - def clear(self):
30 # use this method, due to list changing as it's being iterated. 31 children = [] 32 for child in self.children: 33 children.append(child) 34 35 for child in children: 36 self.remove(child)
37
38 - def disown(self, widget):
39 if widget.getParent() != self: 40 console.error("widget %o is not a child of this panel %o", widget, self) 41 else: 42 element = widget.getElement() 43 widget.setParent(None) 44 parentElement = DOM.getParent(element) 45 if parentElement: 46 DOM.removeChild(parentElement, element)
47
48 - def adopt(self, widget, container):
49 if container: 50 widget.removeFromParent() 51 DOM.appendChild(container, widget.getElement()) 52 widget.setParent(self)
53
54 - def remove(self, widget):
55 pass
56
57 - def doAttachChildren(self):
58 for child in self: 59 child.onAttach()
60
61 - def doDetachChildren(self):
62 for child in self: 63 child.onDetach()
64
65 - def __iter__(self):
66 return self.children.__iter__()
67 68 Factory.registerClass('pyjamas.ui.Panel', Panel) 69