95 lines
1.8 KiB
Python
95 lines
1.8 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 import call
|
|
#from ct.call import *
|
|
from gtknodes import make
|
|
|
|
|
|
class Node:
|
|
def __init__(self,elm):
|
|
call.write("Creating node: "+elm.nodeName, 2)
|
|
self.elm = elm
|
|
self.part = None
|
|
self.function = None
|
|
self.init2()
|
|
|
|
|
|
def __del__(self):
|
|
call.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"
|
|
if ("click" in self.keys()) == False:
|
|
self["click"] = "none"
|
|
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()
|
|
|
|
self.function = self["click"]
|
|
if self.part != None:
|
|
try:
|
|
self.part.connect("clicked", self.onclick)
|
|
except:
|
|
pass
|
|
if self["show"] == "true":
|
|
self.part.show()
|
|
|
|
|
|
def onclick(self,item):
|
|
if self.function!="none":
|
|
exec "call."+self.function+"()"
|
|
|
|
|
|
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) |