[Checkins] SVN: Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/objectinfo.py * Integrate memberinfo into object info as they actually provide the

Uli Fouquet uli at gnufix.de
Fri Feb 12 18:05:25 EST 2010


Log message for revision 108959:
  * Integrate memberinfo into object info as they actually provide the
    same sort of info.
  
  * Turn ObjectInfo into a regular object in order to allow views for it.
  
  * Add adapter factory for ObjectInfo.
  

Changed:
  U   Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/objectinfo.py

-=-
Modified: Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/objectinfo.py
===================================================================
--- Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/objectinfo.py	2010-02-12 22:48:05 UTC (rev 108958)
+++ Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/objectinfo.py	2010-02-12 23:05:25 UTC (rev 108959)
@@ -9,16 +9,15 @@
 from ZODB.utils import p64, u64, tid_repr
 from grokui.zodbbrowser.interfaces import IObjectInfo
 
-class ObjectInfo(grok.Adapter):
+class ObjectInfo(object):
     """Infos about objects.
     """
-    grok.context(Interface)
-    grok.provides(IObjectInfo)
+    grok.implements(IObjectInfo)
     
-    def __init__(self, context, obj_name=None, parent_oid=None):
+    def __init__(self, context):
         self.obj = removeAllProxies(context)
-        self.name = obj_name
-        self.parent_oid = parent_oid
+        self.name = None
+        self.parent_oid = None
 
     def getOID(self):
         try:
@@ -28,7 +27,7 @@
         return None
 
     def getName(self):
-        return getattr(self.obj, '__name__', 'CH' + str(self.name))
+        return getattr(self.obj, '__name__', str(self.name))
     
     def getParent(self):
         return getattr(self.obj, '__parent__', None)
@@ -42,16 +41,14 @@
     
     def getMembers(self):
         result = []
+        oid = self.getOID()
         for name, obj in inspect.getmembers(self.obj):
-            result.append(MemberInfo(name, self.obj, obj))
+            member = IObjectInfo(obj)
+            member.name = name
+            member.parent_oid = oid
+            result.append(member)
         return result
 
-class MemberInfo(object):
-    def __init__(self, name, parent, obj):
-        self.name = name
-        self.parent = parent
-        self.obj = removeAllProxies(obj)
-
     @property
     def linkable(self):
         if self.oid is not None:
@@ -89,7 +86,6 @@
         descr = inspect.getdoc(self.obj)
         return descr
 
-
     @property
     def type_string(self):
         try:
@@ -107,3 +103,9 @@
             signature = u'(...)'
         
         return '%s%s' % (self.name, signature)
+
+ at grok.adapter(Interface)
+ at grok.implementer(IObjectInfo)
+def info_for_object(obj):
+    # Adapter factory for object infos.
+    return ObjectInfo(obj)



More information about the checkins mailing list