vector<HTML *> HTMLGraph(T * parent) { vector<HTML*> result; bool border = true; typedef vector<T*> VEC; VEC V; parent->GetGraphChildren(V); VEC::const_iterator w = V.begin(), e = V.end(); HTML * child; HTML * aroot; while(w!=e) { child = *w; table = new HTMLTable(border); result.push_back(table); table->add(p->HTMLGraphNode(),1,1); vector<HTML *> L; child->GetGraphChildren(L); vector<HTML*>::const_iterator ww = L.begin(), ee = L.end(); if(ww!=ee) { HTMLTable * subtable = new HTMLTable(border); table->add(subtable,1,2); int i=1; while(ww!=ee) { subtable->add(*ww,1,i); ++ww;++i; }; }; ++w; }; };
vector<HTML*> print(const ColoredGraph<Vertex,Color> & x,const Vertex & v, set<Vertex> S) { vector<HTML*> result; bool border = true; HTMLTable * table = new HTMLTable(border); result.push_back(table); if(S.find(v)==S.end()) { table->add(x.HTMLFor(v),1,1); typedef map<Vertex,list<Vertex> >::const_iterator MI; MI w = x.childrenMap().find(v),e = x.childrenMap().end(); if(w!=e) { // has children const list<Vertex> & L = (*x.childrenMap().find(v)).second; typedef list<Vertex>::const_iterator LI; LI ww = L.begin(), ee = L.end(); if(ww!=ee) { HTMLTable * tab = new HTMLTable(border); table->add(tab,1,2); int i = 1; while(ww!=ee) { vector<HTML*> V = print(x,*ww,S); typedef vector<HTML*>::const_iterator VI; VI w2 = V.begin(), e2 = V.end(); while(w2!=e2) { tab->add(*w2,i,1); ++w2; }; ++ww;++i; }; }; }; // if(ww!=ee) } else { table->add(new HTMLVerbatim("Loop on"),1,1); table->add(x.HTMLFor(v),2,1); }; return result; };