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

Source Code for Module pyjamas.ui.VerticalPanel

 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 CellPanel import CellPanel 
19  from pyjamas.ui import HasHorizontalAlignment 
20  from pyjamas.ui import HasVerticalAlignment 
21   
22 -class VerticalPanel(CellPanel):
23
24 - def __init__(self, **kwargs):
25 26 if not kwargs.has_key('Spacing'): kwargs['Spacing'] = 0 27 if not kwargs.has_key('Padding'): kwargs['Padding'] = 0 28 29 self.horzAlign = HasHorizontalAlignment.ALIGN_LEFT 30 self.vertAlign = HasVerticalAlignment.ALIGN_TOP 31 32 CellPanel.__init__(self, **kwargs)
33
34 - def add(self, widget):
35 self.insert(widget, self.getWidgetCount())
36
37 - def getHorizontalAlignment(self):
38 return self.horzAlign
39
40 - def getVerticalAlignment(self):
41 return self.vertAlign
42
43 - def setWidget(self, index, widget):
44 """Replace the widget at the given index with a new one""" 45 existing = self.getWidget(index) 46 if existing: 47 self.remove(existing) 48 self.insert(widget, index)
49
50 - def insert(self, widget, beforeIndex):
51 widget.removeFromParent() 52 53 tr = DOM.createTR() 54 td = DOM.createTD() 55 56 DOM.insertChild(self.getBody(), tr, beforeIndex) 57 DOM.appendChild(tr, td) 58 59 CellPanel.insert(self, widget, td, beforeIndex) 60 61 self.setCellHorizontalAlignment(widget, self.horzAlign) 62 self.setCellVerticalAlignment(widget, self.vertAlign)
63
64 - def remove(self, widget):
65 if isinstance(widget, int): 66 widget = self.getWidget(widget) 67 68 if widget.getParent() != self: 69 return False 70 71 td = DOM.getParent(widget.getElement()) 72 tr = DOM.getParent(td) 73 DOM.removeChild(self.getBody(), tr) 74 75 CellPanel.remove(self, widget) 76 return True
77
78 - def setHorizontalAlignment(self, align):
79 self.horzAlign = align
80
81 - def setVerticalAlignment(self, align):
82 self.vertAlign = align
83 84 Factory.registerClass('pyjamas.ui.VerticalPanel', VerticalPanel) 85