CMS 3D CMS Logo

Functions
DDHtmlFormatter.cc File Reference
#include "CLHEP/Units/GlobalSystemOfUnits.h"
#include "CLHEP/Units/SystemOfUnits.h"
#include "DetectorDescription/Core/interface/DDRotationMatrix.h"
#include "DetectorDescription/Core/interface/DDTranslation.h"
#include "DetectorDescription/Core/interface/Singleton.h"
#include "DetectorDescription/Core/interface/Singleton.icc"
#include "DetectorDescription/Core/interface/DDBase.h"
#include "DetectorDescription/Core/interface/DDEnums.h"
#include "DetectorDescription/Core/interface/DDLogicalPart.h"
#include "DetectorDescription/Core/interface/DDMaterial.h"
#include "DetectorDescription/Core/interface/DDName.h"
#include "DetectorDescription/Core/interface/DDPartSelection.h"
#include "DetectorDescription/Core/interface/DDSolid.h"
#include "DetectorDescription/Core/interface/DDSpecifics.h"
#include "DetectorDescription/Core/interface/DDTransform.h"
#include "DetectorDescription/Core/src/LogicalPart.h"
#include "DetectorDescription/Core/src/Material.h"
#include "DetectorDescription/Core/src/Specific.h"
#include "DetectorDescription/Core/src/Solid.h"
#include "DetectorDescription/RegressionTest/interface/DDErrorDetection.h"
#include "DetectorDescription/RegressionTest/interface/DDHtmlFormatter.h"
#include <fstream>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <sys/stat.h>
#include <utility>
#include <vector>

Go to the source code of this file.

Functions

void dd_html_frameset (ostream &os)
 
void dd_html_menu (ostream &os)
 
void dd_html_menu_frameset (ostream &os)
 
void dd_to_html (DDHtmlDetails &dtls)
 
ostream & operator<< (ostream &o, const DDHtmlFormatter &f)
 

Function Documentation

void dd_html_frameset ( ostream &  os)

Definition at line 372 of file DDHtmlFormatter.cc.

References f, DDHtmlFormatter::footer(), and DDHtmlFormatter::header().

373 {
375  os << f.header("DDD Reports");
376  os << "<frameset rows=\"50%,50%\"> " << endl
377  << " <frameset cols=\"50%,50%\">" << endl
378  << " <frame name=\"_ns\" src=\"ns.html\">" << endl
379  << " <frame name=\"_list\">" << endl
380  << " </frameset>" << endl
381  << " <frameset cols=\"50%,50%\">" << endl
382  << " <frame name=\"_details\">" << endl
383  << " <frame name=\"_popup\">" << endl
384  << " </frameset>" << endl
385  << "</frameset>" << endl
386  << endl;
387  os << f.footer();
388 
389 }
double f[11][100]
DDHtmlFormatter header(const std::string &text, const std::string &style="../../style.css")
DDHtmlFormatter footer()
void dd_html_menu ( ostream &  os)

Definition at line 404 of file DDHtmlFormatter.cc.

References f, DDHtmlFormatter::footer(), DDHtmlFormatter::h1(), DDHtmlFormatter::header(), DDHtmlFormatter::lnk(), and DDHtmlFormatter::p().

405 {
407  os << f.header("DDD Web Main Menu","style.css");
408  os << f.h1("Select a Category:")
409  << f.p(f.lnk("lp/index.html", "LogicalParts", "_selection"))
410  << f.p(f.lnk("ma/index.html", "Materials", "_selection"))
411  << f.p(f.lnk("so/index.html", "Solids", "_selection"))
412  << f.p(f.lnk("ro/index.html", "Rotations", "_selection"))
413  << f.p(f.lnk("sp/index.html", "SpecPars", "_selection"))
414  ;
415 
416  os << f.footer();
417 }
DDHtmlFormatter h1(const std::string &content)
DDHtmlFormatter p(const std::string &content)
double f[11][100]
DDHtmlFormatter header(const std::string &text, const std::string &style="../../style.css")
std::string lnk(const std::string &url, const std::string &text, const std::string &target="_self")
DDHtmlFormatter footer()
void dd_html_menu_frameset ( ostream &  os)

