Wt examples  3.3.8
Public Member Functions | Private Member Functions | Private Attributes | List of all members
GitViewApplication Class Reference

A simple application to navigate a git repository. More...

Inheritance diagram for GitViewApplication:
Inheritance graph
[legend]

Public Member Functions

 GitViewApplication (const WEnvironment &env)
 Constructor. More...
 
- Public Member Functions inherited from Wt::WApplication
 WApplication (const WEnvironment &environment)
 
 ~WApplication ()
 
const WEnvironmentenvironment () const
 
WContainerWidgetroot () const
 
WWidgetfindWidget (const std::string &name)
 
void setTitle (const WString &title)
 
const WStringtitle () const
 
const WStringcloseMessage () const
 
WLocalizedStringslocalizedStrings ()
 
void setLocalizedStrings (WLocalizedStrings *stringResolver)
 
WMessageResourceBundlemessageResourceBundle ()
 
void setLocale (const WLocale &locale)
 
const WLocalelocale () const
 
virtual void refresh ()
 
void bindWidget (WWidget *widget, const std::string &domId)
 
std::string docRoot () const
 
void setConnectionMonitor (const std::string &jsObject)
 
std::string sessionId () const
 
void changeSessionId ()
 
void processEvents ()
 
virtual void waitForEvent ()
 
void setAjaxMethod (AjaxMethod method)
 
AjaxMethod ajaxMethod () const
 
virtual void initialize ()
 
virtual void finalize ()
 
void setTwoPhaseRenderingThreshold (int size)
 
void setCookie (const std::string &name, const std::string &value, int maxAge, const std::string &domain="", const std::string &path="", bool secure=false)
 
void removeCookie (const std::string &name, const std::string &domain="", const std::string &path="")
 
void addMetaLink (const std::string &href, const std::string &rel, const std::string &media, const std::string &hreflang, const std::string &type, const std::string &sizes, bool disabled)
 
void removeMetaLink (const std::string &href)
 
void addMetaHeader (const std::string &name, const WString &content, const std::string &lang="")
 
void addMetaHeader (MetaHeaderType type, const std::string &name, const WString &content, const std::string &lang="")
 
WString metaHeader (MetaHeaderType type, const std::string &name) const
 
void removeMetaHeader (MetaHeaderType type, const std::string &name="")
 
WLogEntry log (const std::string &type) const
 
void setLoadingIndicator (WLoadingIndicator *indicator)
 
WLoadingIndicatorloadingIndicator () const
 
void quit ()
 
void quit (const WString &restartMessage)
 
bool isQuited () const
 
bool hasQuit () const
 
::int64_t maximumRequestSize () const
 
Signal< ::int64_t > & requestTooLarge ()
 
void setConfirmCloseMessage (const WString &message)
 
void enableInternalPaths ()
 
void deferRendering ()
 
void resumeRendering ()
 
boost::function< void()> bind (const F &f)
 
std::string encodeUntrustedUrl (const std::string &url) const
 
void pushExposedConstraint (WWidget *w)
 
WCssStyleSheetstyleSheet ()
 
void useStyleSheet (const WLink &link, const std::string &media="all")
 
void useStyleSheet (const WLink &link, const std::string &condition, const std::string &media)
 
void useStyleSheet (const WCssStyleSheet &styleSheet, const std::string &condition="")
 
void removeStyleSheet (const WLink &link)
 
void setTheme (const WTheme *theme)
 
const WThemetheme () const
 
void setCssTheme (const std::string &name)
 
void setLayoutDirection (LayoutDirection direction)
 
LayoutDirection layoutDirection () const
 
void setBodyClass (const std::string &styleClass)
 
std::string bodyClass () const
 
void setHtmlClass (const std::string &styleClass)
 
std::string htmlClass () const
 
std::string url (const std::string &internalPath=std::string()) const
 
virtual std::string makeAbsoluteUrl (const std::string &url) const
 
std::string resolveRelativeUrl (const std::string &url) const
 
std::string bookmarkUrl () const
 
std::string bookmarkUrl (const std::string &internalPath) const
 
void setInternalPath (const std::string &path, bool emitChange=false)
 
void setInternalPathDefaultValid (bool valid)
 
bool internalPathDefaultValid () const
 
void setInternalPathValid (bool valid)
 
bool internalPathValid () const
 
std::string internalPath () const
 
std::string internalPathNextPart (const std::string &path) const
 
std::string internalSubPath (const std::string &path) const
 
bool internalPathMatches (const std::string &path) const
 
Signal< std::string > & internalPathChanged ()
 
Signal< std::string > & internalPathInvalid ()
 
