from Translator import *
import Declaration
import ValueList
class SSSProperty(Declaration.SSSDeclaration):
_name = ''
_value = ''
_sourceText = ''
def __init__(self, text = None):
addLogMessage(get_class(self) + ' creating SSSProperty.')
super(SSSProperty, self).__init__()
if text: self._parse(text)
def _parse(self, text):
addLogMessage('Property trying to parse: text = ' + text)
text = trim(text)
self._sourceText = text
ruleText = ''
#foreach(self._sourceText as i=>$char):
for i in xrange(len(self._sourceText)):
if (self._sourceText[i] == ';'):
self.appendDeclaration(ruleText)
return
ruleText += self._sourceText[i]
if (ruleText != ''): self.appendDeclaration(ruleText)
def appendDeclaration(self, declaration):
matches = preg_match(r'(.*)\:(.*);?', trim(declaration))
if (matches):
self._setName(trim(matches[0][0]))
self._setValue(trim(matches[0][1]))
def _setValue(self, value):
addLogMessage('SSSProperty _setValue: value = ' + value)
self._value = ValueList.SSSValueList(value, self)
def _setName(self, name):
self._name = name
def isVar(self):
return preg_match(r'^\$', self._name, get_class(self))
def get_name(self):
return self._name
name = property(get_name, _setName)
def get_value(self):
if (self._value):
return self._value.cssText
return ''
value = property(get_value, _setValue)
def get_cssText(self):
return self.__str__()
cssText = property(get_cssText, _parse)
def getVar(self, name):
#pdb.set_trace()
return self.parentObject.getVar(name)
def __str__(self):
if self._value:
string = self._name + ": " + self._value.cssText + ";"
if self._name:
matches = preg_match(r'\$', self._name)
if (matches):
string = self.createCommentText(string)
return string + "\n"
return ''