Definition at line 391 of file DDHtmlFormatter.cc.

References f, DDHtmlFormatter::footer(), and DDHtmlFormatter::header().

392 {
394  os << f.header("DDD Web Representation");
395  os << "<frameset cols=\"20%,80%\">" << endl
396  << " <frame name=\"_menu\" src=\"menu.html\">" << endl
397  << " <frame name=\"_selection\" >" << endl
398  << "</frameset>" << endl;
399 
400  os << f.footer();
401 }
double f[11][100]
DDHtmlFormatter header(const std::string &text, const std::string &style="../../style.css")
DDHtmlFormatter footer()
void dd_to_html ( DDHtmlDetails dtls)

Definition at line 300 of file DDHtmlFormatter.cc.

References DDHtmlDetails::category(), gather_cfg::cout, DDHtmlDetails::details(), dir, f, alignmentValidation::fname, eostools::mkdir(), DDHtmlDetails::names(), mps_fire::result, and DDHtmlDetails::text().

Referenced by DDHtmlSpDetails::DDHtmlSpDetails().

301 {
302  cout << "---> dd_to_html() called with category=" << dtls.category() << endl;
303  const string & category = dtls.category();
304  const string & text = dtls.text();
305  ns_type & names = dtls.names();
306 
307  mkdir( category.c_str(), 0755 );
308 
309  // first the namespaces
310  string ns_fname = category + "/ns.html";
311  ofstream ns_file(ns_fname.c_str());
312  DDNsGenerator ns_gen(ns_file, text, "_list", names, "");
313  ns_gen.doit();
314  ns_file.close();
315 
316  // list all logical parts per namespace
317  ns_type::const_iterator it(names.begin()), ed(names.end());
318  for( ; it != ed; ++it ) {
319 
320  const string & ns = it->first;
321 
322  // create directories named like the namespaces
323  string dir = category + "/" + ns;
324  mkdir( dir.c_str(), 0755 );
325 
326  // create a html file listing all instances of a namespace
327  string fname = category + "/" + ns + "/list.html";
328  ofstream list_file(fname.c_str());
330  list_file << f.header(text)
331  << f.p("Instances in Namespace <b>" + ns + "</b><br>");
332  list_file << f.ul();
333  // loop over all instances of a single namespace
334  set<string>::const_iterator nit(it->second.begin()), ned(it->second.end());
335  for(; nit != ned; ++nit) {
336 
337  const string & nm = *nit;
338  string result_s = nm;
339 
340  // details for each instance
341  string d_fname = category + "/" + ns + "/" + nm + ".html";
342  ofstream detail_file(d_fname.c_str());
343  DDName an(nm,ns);
344  bool result = dtls.details(detail_file, an);
345 
346  if (!result) result_s = ">> ERROR: " + nm + " <<";
347  list_file << f.li(f.lnk(nm+".html", result_s, "_details"));
348 
349  }
350  list_file << f.ulEnd() << f.footer();
351  }
352 }
static const HistoName names[]
virtual bool details(std::ostream &os, const DDName &)=0
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:15
double f[11][100]
virtual ns_type & names()=0
const std::string & text()
string fname
main script
def mkdir(path)
Definition: eostools.py:250
const std::string & category()
dbl *** dir
Definition: mlp_gen.cc:35
std::map< std::string, std::set< std::string > > ns_type
ostream& operator<< ( ostream &  o,
const DDHtmlFormatter f 
)

Definition at line 34 of file DDHtmlFormatter.cc.

References connectstrParser::o, and DDHtmlFormatter::os_.

35 {
36  o << f.os_.str(); f.os_.str("");
37  return o;
38 }
std::stringstream os_