Wt examples  3.3.3
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
FileTreeTableNode Class Reference

A single node in a file tree table. More...

#include <FileTreeTableNode.h>

Inheritance diagram for FileTreeTableNode:
Inheritance graph
[legend]

Public Member Functions

 FileTreeTableNode (const boost::filesystem::path &path)
 Construct a new node for the given file. More...
 
- Public Member Functions inherited from Wt::WTreeTableNode
 WTreeTableNode (const WString &labelText, WIconPair *labelIcon=0, WTreeTableNode *parentNode=0)
 
void setColumnWidget (int column, WWidget *item)
 
WWidget * columnWidget (int column)
 
WTreeTable * table () const
 
virtual void insertChildNode (int index, WTreeNode *node)
 
- Public Member Functions inherited from Wt::WTreeNode
 WTreeNode (const WString &labelText, WIconPair *labelIcon=0, WTreeNode *parentNode=0)
 
 ~WTreeNode ()
 
virtual WTree * tree () const
 
WText * label () const
 
WIconPair * labelIcon () const
 
void setLabelIcon (WIconPair *labelIcon)
 
void addChildNode (WTreeNode *node)
 
void removeChildNode (WTreeNode *node)
 
const std::vector< WTreeNode * > & childNodes () const
 
virtual int displayedChildCount () const
 
void setChildCountPolicy (ChildCountPolicy policy)
 
ChildCountPolicy childCountPolicy () const
 
void setImagePack (const std::string &url)
 
void setLoadPolicy (LoadPolicy loadPolicy)
 
bool isExpanded () const
 
void setSelectable (bool selectable)
 
virtual bool isSelectable () const
 
WTreeNode * parentNode () const
 
void setNodeVisible (bool visible)
 
void setChildrenDecorated (bool decorated)
 
void setInteractive (bool interactive)
 
void expand ()
 
void collapse ()
 
EventSignal< WMouseEvent > & expanded ()
 
EventSignal< WMouseEvent > & collapsed ()
 
Signal< bool > & selected ()
 
- Public Member Functions inherited from Wt::WWidget
virtual void setPositionScheme (PositionScheme scheme)=0
 
virtual PositionScheme positionScheme () const =0
 
virtual void setOffsets (const WLength &offset, WFlags< Side > sides=All)=0
 
virtual WLength offset (Side side) const =0
 
virtual void resize (const WLength &width, const WLength &height)
 
virtual WLength width () const =0
 
virtual WLength height () const =0
 
virtual void setMinimumSize (const WLength &width, const WLength &height)=0
 
virtual WLength minimumWidth () const =0
 
virtual WLength minimumHeight () const =0
 
virtual void setMaximumSize (const WLength &width, const WLength &height)=0
 
virtual WLength maximumWidth () const =0
 
virtual WLength maximumHeight () const =0
 
virtual void setLineHeight (const WLength &height)=0
 
virtual WLength lineHeight () const =0
 
virtual void setFloatSide (Side s)=0
 
virtual Side floatSide () const =0
 
virtual void setClearSides (WFlags< Side > sides)=0
 
virtual WFlags< Side > clearSides () const =0
 
virtual void setMargin (const WLength &margin, WFlags< Side > sides=All)=0
 
virtual WLength margin (Side side) const =0
 
virtual void setHiddenKeepsGeometry (bool enabled)=0
 
virtual bool hiddenKeepsGeometry () const =0
 
virtual void setHidden (bool hidden, const WAnimation &animation=WAnimation())=0
 
virtual bool isHidden () const =0
 
virtual bool isVisible () const =0
 
virtual void setDisabled (bool disabled)=0
 
virtual bool isDisabled () const =0
 
virtual bool isEnabled () const =0
 
virtual void setPopup (bool popup)=0
 
virtual bool isPopup () const =0
 
virtual void setInline (bool inlined)=0
 
virtual bool isInline () const =0
 
virtual void setDecorationStyle (const WCssDecorationStyle &style)=0
 
