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 pyjamas.ui.Panel import Panel 
19   
20 -class ComplexPanel(Panel):
21 """ 22 Superclass for widgets with multiple children. 23 """
24 - def add(self, widget, container=None):
25 if container is not None: 26 self.insert(widget, container, self.getWidgetCount()) 27 else: 28 self.insert(widget, self.getWidgetCount())
29
30 - def insert(self, widget, container, beforeIndex=None):
31 """ has two modes of operation: 32 widget, beforeIndex 33 widget, container, beforeIndex. 34 if beforeIndex argument is not given, the 1st mode is assumed. 35 this technique is less costly than using *args. 36 """ 37 if widget.getParent() == self: 38 return 39 40 if beforeIndex is None: 41 beforeIndex = container 42 container = self.getElement() 43 44 self.adopt(widget, container) 45 self.children.insert(beforeIndex, widget)
46
47 - def remove(self, widget):
48 if isinstance(widget, int): 49 widget = self.getWidget(widget) 50 if widget not in self.getChildren(): 51 return False 52 53 self.disown(widget) 54 self.getChildren().remove(widget) 55 56 return True
57 58 59 Factory.registerClass('pyjamas.ui.ComplexPanel', 'ComplexPanel', ComplexPanel) 60