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
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