virtual WCssDecorationStyle & decorationStyle ()=0
 
virtual void setStyleClass (const WString &styleClass)=0
 
virtual WString styleClass () const =0
 
virtual void addStyleClass (const WString &styleClass, bool force=false)=0
 
virtual void removeStyleClass (const WString &styleClass, bool force=false)=0
 
virtual bool hasStyleClass (const WString &styleClass) const =0
 
virtual void setVerticalAlignment (AlignmentFlag alignment, const WLength &length=WLength::Auto)=0
 
virtual AlignmentFlag verticalAlignment () const =0
 
virtual WLength verticalAlignmentLength () const =0
 
virtual void setToolTip (const WString &text, TextFormat textFormat=PlainText)=0
 
virtual WString toolTip () const =0
 
virtual void setDeferredToolTip (bool enable, TextFormat textFormat=PlainText)=0
 
virtual void refresh ()
 
virtual void setAttributeValue (const std::string &name, const WString &value)=0
 
virtual WString attributeValue (const std::string &name) const =0
 
virtual void setJavaScriptMember (const std::string &name, const std::string &value)=0
 
virtual std::string javaScriptMember (const std::string &name) const =0
 
virtual void callJavaScriptMember (const std::string &name, const std::string &args)=0
 
virtual void load ()=0
 
virtual bool loaded () const =0
 
virtual void setTabIndex (int index)=0
 
virtual int tabIndex () const =0
 
virtual void setId (const std::string &id)=0
 
virtual WWidget * find (const std::string &name)=0
 
virtual void doJavaScript (const std::string &js)=0
 

Private Member Functions

virtual void populate ()
 Reimplements WTreeNode::populate to read files within a directory. More...
 
virtual bool expandable ()
 Reimplements WTreeNode::expandable. More...
 

Static Private Member Functions

static Wt::WIconPair * createIcon (const boost::filesystem::path &path)
 Create the iconpair for representing the path. More...
 

Private Attributes

boost::filesystem::path path_
 The path. More...
 

Additional Inherited Members

- Public Types inherited from Wt::WTreeNode
enum  LoadPolicy
 
enum  ChildCountPolicy
 
- Public Attributes inherited from Wt::WTreeNode
 LazyLoading
 
 PreLoading
 
 NextLevelLoading
 
 Disabled
 
 Enabled
 
 Lazy
 
- Protected Member Functions inherited from Wt::WTreeTableNode
virtual void setTable (WTreeTable *table)
 
- Protected Member Functions inherited from Wt::WTreeNode
 WTreeNode (WTreeNode *parentNode=0)
 
WContainerWidget * labelArea ()
 
bool populated () const
 
virtual void renderSelected (bool selected)
 
std::string imagePack () const
 
virtual void descendantRemoved (WTreeNode *node)
 
virtual void descendantAdded (WTreeNode *node)
 
virtual void doExpand ()
 
virtual void doCollapse ()
 
virtual void undoDoExpand ()
 
virtual void undoDoCollapse ()
 
WIconPair * expandIcon () const
 
- Protected Member Functions inherited from Wt::WWidget
virtual void enableAjax ()=0
 
virtual void propagateSetEnabled (bool enabled)=0
 
virtual void render (WFlags< RenderFlag > flags)
 

Detailed Description

A single node in a file tree table.

The node manages the details about one file, and if the file is a directory, populates a subtree with nodes for every directory item.

The tree node reimplements Wt::WTreeTableNode::populate() to populate a directory node only when the node is expanded. In this way, only directories that are actually browsed are loaded from disk.

Definition at line 28 of file FileTreeTableNode.h.

Constructor & Destructor Documentation

FileTreeTableNode::FileTreeTableNode ( const boost::filesystem::path &  path)

Construct a new node for the given file.

Definition at line 22 of file FileTreeTableNode.C.