void redirect (const std::string &url)
 
void enableUpdates (bool enabled=true)
 
bool updatesEnabled () const
 
void triggerUpdate ()
 
UpdateLock getUpdateLock ()
 
void attachThread (bool attach=true)
 
void doJavaScript (const std::string &javascript, bool afterLoaded=true)
 
void addAutoJavaScript (const std::string &javascript)
 
void declareJavaScriptFunction (const std::string &name, const std::string &function)
 
bool require (const std::string &url, const std::string &symbol=std::string())
 
bool requireJQuery (const std::string &url)
 
bool customJQuery () const
 
void setJavaScriptClass (const std::string &className)
 
std::string javaScriptClass ()
 
EventSignal< WKeyEvent > & globalKeyWentDown ()
 
EventSignal< WKeyEvent > & globalKeyPressed ()
 
EventSignal< WKeyEvent > & globalKeyWentUp ()
 
EventSignalglobalEnterPressed ()
 
EventSignalglobalEscapePressed ()
 
WCssStyleSheetstyleSheet ()
 
void useStyleSheet (const WLink &link, const std::string &media="all")
 
void useStyleSheet (const WLink &link, const std::string &condition, const std::string &media)
 
void useStyleSheet (const WCssStyleSheet &styleSheet, const std::string &condition="")
 
void removeStyleSheet (const WLink &link)
 
void setTheme (const WTheme *theme)
 
const WThemetheme () const
 
void setCssTheme (const std::string &name)
 
void setLayoutDirection (LayoutDirection direction)
 
LayoutDirection layoutDirection () const
 
void setBodyClass (const std::string &styleClass)
 
std::string bodyClass () const
 
void setHtmlClass (const std::string &styleClass)
 
std::string htmlClass () const
 
std::string url (const std::string &internalPath=std::string()) const
 
virtual std::string makeAbsoluteUrl (const std::string &url) const
 
std::string resolveRelativeUrl (const std::string &url) const
 
std::string bookmarkUrl () const
 
std::string bookmarkUrl (const std::string &internalPath) const
 
void setInternalPath (const std::string &path, bool emitChange=false)
 
void setInternalPathDefaultValid (bool valid)
 
bool internalPathDefaultValid () const
 
void setInternalPathValid (bool valid)
 
bool internalPathValid () const
 
std::string internalPath () const
 
std::string internalPathNextPart (const std::string &path) const
 
std::string internalSubPath (const std::string &path) const
 
bool internalPathMatches (const std::string &path) const
 
Signal< std::string > & internalPathChanged ()
 
Signal< std::string > & internalPathInvalid ()
 
void redirect (const std::string &url)
 
void enableUpdates (bool enabled=true)
 
bool updatesEnabled () const
 
void triggerUpdate ()
 
UpdateLock getUpdateLock ()
 
void attachThread (bool attach=true)
 
void doJavaScript (const std::string &javascript, bool afterLoaded=true)
 
void addAutoJavaScript (const std::string &javascript)
 
void declareJavaScriptFunction (const std::string &name, const std::string &function)
 
bool require (const std::string &url, const std::string &symbol=std::string())
 
bool requireJQuery (const std::string &url)
 
bool customJQuery () const
 
void setJavaScriptClass (const std::string &className)
 
std::string javaScriptClass ()
 
EventSignal< WKeyEvent > & globalKeyWentDown ()
 
EventSignal< WKeyEvent > & globalKeyPressed ()
 
EventSignal< WKeyEvent > & globalKeyWentUp ()
 
EventSignalglobalEnterPressed ()
 
EventSignalglobalEscapePressed ()
 
- Public Member Functions inherited from Wt::WObject
 WObject (WObject *parent=0)
 
virtual ~WObject ()
 
virtual const std::string id () const
 
virtual void setObjectName (const std::string &name)
 
virtual std::string objectName () const
 
void resetLearnedSlots ()
 
void resetLearnedSlot (void(T::*method)())
 
WStatelessSlot * implementStateless (void(T::*method)())
 
WStatelessSlot * implementStateless (void(T::*method)(), void(T::*undoMethod)())
 
void isNotStateless ()
 
WStatelessSlot * implementJavaScript (void(T::*method)(), const std::string &jsCode)
 
void addChild (WObject *child)
 
virtual void removeChild (WObject *child)
 
const std::vector< WObject * > & children () const
 
WObjectparent () const
 

Private Member Functions

void loadGitModel ()
 Change repository and/or revision. More...
 
void showFile ()
 Displayed the currently selected file. More...
 

Private Attributes

WLineEditrepositoryEdit_
 
