/*******************************************************************************
* BHtmlPage HTML Pages
* T.Barnaby, BEAM Ltd, 2006-09-04
*******************************************************************************
*/
#include <BHtmlPage.h>
BHtmlPage::BHtmlPage(){
}
BHtmlPage::~BHtmlPage(){
}
void BHtmlPage::setTitle(BString title){
otitle = title;
}
void BHtmlPage::setLeftSide(BString leftSide){
oleftSide = leftSide;
}
void BHtmlPage::setContent(BString content){
ocontent = content;
}
BString BHtmlPage::render(){
BHtml html("html");
BHtml* h;
BHtml* b;
BHtml* t;
BHtml* r;
BHtml* c;
BHtml* left;
BHtml* right;
BHtml* top;
BHtml* topMenu;
BHtml leftSide;
BHtml centre;
BHtml* bottom;
// Header
h = html.append("head");
h->append("meta", "content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\"");
h->append("link", "href=\"css/main.css\" rel=\"stylesheet\" type=\"text/css\"");
h->append("title", "", otitle);
b = html.append("body");
// Top
top = b->append("div", "class='top'");
t = top->append("table", "class=\"beam_title\"");
r = t->append("tr");
left = r->append("td");
left->append("img", "src='images/bmain_header.gif'");
right = r->append("td");
right->append("center")->append("h2", "", otitle);
// Top Menu
topMenu = b->append("div", "class='topMenu'");
t = topMenu->append("div", "class='tabs'");
t->append("a", "class='plain' href='/'", "Home");
t->append("a", "class='plain' href='/config.cgi'", "Config");
t->append("a", "class='plain' href='/status.cgi'", "Status");
t->append("a", "class='plain' href='/statistics.cgi'", "Statistics");
t->append("a", "class='plain' href='/data.html'", "Data Access");
t->append("a", "class='plain' href='/help.cgi'", "Help");
// Left side
leftSide = BHtml("div", "class='leftSide'");
t = leftSide.append("table", "width='100%'");
r = t->append("tr");
c = r->append("th", "colspan='1' style='background: #DEE7EC; border: 1px solid #8CACBB; text-align: center;'");
c->append("p", "style='color: red;'", "Local");
r = t->append("tr");
c = r->append("td");
c->appendText(oleftSide);
// Centre
centre = BHtml("div", "class='centre'");
centre.appendText(ocontent);
// Middle
t = b->append("table", "width='100%' cols='150px,*' cellspacing='0px'");
r = t->append("tr");
r->append("td", "class='leftSide'")->append(leftSide);
r->append("td", "class='centre'")->append(centre);
// Bottom
bottom = b->append("div", "class='footer'");
bottom->append("p", "", "© Beam Ltd 2007");
return html.render();
}
#ifdef ZAP
void t1(){
BHtml b("body");
BHtml* t;
BHtml* r;
b.append(BHtml("h1", "", "Hi There"));
t = b.append(BHtml("table"));
r = t->append(BHtml("tr"));
r->append(BHtml("td", "", "Col0"));
r->append(BHtml("td", "", "Col1"));
r->append(BHtml("td", "", "Col2"));
r->append("td", "", "Col3");
r = t->append(BHtml("tr"));
r->append(BHtml("td", "", "Col0"));
r->append(BHtml("td", "", "Col1"));
r->append(BHtml("td", "", "Col2"));
r->append("td", "", "Col3");
printf("%s\n", b.render().retStr());
}
void t2(){
BHtmlPage page;
BHtml t;
BHtml* r;
page.setTitle("Test Page");
t = BHtml("table", "border=1");
r = t.append(BHtml("tr"));
r->append(BHtml("td", "", "Col0"));
r->append(BHtml("td", "", "Col1"));
r->append(BHtml("td", "", "Col2"));
r->append("td", "", "Col3");
r = t.append(BHtml("tr"));
r->append(BHtml("td", "", "Col0"));
r->append(BHtml("td", "", "Col1"));
r->append(BHtml("td", "", "Col2"));
r->append("td", "", "Col3");
page.setContent(t.render());
printf("%s\n", page.render().retStr());
}
int main(int argc, char **argv){
return 0;
}
#endif