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)
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)
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)
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()
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 []