WLineEditrevisionEdit_
 
WTextrepositoryError_
 
WTextrevisionError_
 
GitModelgitModel_
 
WTreeViewgitView_
 
SourceViewsourceView_
 

Additional Inherited Members

- Public Types inherited from Wt::WApplication
enum  AjaxMethod
 
typedef Wt::ApplicationCreator ApplicationCreator
 
typedef boost::function< WApplication *(const WEnvironment &)> ApplicationCreator
 
- Public Types inherited from Wt::WObject
typedef void(WObject::* Method) ()
 
- Static Public Member Functions inherited from Wt::WApplication
static WApplicationinstance ()
 
static std::string resourcesUrl ()
 
static std::string relativeResourcesUrl ()
 
static std::string appRoot ()
 
static bool readConfigurationProperty (const std::string &name, std::string &value)
 
- Public Attributes inherited from Wt::WApplication
 XMLHttpRequest
 
 DynamicScriptTag
 
- Protected Member Functions inherited from Wt::WApplication
virtual void notify (const WEvent &e)
 
virtual bool isExposed (WWidget *w) const
 
virtual void enableAjax ()
 
virtual void unload ()
 
virtual void handleJavaScriptError (const std::string &errorText)
 
- Protected Member Functions inherited from Wt::WObject
virtual WStatelessSlot * getStateless (Method method)
 
- Static Protected Member Functions inherited from Wt::WObject
static WObjectsender ()
 

Detailed Description

A simple application to navigate a git repository.

This examples demonstrates how to use the custom model use GitModel with a WTreeView.

Definition at line 39 of file GitView.C.

Constructor & Destructor Documentation

GitViewApplication::GitViewApplication ( const WEnvironment env)
inline

Constructor.

Definition at line 44 of file GitView.C.

45  : WApplication(env)
46  {
47  useStyleSheet("gitview.css");
48  setTitle("Git model example");
49 
50  const char *gitRepo = getenv("GITVIEW_REPOSITORY_PATH");
51 
52  WGridLayout *grid = new WGridLayout();
53  grid->addWidget(new WText("Git repository path:"), 0, 0);
54  grid->addWidget(repositoryEdit_ = new WLineEdit(gitRepo ? gitRepo : "")
55  , 0, 1, AlignLeft);
56  grid->addWidget(repositoryError_ = new WText(), 0, 2);
57  grid->addWidget(new WText("Revision:"), 1, 0);
58  grid->addWidget(revisionEdit_ = new WLineEdit("master"), 1, 1, AlignLeft);
59  grid->addWidget(revisionError_ = new WText(), 1, 2);
60 
63  repositoryError_->setStyleClass("error-msg");
64  revisionError_->setStyleClass("error-msg");
65 
70 
71  WPushButton *b = new WPushButton("Load");
72  b->clicked().connect(this, &GitViewApplication::loadGitModel);
73  grid->addWidget(b, 2, 0, AlignLeft);
74 
75  gitView_ = new WTreeView();
76  gitView_->resize(300, WLength::Auto);
78  gitView_->setModel(gitModel_ = new GitModel(this));
79  gitView_->setSelectionMode(SingleSelection);
81 
85  sourceView_->setStyleClass("source-view");
86 
87  if (environment().javaScript()) {
88  /*
89  * We have JavaScript: We can use layout managers so everything will
90  * always fit nicely in the window.
91  */
92  WVBoxLayout *topLayout = new WVBoxLayout();
93  topLayout->addLayout(grid, 0);
94 
95  WHBoxLayout *gitLayout = new WHBoxLayout();
96  gitLayout->addWidget(gitView_, 0);
97  gitLayout->addWidget(sourceView_, 1);
98  topLayout->addLayout(gitLayout, 1);
99 
100  root()->setLayout(topLayout);
101  root()->setStyleClass("maindiv");
102  } else {
103  /*
104  * No JavaScript: let's make the best of the situation using regular
105  * CSS-based layout
106  */
107  root()->setStyleClass("maindiv");
108  WContainerWidget *top = new WContainerWidget();
109  top->setLayout(grid);
110  root()->addWidget(top);
111  root()->addWidget(gitView_);
112  gitView_->setFloatSide(Left);
113  gitView_->setMargin(6);
116  }
117  }
void addLayout(WLayout *layout, int stretch=0, WFlags< AlignmentFlag > alignment=0)
void setTextSize(int chars)
virtual void setMargin(const WLength &margin, WFlags< Side > sides=All)
virtual void resize(const WLength &width, const WLength &height)
void loadGitModel()
Change repository and/or revision.
Definition: GitView.C:128
EventSignal< WMouseEvent > & clicked()
void setTitle(const WString &title)
WText * repositoryError_
Definition: GitView.C:121
static const int ContentsRole
The role which may be used on a file to retrieve its contents.
Definition: GitModel.h:41
void setSelectionMode(SelectionMode mode)
WTreeView * gitView_
Definition: GitView.C:123
DisplayRole
void showFile()
Displayed the currently selected file.
Definition: GitView.C:146
Wt::Signals::connection connect(const F &function)
virtual void setStyleClass(const WString &styleClass)
WLineEdit * revisionEdit_
Definition: GitView.C:120
GitModel * gitModel_
Definition: GitView.C:122
WText * revisionError_
Definition: GitView.C:121
Signal & selectionChanged()
virtual void setMargin(const WLength &margin, WFlags< Side > sides=All)
SourceView * sourceView_
Definition: GitView.C:124
void setLayout(WLayout *layout)
const WEnvironment & environment() const
View class for source code.
Definition: SourceView.h:26
virtual void setFloatSide(Side s)
virtual void setModel(WAbstractItemModel *model)
void addWidget(WWidget *widget, int row, int column, WFlags< AlignmentFlag > alignment=0)
void useStyleSheet(const WLink &link, const std::string &media="all")
void addWidget(WWidget *widget, int stretch=0, WFlags< AlignmentFlag > alignment=0)
WLineEdit * repositoryEdit_
Definition: GitView.C:120
static const int FilePathRole
Definition: GitModel.h:42
EventSignal & enterPressed()
virtual void addWidget(WWidget *widget)
void setSortingEnabled(bool enabled)
WContainerWidget * root() const
virtual Wt::Signals::connection connect(WObject *target, WObject::Method method)
A model that retrieves revision trees from a git repository.
Definition: GitModel.h:36
WApplication(const WEnvironment &environment)

