Ejemplo n.º 1
0
    def __init__(self, deviceClass):
        '''Args:
                 deviceClass: a DeviceClass instance that contains components
        '''
        super(ComponentJS, self).__init__(deviceClass.zenpack)
        self.deviceClass = deviceClass
        self.zenpack = self.deviceClass.zenpack
        self.zPythonClass = self.deviceClass.zPythonClass

        self.source_template = 'component.js.tmpl'
        self.dest_file = "%s/resources/js/%s.js" % (zpDir(self.zenpack), self.name)
Ejemplo n.º 2
0
 def __init__(self, zenpack):
     '''Args:
              zenpack: ZenPack Class instance
     '''
     super(Configure, self).__init__(zenpack)
     self.source_template = 'configure.zcml.tmpl'
     self.dest_file = "%s/%s" % (zpDir(zenpack), 'configure.zcml')
     self.zenpack = zenpack
     self.components = zenpack.components
     self.deviceClasses = zenpack.deviceClasses
     self.componentJSs = zenpack.componentJSs
Ejemplo n.º 3
0
 def __init__(self, zenpack):
     self.zenpack = zenpack
     super(UtilsTemplate, self).__init__(zenpack)
     self.source_template = 'utils.tmpl'
     self.dest_file = "%s/%s" % (zpDir(zenpack), 'utils.py')
Ejemplo n.º 4
0
    def __init__(self, ZenPack):
        super(ZenPackUI, self).__init__(ZenPack)
        self.zenpack = ZenPack

        self.source_template = 'zenpackjs.tmpl'
        self.dest_file = "%s/resources/js/%s.js" % (zpDir(self.zenpack), self.zenpack.id)
Ejemplo n.º 5
0
 def __init__(self, zenpack):
     self.zenpack = zenpack
     self.devChildren = None
     super(RootInit, self).__init__(zenpack)
     self.source_template = 'root_init.tmpl'
     self.dest_file = "%s/%s" % (zpDir(zenpack), '__init__.py')
Ejemplo n.º 6
0
    def __init__(self,
                 zenpack,
                 name,
                 klasses=None,
                 imports=None,
                 names=None,
                 meta_type=None,
                 device=False,
                 namespace=None,
                 panelSort='name',
                 panelSortDirection='asc',
                 properties=None,
                 componentTypes=None
                 ):
        '''Args:
                 name: Component Name
                 names: Plural form of the Component Name [None]
                 zenpack: ZenPack class instance
                 klasses: list of base classes for this component [None]
                 imports: list of imports for this component [None]
                 meta_type: the component meta_type
                 device: Device Component is True or False [False]
                 namespace: python search namespace [None]
                            This will default to the zenpack id
                 panelSort: the default property to sort by
                 panelSortDirection: Direction to sort either 'asc' or 'dsc'
                 properties: an array of dictionaries of property information which will
                             create property objects
                 componentTypes: an array of dictionaries of component information which will
                             create componentType objects

        '''

        super(Component, self).__init__(zenpack)
        self.source_template = 'component.tmpl'

        self.name = name.split('.')[-1]
        self.names = names
        self.klass = self.name

        self.zenpack = zenpack
        self.id = KlassExpand(self.zenpack, name)

        self.device = device
        self.panelSort = panelSort
        self.panelSortDirection = panelSortDirection

        if not imports:
            if not device:
                self.imports = Defaults().component_imports
            else:
                self.imports = Defaults().device_imports
        elif isinstance(imports, basestring):
            self.imports = [imports]
        else:
            # Copy the input array, don't hang on to a reference.
            self.imports = list(imports)

        if namespace:
            self.namespace = namespace
        else:
            self.namespace = self.zenpack.namespace

        self.shortklass = self.id.split('.')[-1]
        self.relname = self.shortklass.lower()
        self.relnames = plural(self.relname)
        self.unique_name = meta_type

        self.dest_file = "%s/%s.py" % (zpDir(zenpack), self.unique_name)

        if not klasses:
            if not device:
                self.klasses = Defaults().component_classes
            else:
                self.klasses = Defaults().device_classes
        # Copy the input array, don't hang on to a reference.
        elif isinstance(klasses, basestring):
            self.klasses = [klasses]
        else:
            self.klasses = list(klasses)

        self.properties = {}

        self.components = {}
        self.zenpack.registerComponent(self)
        Component.components[self.id] = self

        #Dict loading
        if properties:
            for p in properties:
                self.addProperty(**p)

        #Dict loading
        if componentTypes:
            for component in componentTypes:
                self.addComponentType(**component)
        
        self.updateComponents = {}