25  : WTreeTableNode(Wt::widen(path.leaf()), createIcon(path)),
26 #else
27  : WTreeTableNode(path.leaf(), createIcon(path)),
28 #endif
29 #else
30  : WTreeTableNode(path.leaf().string(), createIcon(path)),
31 #endif
32  path_(path)
33 {
34  label()->setTextFormat(PlainText);
35 
36  if (boost::filesystem::exists(path)) {
37  if (!boost::filesystem::is_directory(path)) {
38  int fsize = (int)boost::filesystem::file_size(path);
39  setColumnWidget(1, new WText(boost::lexical_cast<std::string>(fsize)));
40  columnWidget(1)->setStyleClass("fsize");
41  } else
42  setSelectable(false);
43 
44  std::time_t t = boost::filesystem::last_write_time(path);
45  struct tm ttm;
46 #if WIN32
47  ttm=*localtime(&t);
48 #else
49  localtime_r(&t, &ttm);
50 #endif
51 
52  char c[100];
53  strftime(c, 100, "%b %d %Y", &ttm);
54 
55  setColumnWidget(2, new WText(c));
56  columnWidget(2)->setStyleClass("date");
57  }
58 }
static Wt::WIconPair * createIcon(const boost::filesystem::path &path)
Create the iconpair for representing the path.
WText * label() const
WTreeTableNode(const WString &labelText, WIconPair *labelIcon=0, WTreeTableNode *parentNode=0)
void setColumnWidget(int column, WWidget *item)
void setSelectable(bool selectable)
boost::filesystem::path path_
The path.
WWidget * columnWidget(int column)
virtual void setStyleClass(const WString &styleClass)=0

Member Function Documentation

WIconPair * FileTreeTableNode::createIcon ( const boost::filesystem::path &  path)
staticprivate

Create the iconpair for representing the path.

Definition at line 60 of file FileTreeTableNode.C.

61 {
62  if (boost::filesystem::exists(path)
63  && boost::filesystem::is_directory(path))
64  return new WIconPair("icons/yellow-folder-closed.png",
65  "icons/yellow-folder-open.png", false);
66  else
67  return new WIconPair("icons/document.png",
68  "icons/yellow-folder-open.png", false);
69 }
bool FileTreeTableNode::expandable ( )
privatevirtual

Reimplements WTreeNode::expandable.

Reimplemented from Wt::WTreeNode.

Definition at line 94 of file FileTreeTableNode.C.

95 {
96  if (!populated()) {
97  return boost::filesystem::is_directory(path_);
98  } else
99  return WTreeTableNode::expandable();
100 }
bool populated() const
boost::filesystem::path path_
The path.
void FileTreeTableNode::populate ( )
privatevirtual

Reimplements WTreeNode::populate to read files within a directory.

Reimplemented from Wt::WTreeNode.

Definition at line 71 of file FileTreeTableNode.C.

72 {
73  if (boost::filesystem::is_directory(path_)) {
74  std::set<boost::filesystem::path> paths;
75  boost::filesystem::directory_iterator end_itr;
76 
77  for (boost::filesystem::directory_iterator i(path_); i != end_itr; ++i)
78  try {
79  paths.insert(*i);
80  } catch (boost::filesystem::filesystem_error& e) {
81  std::cerr << e.what() << std::endl;
82  }
83 
84  for (std::set<boost::filesystem::path>::iterator i = paths.begin();
85  i != paths.end(); ++i)
86  try {
88  } catch (boost::filesystem::filesystem_error& e) {
89  std::cerr << e.what() << std::endl;
90  }
91  }
92 }
boost::filesystem::path path_
The path.
void addChildNode(WTreeNode *node)
FileTreeTableNode(const boost::filesystem::path &path)
Construct a new node for the given file.

Member Data Documentation

boost::filesystem::path FileTreeTableNode::path_
private

The path.

Definition at line 37 of file FileTreeTableNode.h.


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

Generated on Tue Nov 25 2014 for the C++ Web Toolkit (Wt) by doxygen 1.8.8