Package helium :: Package output :: Module widgets
[hide private]
[frames] | no frames]

Source Code for Module helium.output.widgets

  1  #============================================================================  
  2  #Name        : widgets.py  
  3  #Part of     : Helium  
  4   
  5  #Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
  6  #All rights reserved. 
  7  #This component and the accompanying materials are made available 
  8  #under the terms of the License "Eclipse Public License v1.0" 
  9  #which accompanies this distribution, and is available 
 10  #at the URL "http://www.eclipse.org/legal/epl-v10.html". 
 11  # 
 12  #Initial Contributors: 
 13  #Nokia Corporation - initial contribution. 
 14  # 
 15  #Contributors: 
 16  # 
 17  #Description: 
 18  #=============================================================================== 
 19   
 20   
 21  # pylint: disable-msg=E1101 
 22   
 23  import xml.dom.minidom 
24 -class Widget:
25 - def __init__(self):
26 pass
27
28 - def getDOMContainer(self):
29 pass
30 31
32 -class Box(Widget):
33 - def __init__(self, doc, container, divId = "mb", divClass = "mc"):
34 Widget.__init__(self) 35 d1 = doc.createElementNS("", "div") 36 d1.setAttributeNS("", "id", divId) 37 container.appendChild(d1) 38 mc = doc.createElementNS("", "div") 39 mc.setAttributeNS("", "class", divClass) 40 d1.appendChild(mc) 41 self.__doc = doc 42 self.__title = None 43 self.__mc = mc
44
45 - def setTitle(self, title=""):
46 if self.__title == None: 47 t = self.__doc.createElementNS("", "h1") 48 self.__mc.insertBefore(t, self.__mc.firstChild) 49 self.__title = self.__doc.createTextNode(title) 50 t.appendChild(self.__title) 51 self.__title.data = title
52
53 - def getDOMContainer(self):
54 return self.__mc
55
56 -class Summary(Box):
57 - def __init__(self, doc, container):
58 Box.__init__(self, doc, container, divId = "s_mb", divClass = "s_mc") 59 self.__table = doc.createElementNS("", "table") 60 self.__table.setAttributeNS("", "cellspacing", "0") 61 self.__table.setAttributeNS("", "cellpadding", "0") 62 self.__table.setAttributeNS("", "border", "0") 63 self.__table.setAttributeNS("", "width", "100%") 64 self.__table.appendChild(self._Box__doc.createTextNode("")) 65 div = self._Box__doc.createElementNS("", "div") 66 div.setAttributeNS("", "class", "t_wrapper") 67 div.appendChild(self.__table) 68 self.getDOMContainer().appendChild(div) 69 self.__table_stat = None 70 self.setTitle()
71 72
73 - def addElement(self, tag, value):
74 row = self._Box__doc.createElementNS("", "tr") 75 #Tag 76 td = self._Box__doc.createElementNS("", "td") 77 td.setAttributeNS("", "valign", "top") 78 td.setAttributeNS("", "nowrap", "nowrap") 79 div = self._Box__doc.createElementNS("", "div") 80 div.setAttributeNS("", "class", "s_tag") 81 div.appendChild(self._Box__doc.createTextNode(tag)) 82 td.appendChild(div) 83 row.appendChild(td) 84 85 # Value 86 td = self._Box__doc.createElementNS("", "td") 87 td.setAttributeNS("", "width", "100%") 88 div = self._Box__doc.createElementNS("", "div") 89 div.setAttributeNS("", "class", "s_val") 90 div.appendChild(self._Box__doc.createTextNode(value)) 91 td.appendChild(div) 92 row.appendChild(td) 93 94 self.__table.appendChild(row)
95
96 - def addStatistics(self, type, value):
97 if self.__table_stat == None: 98 h1 = self._Box__doc.createElementNS("", "h1") 99 h1.appendChild(self._Box__doc.createTextNode("Global Statistics")) 100 self.getDOMContainer().appendChild(h1) 101 102 div = self._Box__doc.createElementNS("", "div") 103 div.setAttributeNS("", "class", "t_wrapper") 104 self.getDOMContainer().appendChild(div) 105 self.__table_stat = self._Box__doc.createElementNS("", "table") 106 self.__table_stat.setAttributeNS("", "cellspacing", "0") 107 self.__table_stat.setAttributeNS("", "cellpadding", "0") 108 self.__table_stat.setAttributeNS("", "border", "0") 109 self.__table_stat.setAttributeNS("", "width", "100%") 110 div.appendChild(self.__table_stat) 111 112 row = self._Box__doc.createElementNS("", "tr") 113 self.__table_stat.appendChild(row) 114 self.__table_stat = row 115 116 td = self._Box__doc.createElementNS("", "td") 117 div = self._Box__doc.createElementNS("", "div") 118 div.setAttributeNS("", "class", "gbl_cnt_" + type) 119 div.appendChild(self._Box__doc.createTextNode("%d %ss" % (value, type))) 120 td.appendChild(div) 121 self.__table_stat.appendChild(td)
122 123 124
125 -class Event(Widget):
126 - def __init__(self, doc, container, id):
127 Widget.__init__(self) 128 self.__doc = doc 129 node_head = doc.createElementNS("", "div") 130 node_head.setAttributeNS("", "class", "node_head") 131 container.appendChild(node_head) 132 133 link = doc.createElementNS("", "a") 134 link.setAttributeNS("", "href", "javascript:ToggleNode('Img%d')" % id) 135 node_head.appendChild(link) 136 137 span = doc.createElementNS("", "span") 138 span.setAttributeNS("", "id", "Img%d" % id) 139 span.setAttributeNS("", "style", "background:url(http://fawww.europe.nokia.com/isis/isis_interface/img/icons/button_open.gif) no-repeat") 140 link.appendChild(span) 141 142 stitle = doc.createElementNS("", "span") 143 stitle.setAttributeNS("", "class", "node_title") 144 self.__title = doc.createTextNode("") 145 stitle.appendChild(self.__title) 146 span.appendChild(stitle) 147 148 # shaow all 149 showall = doc.createElementNS("", "a") 150 showall.setAttributeNS("", "href", "javascript:ShowChilds('Img%d')" % id) 151 span = doc.createElementNS("", "span") 152 span.setAttributeNS("", "class", "node_action") 153 span.appendChild(doc.createTextNode("[Show All]")) 154 showall.appendChild(span) 155 156 #hide all 157 hideall = doc.createElementNS("", "a") 158 hideall.setAttributeNS("", "href", "javascript:HideChilds('Img%d')" % id) 159 span = doc.createElementNS("", "span") 160 span.setAttributeNS("", "class", "node_action") 161 span.appendChild(doc.createTextNode("[Hide All]")) 162 hideall.appendChild(span) 163 164 #toggle node 165 self.__togglenode = doc.createElementNS("", "a") 166 self.__togglenode.setAttributeNS("", "href", "javascript:ToggleNode('Img%d')" % id) 167 self.__togglenode.appendChild(doc.createTextNode("")) 168 # append container 169 node_head.appendChild(showall) 170 node_head.appendChild(hideall) 171 node_head.appendChild(self.__togglenode) 172 173 contentx = doc.createElementNS("", "div") 174 contentx.setAttributeNS("", "id", "Content%d" % id) 175 contentx.setAttributeNS("", "style", "display:none") 176 container.appendChild(contentx) 177 content = doc.createElementNS("", "div") 178 content.setAttributeNS("", 'class', "node_content") 179 content.appendChild(doc.createTextNode("")) 180 contentx.appendChild(content) 181 self.__container = content 182 self.__node_info = None
183
184 - def setTitle(self, title = ""):
185 self.__title.data = title
186
187 - def addStatistics(self, type, value):
188 if self.__node_info == None: 189 self.__node_info = self.__doc.createElementNS("", "span") 190 self.__node_info.setAttributeNS("", "class", "node_info") 191 self.__togglenode.appendChild(self.__node_info) 192 span = self.__doc.createElementNS("", "span") 193 span.setAttributeNS("", "class","cnt_%s" % type) 194 span.appendChild(self.__doc.createTextNode("%d %ss" % (value, type))) 195 self.__node_info.appendChild(span)
196 #<span class="node_info"> 197 # <span class="cnt_warning">2 warnings</span> 198 #</span> 199
200 - def getDOMContainer(self):
201 return self.__container
202 203
204 -class Header(Widget):
205 - def __init__(self, doc, container):
206 Widget.__init__(self) 207 self.__doc = doc 208 h_wrapper = self.__doc.createElementNS("", "div") 209 h_wrapper.setAttributeNS("", "id", "h_wrapper") 210 h_elmt = self.__doc.createElementNS("", "div") 211 h_elmt.setAttributeNS("", "class", "h_elmt") 212 h_wrapper.appendChild(h_elmt) 213 container.appendChild(h_wrapper) 214 #title 215 t = self.__doc.createElementNS("", "div") 216 self.__title = doc.createTextNode("") 217 t.appendChild(self.__title) 218 t.setAttributeNS("", "class", "h_title") 219 h_elmt.appendChild(t) 220 #subtitle 221 t = self.__doc.createElementNS("", "div") 222 self.__subtitle = doc.createTextNode("") 223 t.appendChild(self.__subtitle) 224 t.setAttributeNS("", "class", "h_subtitle") 225 h_elmt.appendChild(t)
226 227 228
229 - def setTitle(self, title):
230 self.__title.data = title
231
232 - def setSubTitle(self, title):
233 self.__subtitle.data = title 234
235 - def getDOMContainer(self):
236 return None
237 263
264 - def setSubTitle(self, title):
265 self.__subtitle.data = title 266
267 -class Text(Widget):
268 - def __init__(self, doc, container):
269 Widget.__init__(self) 270 self.__doc = doc 271 self.__div = self.__doc.createElementNS("", "div") 272 self.__div.setAttributeNS("", "class", "icn_dft") 273 container.appendChild(self.__div)
274
275 - def setIcon(self, name):
276 self.__div.setAttributeNS("", "class", name)
277
278 - def appendText(self, text):
279 def pushContent(arg): 280 self.getDOMContainer().appendChild(self.__doc.createTextNode(arg)) 281 self.getDOMContainer().appendChild(self.__doc.createElementNS("","br"))
282 map(pushContent, text.strip().split("\n")) 283
284 - def getDOMContainer(self):
285 return self.__div
286
287 -class RawText(Text):
288 - def appendText(self, text):
289 for child in xml.dom.minidom.parseString("<xhtml>" + text.strip() + "</xhtml>").documentElement.childNodes: 290 self.getDOMContainer().appendChild(child.cloneNode(True))
291
292 -class BoldText(Text):
293 - def __init__(self, doc, container):
294 Text.__init__(self, doc, container) 295 self.__bold = doc.createElementNS("","b") 296 self._Text__div.appendChild(self.__bold)
297
298 - def getDOMContainer(self):
299 return self.__bold
300