• Facebook
  • Twitter
  • Reddit
  • StumbleUpon
  • Digg
  • email

from Translator import *
import Object, StyleSheet, ValueList, PrimitiveValue, SelectorList
 
class SSSIncludeRule(Object.SSSObject):
 
    def __init__(self, rule = None):
 
        super(SSSIncludeRule, self).__init__()
 
        self._values = None
 
        self._parse_only = False
 
        # self._computed_selectors = SelectorList.SSSSelectorList('', self)
 
        if rule: self._parse(rule);
 
    def _parse(self, rule):
 
        matches = preg_match('@include\s*([^\;]*)\;?$', rule.strip())
 
        if matches:
 
            self._values = ValueList.SSSValueList(matches[0], self)
 
            for i in xrange(self._values.length):
 
                item = self._values.item(i)
 
                if item.valueType == PrimitiveValue.SSSPrimitiveValue.CSS_URI:
 
                    self.href = item.value
 
                if item.valueType == PrimitiveValue.SSSPrimitiveValue.CSS_STRING and item.value == 'parse-only':
 
                    self._parse_only = True
 
 
            # self._computed_selectors = SelectorList.SSSSelectorList( self.parentObject.get_computedSelector(), self)
 
 
 
    def getStyleRulesAsArray(self):
 
        return self._styleSheet.getStyleRulesAsArray()
 
 
    def getNonStyleRulesAsArray(self):
        return self._styleSheet.getNonStyleRulesAsArray()
 
    def get_computedSelectorAsArray(self):
 
        #return self._computed_selectors.selectors
        return self.parentObject.get_computedSelectorAsArray()
 
 
    def get_computedSelector(self):
 
        #return self._computed_selectors.selectorText
        return self.parentObject.get_computedSelector()
 
 
 
    def getPropertyCSSValue(self,val):
        return self._styleSheet.getPropertyCSSValue(val)
 
    def get_href(self):
        self._styleSheet.href
 
    def set_href(self, value):
        self._styleSheet = StyleSheet.SSSStyleSheet()
        self._styleSheet._setParentObject(self)
        self._styleSheet.href = value
    href = property(get_href, set_href)
 
    def set_cssText(self, rule):
        return self._parse(rule)
 
    def get_cssText(self):
        return self.__str__()
    cssText = property(get_cssText, set_cssText)
 
    def get_type(self):
        return Object.SSSObject.INCLUDE_RULE
    type = property(get_type)
 
    def __str__(self):
        string = self.createCommentText('@include ' + self._styleSheet.href) + '\n'
        if not self._parse_only:
            string += self._styleSheet.cssText
        return string