X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkFactory.cxx;h=0339fa70fe29982d4d54039f8b362e88c9e47050;hb=ddbf713a6bf02c1d7fc75a370ec11f2b87cfe20d;hp=849ebabfc3f4f84c2403206ea7303c09d8020ba6;hpb=2d76cd309d74d5f83d701d6bb0a4140d5d122b36;p=bbtk.git diff --git a/kernel/src/bbtkFactory.cxx b/kernel/src/bbtkFactory.cxx index 849ebab..0339fa7 100644 --- a/kernel/src/bbtkFactory.cxx +++ b/kernel/src/bbtkFactory.cxx @@ -4,8 +4,8 @@ Program: bbtk Module: $RCSfile: bbtkFactory.cxx,v $ Language: C++ -Date: $Date: 2008/01/30 09:28:15 $ -Version: $Revision: 1.7 $ +Date: $Date: 2008/02/04 13:51:30 $ +Version: $Revision: 1.10 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de @@ -35,6 +35,7 @@ PURPOSE. See the above copyright notices for more information. #include // for getcwd #endif +#include // std::toupper // was in gdcm ... /* @@ -237,7 +238,8 @@ namespace bbtk <GetVersion() <<" (bbtk " <GetBBTKVersion()<<") " - <GetAuthor() + <GetAuthor() << " Keyword(s) :" + <GetKeyword() <GetDescription()<first<<" "); + if (i->second.mPackage->GetVersion().length()>0) bbtkMessageCont("Help",1,"v" <second.mPackage->GetVersion()); + if (i->second.mPackage->GetAuthor().length()>0) bbtkMessageCont("Help",1,"- "<second.mPackage->GetAuthor()); + + if (i->second.mPackage->GetKeyword().length()>0) + bbtkMessageCont("Help",1,"- "<second.mPackage->GetKeyword()); + bbtkMessageCont("Help",1,std::endl); bbtkIncTab("Help",1); bbtkMessage("Help",1,i->second.mPackage->GetDescription()<"); } } + + + + + void Factory::CreateHtmlIndex(IndexEntryType type, + const std::string& filename) + { + bbtkDebugMessageInc("Core",9,"Factory::CreateHtmlIndex(\"" + < > IndexType; + IndexType index; + // Builds the index map + PackageMapType::const_iterator i; + for (i = mPackageMap.begin(); i!=mPackageMap.end(); ++i ) + { + Package* pack = i->second.mPackage; + if (pack->GetName()=="user") continue; + Package::BlackBoxMapType::const_iterator j; + for (j = pack->GetBlackBoxMap().begin(); + j!= pack->GetBlackBoxMap().end(); + ++j) + { + + std::vector keys; + if (type==Packages) + { + keys.push_back(pack->GetName()); + title = "Index by packages"; + } + else if (type==Initials) + { + std::string init(" "); + init[0] = std::toupper(j->second->GetTypeName()[0]); + keys.push_back(init); + title = "Alphabetical index"; + } + else if (type==Keywords) + { + // Split the keyword string + //std::vector keywords; + std::string delimiters = ";,"; + Utilities::SplitString(j->second->GetKeyword(), + delimiters,keys); + //std::vector::iterator si; + //for (si=keywords.begin();si!=keywords.end;++si) + // { + // keys.push_back(*si); + // } + title = "Index by keywords"; + } + + std::vector::const_iterator k; + for (k=keys.begin(); k!=keys.end(); ++k ) + { + IndexType::iterator p; + p = index.find(*k); + if (p != index.end()) + { + p->second.push_back(j->second); + } + else + { + std::vector v; + v.push_back(j->second); + index[*k] = v; + } + } + + } + } + // Creates the file + //--------------------- + // Open output file + std::ofstream s; + s.open(filename.c_str()); + if (!s.good()) + { + bbtkError("Factory::CreateHtmlIndex : could not open file '" + <\n"; + s << "\n"; + s << ""<<title<<"\n"; + s << "\n"; + s << "\n"; + s << "\n"; + s << "\n"; + // + s << "\n"; + s << "\n"; + //---------------------- + + //---------------------- + // Html body + s << "\n"; + s << "

"<\n"; + + IndexType::iterator ii; + for (ii=index.begin();ii!=index.end();++ii) + { + s << "

"<first<<"\n"; + s << "

    \n"; + + s << "

    \n"; + + std::vector::iterator di; + for (di=ii->second.begin();di!=ii->second.end();++di) + { + std::string pack = (*di)->GetPackage()->GetName(); + std::string name = (*di)->GetTypeName(); + std::string descr = (*di)->GetDescription(); + s << ""; + s << " "; + s << " "; + s << "\n"; + } + s << "
    "; + s << "
  • " + <"; + s << "
  • " << descr << "
    \n"; + s << "

\n"; + s << "\n"; + } + //---------------------- + // Footer + time_t rawtime; + tm * ptm; + time ( &rawtime ); + ptm = gmtime ( &rawtime ); + + s << "


\n"; + s << "Automatically generated by bbi on " + << ptm->tm_mday << "/" << ptm->tm_mon << "/" << ptm->tm_year+1900 + << " - " << ptm->tm_hour << ":" << ptm->tm_min << " GMT\n"; + s << "\n"; + s.close(); + //---------------------- + + // End + bbtkDebugDecTab("Core",9); + } + }