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

Source Code for Module pyjamas.ui.DeckPanel

 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   
16  from pyjamas import DOM 
17  from pyjamas import Factory 
18   
19  from pyjamas.ui.ComplexPanel import ComplexPanel 
20   
21 -class DeckPanel(ComplexPanel):
22 - def __init__(self, **kwargs):
23 self.visibleWidget = None 24 if kwargs.has_key('Element'): 25 element = kwargs.pop('Element') 26 else: 27 element = DOM.createDiv() 28 self.setElement(element) 29 ComplexPanel.__init__(self, **kwargs)
30
31 - def add(self, widget):
32 self.insert(widget, self.getWidgetCount())
33
34 - def getVisibleWidget(self):
35 return self.getWidgetIndex(self.visibleWidget)
36
37 - def insert(self, widget, beforeIndex=None):
38 if (beforeIndex < 0) or (beforeIndex > self.getWidgetCount()): 39 # throw new IndexOutOfBoundsException(); 40 return 41 42 ComplexPanel.insert(self, widget, self.getElement(), beforeIndex) 43 44 child = widget.getElement() 45 DOM.setStyleAttribute(child, "width", "100%") 46 DOM.setStyleAttribute(child, "height", "100%") 47 widget.setVisible(False)
48
49 - def remove(self, widget):
50 if isinstance(widget, int): 51 widget = self.getWidget(widget) 52 53 if not ComplexPanel.remove(self, widget): 54 return False 55 56 if self.visibleWidget == widget: 57 self.visibleWidget = None 58 59 return True
60
61 - def showWidget(self, index):
62 self.checkIndex(index) 63 64 if self.visibleWidget is not None: 65 self.visibleWidget.setVisible(False) 66 67 self.visibleWidget = self.getWidget(index) 68 self.visibleWidget.setVisible(True)
69
70 - def checkIndex(self, index):
71 if (index < 0) or (index >= self.getWidgetCount()): 72 # throw new IndexOutOfBoundsException(); 73 pass
74 75 Factory.registerClass('pyjamas.ui.DeckPanel', 'DeckPanel', DeckPanel) 76