示例#1
0
 def getViewList(self, container):
     """Return an XML document that contains the children of an object."""
     subItems = []
     try:
         itemNav = INavigation(self.context)
         view_name = self.request.get('view', None)
         if itemNav is not None and view_name is not None:
             objList = itemNav.getViewObjList(view_name)
             #print "ooooooooooooooo: ", objList
         #print "ddd4: ", objList
         for obj in objList:
             (xml_title, name, item_ppath, iklen,
              stateIconUrl, stateValue,
              stateOverview, additionalAttributes) = \
                 self.getCollectionAttributes(obj)
             subItems.append(
                 xmlEscapeWithCData(
                     u'<collection title=%s name=%s iklen=%s rem="2.1.1.2.1" '
                     u'icon_url=%s isopen="" expable="" state_url=%s path=%s '
                     u'state_val=%s>%s</collection>', xml_title, name,
                     iklen, stateIconUrl, stateIconUrl, u'/' + item_ppath,
                     stateOverview, 'result'))
         #for obj in objList:
     except TypeError:
         pass
     return u' '.join(subItems)
示例#2
0
    def singleBranchTree(self, root=''):
        #print "singleBranchTree"
        result = ''
        oldItem = self.context
        # -----------------------------------
        subItems = []
        try:
            oldItemNav = INavigation(oldItem)
            objList = oldItemNav.getContextObjList()
            #print "ddd4: ", objList
            for obj in objList:
                if type(obj) is tuple:  # obj is a special view
                    #print "uuuuu: ", obj
                    (navView, viewTitle, contextObj) = obj
                    (xml_title, name, item_ppath, iklen,
                     stateIconUrl, stateValue,
                     stateOverview, additionalAttributes) = \
                        self.getCollectionAttributes(contextObj)
                    subItems.append(
                        xmlEscapeWithCData(
                            u'<collection title=%s name=%s iklen=%s rem="2.1.1.2" '
                            u'icon_url=%s expable="" navparam=%s state_url=%s path=%s '
                            u'>%s</collection>', viewTitle, item_ppath + name,
                            '1', 'generic',
                            xmlEscapeWithCData('view=%s', navView), 'generic',
                            '/', 'result'))
#                    subItems.append(xmlEscapeWithCData(
#                        u'<collection title=%s name=%s iklen=%s rem="2.1.1.2" '
#                        u'icon_url=%s expable="" state_url=%s path=%s '
#                        u'>%s</collection>',
#                        viewTitle, 'Interfaces/15eaa7b86bf9ec0217f9b6d0fe084fd1b', '1', '',
#                        'stateIconUrl', '/',
#                        'result'))
                else:
                    (xml_title, name, item_ppath, iklen,
                     stateIconUrl, stateValue,
                     stateOverview, additionalAttributes) = \
                        self.getCollectionAttributes(obj)
                    subItems.append(
                        xmlEscapeWithCData(
                            u'<collection title=%s name=%s iklen=%s rem="2.1.1.2" '
                            u'icon_url=%s isopen="" expable="" state_url=%s path=%s '
                            u'state_val=%s>%s</collection>', xml_title, name,
                            iklen, stateIconUrl, stateIconUrl, item_ppath,
                            stateOverview, result))
#            try:
#                subItems.append(xmlEscapeWithCData(
#                    u'<collection title=%s name=%s iklen=%s rem="2.1.1.2" '
#                    u'icon_url=%s expable="" state_url=%s path=%s '
#                    u'>%s</collection>',
#                    'Addresses2', 'Interfaces/15eaa7b86bf9ec0217f9b6d0fe084fd1b', '1', '',
#                    'stateIconUrl', '/',
#                    'result'))
#            except Exception, errText:
#                print "errText: ", errText
#            subItems.append('<collection title="Addresses" name="Addresses" iklen="1" icon_url="" rem="1.1.2" state_url="generic" expable="" path="/"/>')
        except TypeError, errText:
            print "lange Nase gezogen: ", errText
            return self.singleBranchTree2(root)
