Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #include "JWtHome.h"
00008
00009 #include <Wt/WText>
00010 #include <Wt/WAnchor>
00011 #include <Wt/WTreeNode>
00012 #include <Wt/WWidget>
00013 #include <Wt/WViewWidget>
00014 #include <Wt/WTabWidget>
00015 #include <Wt/WMenuItem>
00016 #include <Wt/WTable>
00017 #include <Wt/WEnvironment>
00018 #include <Wt/WLogger>
00019
00020 #include "ExampleSourceViewer.h"
00021
00022 JWtHome::JWtHome(const WEnvironment& env)
00023 : Home(env,
00024 "JWt, Java Web Toolkit",
00025 "jwt-home", "css/jwt")
00026 {
00027 addLanguage(Lang("en", "/", "en", "English"));
00028
00029 char* jwtExamplePath = getenv("JWT_EXAMPLE_PATH");
00030 if (jwtExamplePath)
00031 jwtExamplePath_ = jwtExamplePath;
00032 else
00033 jwtExamplePath_ = "/home/pieter/projects/jwt/wt-port/java/examples/";
00034
00035 init();
00036 }
00037
00038 WWidget *JWtHome::examples()
00039 {
00040 WContainerWidget *result = new WContainerWidget();
00041
00042 result->addWidget(new WText(tr("home.examples")));
00043
00044 examplesMenu_ = new WTabWidget(AlignTop | AlignJustify, result);
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061 examplesMenu_->addTab(wrapView(&JWtHome::helloWorldExample),
00062 tr("hello-world"))->setPathComponent("");
00063 examplesMenu_->addTab(wrapView(&JWtHome::chartExample),
00064 tr("charts"));
00065 examplesMenu_->addTab(wrapView(&JWtHome::treeviewExample),
00066 tr("treeview"));
00067 examplesMenu_->addTab(wrapView(&JWtHome::composerExample),
00068 tr("mail-composer"));
00069 examplesMenu_->addTab(wrapView(&JWtHome::chatExample),
00070 tr("chat"));
00071 examplesMenu_->addTab(wrapView(&JWtHome::figtreeExample),
00072 tr("figtree"));
00073 examplesMenu_->addTab(wrapView(&JWtHome::widgetGalleryExample),
00074 tr("widget-gallery"));
00075
00076
00077 examplesMenu_->setInternalPathEnabled("/examples");
00078 examplesMenu_->currentChanged().connect(this, &Home::googleAnalyticsLogger);
00079
00080 return result;
00081 }
00082
00083 WWidget *JWtHome::download()
00084 {
00085 WContainerWidget *result = new WContainerWidget();
00086 result->addWidget(new WText(tr("home.download")));
00087 result->addWidget(new WText(tr("home.download.license")));
00088 result->addWidget(new WText(tr("home.download.packages")));
00089
00090 releases_ = new WTable();
00091 readReleases(releases_);
00092 result->addWidget(releases_);
00093 result->addWidget(new WText(tr("home.download.requirements")));
00094 result->addWidget(new WText(tr("home.download.cvs")));
00095
00096 return result;
00097 }
00098
00099 WWidget *JWtHome::sourceViewer(const std::string &deployPath)
00100 {
00101 return new ExampleSourceViewer(deployPath, jwtExamplePath_ + "/", "JAVA");
00102 }
00103
00104 WWidget *JWtHome::example(const char *textKey, const std::string& sourceDir)
00105 {
00106 WContainerWidget *result = new WContainerWidget();
00107 new WText(tr(textKey), result);
00108 result->addWidget(linkSourceBrowser(sourceDir));
00109 return result;
00110 }
00111
00112 WWidget *JWtHome::helloWorldExample()
00113 {
00114 return example("home.examples.hello", "hello");
00115 }
00116
00117 WWidget *JWtHome::chartExample()
00118 {
00119 return example("home.examples.chart", "charts");
00120 }
00121
00122 WWidget *JWtHome::treeviewExample()
00123 {
00124 return example("home.examples.treeview", "treeviewdragdrop");
00125 }
00126
00127 WWidget *JWtHome::composerExample()
00128 {
00129 return example("home.examples.composer", "composer");
00130 }
00131
00132 WWidget *JWtHome::chatExample()
00133 {
00134 return example("home.examples.chat", "simplechat");
00135 }
00136
00137 WWidget *JWtHome::figtreeExample()
00138 {
00139 WContainerWidget *result = new WContainerWidget();
00140 new WText(tr("home.examples.figtree"), result);
00141 return result;
00142 }
00143
00144 WWidget *JWtHome::widgetGalleryExample()
00145 {
00146 return example("home.examples.widgetgallery", "widgetgallery");
00147 }
00148
00149 WWidget *JWtHome::wrapView(WWidget *(JWtHome::*createWidget)())
00150 {
00151 return makeStaticModel(boost::bind(createWidget, this));
00152 }
00153
00154 WApplication *createJWtHomeApplication(const WEnvironment& env)
00155 {
00156 return new JWtHome(env);
00157 }