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

Source Code for Module pyjamas.ui.ComplexPanel

 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 Panel import Panel 
19   
20 -class ComplexPanel(Panel):
21 """ 22 Superclass for widgets with multiple children. 23 """
24 - def add(self, widget, container):
25 self.insert(widget, container, len(self.children))
26
27 - def getWidgetCount(self):
28 return len(self.children)
29
30 - def getWidget(self, index):
31 return self.children[index]
32
33 - def getWidgetIndex(self, child):
34 return self.children.index(child)
35
36 - def getChildren(self):
37 return self.children
38
39 - def insert(self, widget, container, beforeIndex):
40 if widget.getParent() == self: 41 return 42 43 self.adopt(widget, container) 44 self.children.insert(beforeIndex, widget)
45 46 # this code introduces an obscure IE6 bug that corrupts its DOM tree! 47 #widget.removeFromParent() 48 #self.children.insert(beforeIndex, widget) 49 #DOM.insertChild(container, widget.getElement(), beforeIndex) 50 #self.adopt(widget, container) 51
52 - def remove(self, widget):
53 if widget not in self.children: 54 return False 55 56 self.disown(widget) 57 #elem = self.getElement() 58 #DOM.removeChild(DOM.getParent(elem), elem) 59 self.children.remove(widget) 60 return True
61 62 Factory.registerClass('pyjamas.ui.ComplexPanel', ComplexPanel) 63