Changeset 442 for branches


Ignore:
Timestamp:
03/09/14 17:17:54 (6 years ago)
Author:
jls17
Message:

moved some code from CDocMain to CImageTable:

  • now CObjectTable could hold all rows in a json document
  • created new AddRowJson? method in CImageTable (and moved the code over from CDocMain)
  • removed unused CTable::SetHtmId? function and added GetHtmId? instead
  • the rootLevel is now placed in every webpage as a javascript variable
Location:
branches/work_304
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/work_304/doc/DocMain.cpp

    r440 r442  
    14951495                        if (bInsert) 
    14961496                        { 
     1497                                imgTable.AddRowJson(idx, rootLevel); 
    14971498                                objCount++; 
    14981499                        } 
     
    15141515                                        .AddScriptReference("img/jquery.address.min.js"); 
    15151516 
    1516                                 ImageListJson(strmTmp); 
    15171517                                strmTmp << CreateImageFilterControl() << endl; 
    15181518                        } 
     
    15231523 
    15241524                        strmTmp << ShortMenu(searchChar, file, objCountPerLetter); 
     1525                        strmTmp << imgTable; 
    15251526                         
    1526                         imgTable.SetDescription(strmTmp.str()); 
    1527                          
    1528                         webPage.AddContent(imgTable.Print()); 
     1527                        webPage.AddContent(strmTmp.str()); 
    15291528                        webPage.SaveInFolder(file->GetPath()); 
    15301529                } 
     
    15361535#endif // AR_CURRENT_API_VERSION >= AR_API_VERSION_750 
    15371536        return objCount; 
    1538 } 
    1539  
    1540 void CDocMain::ImageListJson(std::ostream &strm) 
    1541 { 
    1542         Document document; 
    1543         Document::AllocatorType &alloc = document.GetAllocator(); 
    1544         document.SetArray(); 
    1545  
    1546         unsigned int imageCount = this->pInside->imageList.GetCount(); 
    1547         for (unsigned int imageIndex = 0; imageIndex < imageCount; ++imageIndex) 
    1548         { 
    1549                 CARImage image(imageIndex); 
    1550                 CPageParams imageDetailPage(PAGE_DETAILS, &image); 
    1551  
    1552 #if AR_CURRENT_API_VERSION >= AR_API_VERSION_764 
    1553                 if (pInside->appConfig.bOverlaySupport && !IsVisibleObject(image)) 
    1554                         continue; 
    1555 #endif 
    1556  
    1557                 // create a new json row and make it an array 
    1558                 Value imageRow; 
    1559                 imageRow.SetArray(); 
    1560  
    1561                 // now build the needed temporary variables 
    1562                 string strName = image.GetName(); 
    1563                 string strModifiedDate = CUtil::DateTimeToString(image.GetTimestamp()); 
    1564                 string strLink = CWebUtil::GetRelativeURL(rootLevel, imageDetailPage); 
    1565  
    1566                 Value valName(strName.c_str(), static_cast<SizeType>(strName.size()), alloc); 
    1567                 Value valModifiedDate(strModifiedDate.c_str(), static_cast<SizeType>(strModifiedDate.size()), alloc); 
    1568                 Value valLink(strLink.c_str(), static_cast<SizeType>(strLink.size()), alloc); 
    1569  
    1570                 // add everything to the row 
    1571                 imageRow.PushBack(valName, alloc); 
    1572                 imageRow.PushBack(image.GetType(), alloc); 
    1573                 imageRow.PushBack(valModifiedDate, alloc); 
    1574                 imageRow.PushBack(image.GetLastChanged(), alloc); 
    1575                 imageRow.PushBack(valLink, alloc); 
    1576  
    1577                 // add the row to the document 
    1578                 document.PushBack(imageRow, alloc); 
    1579         } 
    1580  
    1581         GenericWriteStream output(strm); 
    1582         Writer<GenericWriteStream> writer(output); 
    1583  
    1584         strm << endl << "<script type=\"text/javascript\">" << endl; 
    1585         strm << "var imageList = "; document.Accept(writer); strm << ";"; 
    1586         strm << "var rootLevel = " << rootLevel << ";"; 
    1587         strm << endl; 
    1588         strm << "</script>" << endl;     
    15891537} 
    15901538 
  • branches/work_304/doc/DocMain.h

    r440 r442  
    8888        void MenuListJson(std::ostream &strm); 
    8989        void ContainerListJson(std::ostream &strm, int nType); 
    90         void ImageListJson(std::ostream &strm); 
    9190}; 
  • branches/work_304/output/ImageTable.cpp

    r133 r442  
    1919 
    2020using namespace OUTPUT; 
     21using namespace rapidjson; 
    2122 
    2223CImageTable::CImageTable(CARInside &arIn) 
     
    5455#endif // AR_CURRENT_API_VERSION >= AR_API_VERSION_750 
    5556} 
     57 
     58void CImageTable::AddRowJson(int imageIndex, int rootLevel) 
     59{ 
     60#if AR_CURRENT_API_VERSION >= AR_API_VERSION_750 
     61        CARImage image(imageIndex); 
     62        if (!image.Exists()) return; 
     63 
     64        CPageParams imageDetailPage(PAGE_DETAILS, &image); 
     65        Document::AllocatorType &alloc = doc.GetAllocator(); 
     66 
     67        Value imageRow; 
     68        imageRow.SetArray(); 
     69 
     70        // now build the needed temporary variables 
     71        string strName = image.GetName(); 
     72        string strModifiedDate = CUtil::DateTimeToString(image.GetTimestamp()); 
     73        string strLink = CWebUtil::GetRelativeURL(rootLevel, imageDetailPage); 
     74 
     75        Value valName(strName.c_str(), static_cast<SizeType>(strName.size()), alloc); 
     76        Value valModifiedDate(strModifiedDate.c_str(), static_cast<SizeType>(strModifiedDate.size()), alloc); 
     77        Value valLink(strLink.c_str(), static_cast<SizeType>(strLink.size()), alloc); 
     78 
     79        // add everything to the row 
     80        imageRow.PushBack(valName, alloc); 
     81        imageRow.PushBack(image.GetType(), alloc); 
     82        imageRow.PushBack(valModifiedDate, alloc); 
     83        imageRow.PushBack(image.GetLastChanged(), alloc); 
     84        imageRow.PushBack(valLink, alloc); 
     85 
     86        // add the row to the document 
     87        doc.PushBack(imageRow, alloc);   
     88#endif 
     89} 
  • branches/work_304/output/ImageTable.h

    r86 r442  
    2929 
    3030                void AddRow(int imageIndex, int rootLevel); 
     31                void AddRowJson(int imageIndex, int rootLevel); 
    3132        }; 
    3233} 
  • branches/work_304/output/ObjectTable.cpp

    r439 r442  
    1313// 
    1414//    You should have received a copy of the GNU General Public License 
    15 //    along with Foobar.  If not, see <http://www.gnu.org/licenses/>. 
     15//    along with ARInside.  If not, see <http://www.gnu.org/licenses/>. 
    1616 
    1717#include "stdafx.h" 
    1818#include "ObjectTable.h" 
     19#include "rapidjson/genericwritestream.h" 
     20#include "rapidjson/writer.h" 
    1921 
    2022using namespace OUTPUT; 
     23using namespace rapidjson; 
    2124 
    2225CObjectTable::CObjectTable(const string &htmlId, const string &cssClass) 
    2326: tbl(htmlId, cssClass) 
    2427{ 
     28        doc.SetArray(); 
    2529} 
    2630 
     
    4650void CObjectTable::Print(std::ostream& strm) 
    4751{ 
     52        if (!doc.Empty()) 
     53        { 
     54                GenericWriteStream output(strm); 
     55                Writer<GenericWriteStream> writer(output); 
     56 
     57                strm << "<script type=\"text/javascript\">" << endl; 
     58                strm << "var " << this->tbl.GetHtmId() << " = "; doc.Accept(writer); strm << ";" << endl; 
     59                strm << "</script>" << endl; 
     60        } 
    4861        strm << tbl; 
    4962} 
  • branches/work_304/output/ObjectTable.h

    r439 r442  
    1919#include "../output/TableRow.h" 
    2020#include "../ARInside.h" 
     21#include "rapidjson/document.h" 
    2122 
    2223namespace OUTPUT 
     
    3738                CARInside *pInside; 
    3839                CTable tbl; 
    39  
     40                rapidjson::Document doc; 
    4041        }; 
    4142} 
  • branches/work_304/output/Table.cpp

    r400 r442  
    6464} 
    6565 
    66 void CTable::SetHtmId(const string& htmId) 
    67 { 
    68         this->htmId = htmId; 
     66string CTable::GetHtmId() 
     67{ 
     68        return htmId; 
    6969} 
    7070 
  • branches/work_304/output/Table.h

    r388 r442  
    3939                void ClearRows(); 
    4040                void ClearColumns(); 
    41                 void SetHtmId(const string& cssClass); 
     41                std::string GetHtmId(); 
    4242                void SetCssClass(const string& htmId); 
    4343                void SetEmptyMessage(const string& msg); 
  • branches/work_304/output/WebPage.cpp

    r432 r442  
    7474        strm << "<meta http-equiv=\"expires\" content=\"-1\" />" << endl; 
    7575        strm << "<meta name=\"author\" content=\"ARInside\" />" << endl; 
     76        strm << "<script type='text/javascript'>var rootLevel=" << rootLevel << ";</script>" << endl; 
    7677        strm << GetReferenceManager() << endl; 
    7778        strm << "</head>" << endl; 
Note: See TracChangeset for help on using the changeset viewer.