ocarina/src/extra/gtknodes/node.py

70 lines
1.4 KiB
Python

#! /usr/bin/python
# To change this template, choose Tools | Templates
# and open the template in the editor.
__author__="bjschuma"
__date__ ="$May 16, 2010 10:27:25 PM$"
from ct.call import write
from gtknodes import make
class Node:
def __init__(self,elm):
write("Creating node: "+elm.nodeName, 2)
self.elm = elm
self.part = None
self.init2()
def __del__(self):
write("Deleting node: "+self.elm.nodeName, 2)
def init2(self):
self.name = self.elm.nodeName.lower()
self.attrs = dict()
self.children = self.getchildren()
def __setitem__(self,key,value):
self.attrs[str(key).lower()] = str(value).lower()
def __getitem__(self,key):
return self.attrs[str(key).lower()]
def keys(self):
return self.attrs.keys()
def show(self):
self.part.show()
def hide(self):
self.part.hide()
def setattrs(self):
if ("show" in self.keys()) == False:
self["show"] = "true"
self["viewport"] = "false"
if self.elm.hasAttributes() == True:
for i in range( self.elm.attributes.length ):
item = self.elm.attributes.item(i)
self[item.name.lower()] = item.nodeValue.lower()
if self["show"] == "true":
self.part.show()
def getchildren(self):
if self.elm.hasChildNodes() == False:
return []
children = []
for node in self.elm.childNodes:
if not node.nodeName[0] == "#":
child = self.make(node)
if child != None:
children += [child]
return children
def make(self,child):
return make(child)