Member Function Documentation

void GitViewApplication::loadGitModel ( )
inlineprivate

Change repository and/or revision.

Definition at line 128 of file GitView.C.

128  {
131  revisionError_->setText("");
132  try {
134  try {
136  } catch (const Git::Exception& e) {
137  revisionError_->setText(e.what());
138  }
139  } catch (const Git::Exception& e) {
140  repositoryError_->setText(e.what());
141  }
142  }
void setRepositoryPath(const std::string &repositoryPath)
Set the repository and load its &#39;master&#39; revision.
Definition: GitModel.C:15
const WString & text() const
WText * repositoryError_
Definition: GitView.C:121
bool setText(const WString &text)
std::string toUTF8() const
WLineEdit * revisionEdit_
Definition: GitView.C:120
GitModel * gitModel_
Definition: GitView.C:122
WText * revisionError_
Definition: GitView.C:121
SourceView * sourceView_
Definition: GitView.C:124
bool setIndex(const Wt::WModelIndex &index)
Sets the model index.
Definition: SourceView.C:30
WLineEdit * repositoryEdit_
Definition: GitView.C:120
void loadRevision(const std::string &revName)
Load a particular revision.
Definition: GitModel.C:21
Exception class.
Definition: Git.h:28
void GitViewApplication::showFile ( )
inlineprivate

Displayed the currently selected file.

Definition at line 146 of file GitView.C.

146  {
147  if (gitView_->selectedIndexes().empty())
148  return;
149 
150  WModelIndex selected = *gitView_->selectedIndexes().begin();
151  sourceView_->setIndex(selected);
152  }
WModelIndexSet selectedIndexes() const
WTreeView * gitView_
Definition: GitView.C:123
SourceView * sourceView_
Definition: GitView.C:124
bool setIndex(const Wt::WModelIndex &index)
Sets the model index.
Definition: SourceView.C:30

Member Data Documentation

GitModel* GitViewApplication::gitModel_
private

Definition at line 122 of file GitView.C.

WTreeView* GitViewApplication::gitView_
private

Definition at line 123 of file GitView.C.

WLineEdit* GitViewApplication::repositoryEdit_
private

Definition at line 120 of file GitView.C.

WText* GitViewApplication::repositoryError_
private

Definition at line 121 of file GitView.C.

WLineEdit * GitViewApplication::revisionEdit_
private

Definition at line 120 of file GitView.C.

WText * GitViewApplication::revisionError_
private

Definition at line 121 of file GitView.C.

SourceView* GitViewApplication::sourceView_
private

Definition at line 124 of file GitView.C.


The documentation for this class was generated from the following file:

Generated on Mon Sep 4 2017 for the C++ Web Toolkit (Wt) by doxygen 1.8.11