Example #1
0
class ExtComponent(object):
    class_name = "Ext.Component"
    defaults = {
        'layout': 'fit'
    }

    items = None

    def __init__(self, as_class=False, name="", **kwargs):
        """
        Inits component params as OrderedDict and make sure that items list will allways be outputed last
        for better readability of json

        :param kwargs: Dict of extjs component attributes
        """

        self.as_class = as_class
        self.name = name

        self.params = OrderedDict()
        self.items = kwargs.get("items")

        if self.items:
            del kwargs["items"]

        self.params.update(self.defaults)
        self.params.update(kwargs)

        if self.items:
            self.params["items"] = self.items

    def __str__(self):

        encoder = ExtComponentEncoder(ensure_ascii=False, indent=" " * 4)
        # 'DeJSONize' output by removing " around array keys
        str = dejsonize(encoder.encode(self.params))

        if self.as_class:
            return "Ext.define('%s', {\n    extend: '%s',%s});" % (self.name, self.class_name, str.strip("{}"))
        else:
            return str
Example #2
0
    def __init__(self, as_class=False, name="", **kwargs):
        """
        Inits component params as OrderedDict and make sure that items list will allways be outputed last
        for better readability of json

        :param kwargs: Dict of extjs component attributes
        """

        self.as_class = as_class
        self.name = name

        self.params = OrderedDict()
        self.items = kwargs.get("items")

        if self.items:
            del kwargs["items"]

        self.params.update(self.defaults)
        self.params.update(kwargs)

        if self.items:
            self.params["items"] = self.items