Пример #1
0
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;
  };
};
Пример #2
0
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;
};