Infer object name from 'name' property
[gregoa/zavai.git] / zavai / registry.py
index 86198fd1ecccbcd8a7514122045bdeec735b1752..4af413c83e9e02c9dd4a313ece374d507c70de67 100644 (file)
@@ -47,11 +47,14 @@ class Registry(object):
         self.objects = dict()
         self.labels = dict()
 
-    def register(self, name, obj):
+    def register(self, obj, name=None):
         """Register an object at the given path.
 
         Name the path to this object, like "menu.gps.monitor".
         """
+        if name is None:
+            name = obj.props.name
+
         if name in self.objects:
             return KeyError("%s is already registered", name)
         zavai.info("Registering", name)
@@ -60,7 +63,7 @@ class Registry(object):
         if name.startswith("menu."):
             self.add_to_menu(name)
 
-    def register_factory(self, name, fac, label = None):
+    def register_factory(self, fac, name, label = None):
         """Register an object factory at the given path.
 
         Name the path to this object, like "menu.gps.monitor".
@@ -129,7 +132,7 @@ class Registry(object):
                 parent = get_parent(name)
 
             res = zavai.Menu(self, name, parent)
-            self.register(name, res)
+            self.register(res, name)
         return res
 
     def shutdown(self):