示例#3
0
 def traverse4DotGeneratorBody(self,
                               cfgFile,
                               level=0,
                               comments=True,
                               request=None,
                               alreadySeenList=None):
     """graphviz configuration data of object
     """
     if comments:
         print >> cfgFile, "%s// Body (%s,%d) - RptDot" \
               % ("\t" * level, self.context, level)
     dot_str = '%s"%s" [' % ("\t" * level, self.context.objectID)
     dot_str += 'shape="diamond", '
     dot_str += 'label=<%s>,' % (self.context.ikName)
     dot_str += 'fontsize=10.0,'
     dot_str += 'fonttype="Sans"'
     if request:
         dot_str += ', \nURL="%s"' % zapi.absoluteURL(self.context, request)
     dot_str += '];'
     print >> cfgFile, dot_str
     if alreadySeenList == None:
         alreadySeenList = []
     alreadySeenList.append(self.context)
     itemNav = INavigation(self.context)
     tuplelist = itemNav.getContextObjList()
     for (attrName, viewTitle, contextObj) in tuplelist:
         if attrName is not None and viewTitle is not None:
             if type(attrName) is not type("str"):
                 raise TypeError("Nav_tuple_wrong: %s" % type(attrName))
             objList = getattr(contextObj, attrName)
             if objList.__class__ != list:
                 objList = [objList]
             for obj in objList:
                 if obj not in alreadySeenList:
                     try:
                         adapterGenGraphvizDot = IGenGraphvizDot(obj)
                     except TypeError:
                         adapterGenGraphvizDot = None
                     if adapterGenGraphvizDot:
                         adapterGenGraphvizDot.setParent(self.context)
                         adapterGenGraphvizDot.traverse4DotGenerator(\
                             cfgFile,
                             level+1,
                             comments,
                             request,
                             alreadySeenList)
     self.manageEvaluations(self.context, cfgFile, level, request)
     if self.parent != None:
         print >> cfgFile, '%s"%s" -- "%s";' \
               % ("\t" * level, self.parent.objectID, self.context.objectID)
示例#4
0
 def asMindmapData(self, request=None):
     """ generate our raw mindmap data
     """
     itemNav = INavigation(self.context)
     objList = itemNav.getContextObjList()
     if itemNav is None:
         return u"""
                <map version="0.8.1">
                <node ID="0001" TEXT="Error" >
                </node>
                </map>
                """
     root_node = MMNode(self.context.objectID, self.context.ikName)
     root_node.add_nodes(self.recursiveHelper(objList, 10, request, {self.context:root_node}))
     root_node.add_nodes(self.manageEvaluations(self.context))
     return root_node.generate_map()
示例#5
0
 def recursiveHelper(self, tupleList, contextdepth, request=None, alreadySeenDict={}):
     if contextdepth > 0:
         contextdepth -= 1
         nodelist = []
         my_catalog = zapi.getUtility(ICatalog)
         for (attrName, viewTitle, contextObj) in tupleList:
             if attrName is not None and viewTitle is not None:
                 if type(attrName) is not type("str"):
                     raise TypeError("Nav_tuple_wrong: %s" % type(attrName))
                 objList = getattr(contextObj, attrName)
                 if type(objList) is not list:
                     objList = [objList]
                 for obj in objList:
                     node = None
                     if obj not in alreadySeenDict.keys():
                         if type(obj) is type("str") or type(obj) is type(u'ustr'):
                             continue
                             #try:
                                 #maybe_obj = my_catalog.searchResults(oid_index=obj)
                                 #if len(maybe_obj)>0:
                                     #maybe_obj = iter(maybe_obj).next()
                                     ##hope thats only one ...
                             #except:
                                 #pass
                             #if ischooltool.IRequirement.providedBy(maybe_obj):
                                     ##oh its a requiremnt
                                     ##objList.append(maybe_obj)
                                     
                                     #continue
                         if not hasattr(obj, "objectID"):
                             Oid = "tmp%s" % generateOid()
                             node = MMNode(Oid, obj)
                             alreadySeenDict[obj] = node
                             print "reursiveHelper %s" % obj
                         else:
                             try:
                                 node = MMNode(obj.objectID, obj.ikName, {"link": zapi.absoluteURL(obj, request), "node_type":"bubble"})
                             except:
                                 import pdb
                                 pdb.set_trace()
                             self.style_health(obj, node)
                             alreadySeenDict[obj] = node
                             #print "obj: %s" % obj.ikName
                             itemNav = INavigation(obj)
                             sublist = itemNav.getContextObjList()
                             from copy import copy
                             subnodes = self.recursiveHelper(sublist, copy(contextdepth), request, alreadySeenDict)
                             subnodes.extend(self.manageEvaluations(obj))
                             if len(subnodes) > 0:
                                 if self.cloudDisplay:
                                     node.change_style({"cloud_color":"#EFEFEF"})
                                 node.add_nodes(subnodes)
                     else:
                         #arrorw
                         #if not hasattr(obj, "objectID"):
                             #Oid = "tmp%s" % generateOid()
                             #alreadySeenDict[obj].connect_with_node_id(contextObj.objectID, {"COLOR": "#CBCBCB"})
                         #else:
                         alreadySeenDict[obj].connect_with_node_id(contextObj.objectID, {"COLOR": "#CBCBCB"})
                     if node is not None:
                         nodelist.append(node)
         return nodelist
     else:
         return []