Exemplo n.º 1
0
class UI(BasePlugin):
    """
    The root UI object, one per session
    """
    def __init__(self):
        self.inflater = Inflater(self)

    def create(self, typeid, *args, **kwargs):
        """
        Creates an element by its type ID.
        """
        cls = self.get_class(typeid)
        inst = cls.new(self, context=self.context, *args, **kwargs)
        inst.typeid = typeid
        return inst

    def get_class(self, typeid):
        """
        :returns: element class by element type ID
        """
        for cls in UIElement.get_classes():
            if cls.typeid == typeid:
                return cls
        else:
            return UIElement

    def inflate(self, layout):
        """
        :returns: an inflated element tree of the given layout XML name
        """
        return self.inflater.inflate(layout)

    def render(self):
        """
        Renders the UI into JSON
        """
        return self.root.render()

    def find(self, id):
        """
        :returns: nearest element with given ID
        """
        return self.root.find(id)

    def find_uid(self, uid):
        """
        :returns: nearest element with given unique ID
        """
        return self.root.find_uid(uid)

    def dispatch_event(self, uid, event, params=None):
        """
        Dispatches an event to an element with given UID
        """
        self.root.dispatch_event(uid, event, params)

    def has_updates(self):
        """
        Checks for pending UI updates
        """
        return self.root.has_updates()

    def clear_updates(self):
        """
        Marks all pending updates as processed
        """
        return self.root.clear_updates()
Exemplo n.º 2
0
 def init(self):
     self.inflater = Inflater.get(manager.context)
Exemplo n.º 3
0
 def __init__(self):
     self.inflater = Inflater(self)
Exemplo n.º 4
0
 def init(self):
     self.inflater = Inflater.get()
Exemplo n.º 5
0
 def init(self):
     self.inflater = Inflater.get(manager.context)
Exemplo n.º 6
0
class UI (BasePlugin):
    """
    The root UI object, one per session
    """

    def __init__(self):
        self.inflater = Inflater(self)

    def create(self, typeid, *args, **kwargs):
        """
        Creates an element by its type ID.
        """
        cls = self.get_class(typeid)
        inst = cls.new(self, context=self.context, *args, **kwargs)
        inst.typeid = typeid
        return inst

    def get_class(self, typeid):
        """
        :returns: element class by element type ID
        """
        for cls in UIElement.get_classes():
            if cls.typeid == typeid:
                return cls
        else:
            return UIElement

    def inflate(self, layout):
        """
        :returns: an inflated element tree of the given layout XML name
        """
        return self.inflater.inflate(layout)

    def render(self):
        """
        Renders the UI into JSON
        """
        return self.root.render()

    def find(self, id):
        """
        :returns: nearest element with given ID
        """
        return self.root.find(id)

    def find_uid(self, uid):
        """
        :returns: nearest element with given unique ID
        """
        return self.root.find_uid(uid)

    def dispatch_event(self, uid, event, params=None):
        """
        Dispatches an event to an element with given UID
        """
        self.root.dispatch_event(uid, event, params)

    def has_updates(self):
        """
        Checks for pending UI updates
        """
        return self.root.has_updates()

    def clear_updates(self):
        """
        Marks all pending updates as processed
        """
        return self.root.clear_updates()
Exemplo n.º 7
0
 def __init__(self):
     self.inflater = Inflater(self)