Wt examples  3.3.1
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)
 
WWidgetcolumnWidget (int column)
 
WTreeTabletable () 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 WTreetree () const
 
WTextlabel () const
 
WIconPairlabelIcon () 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
 
WTreeNodeparentNode () 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< SideclearSides () 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 WCssDecorationStyledecorationStyle ()=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 const WStringtoolTip () const =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 WWidgetfind (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::WIconPaircreateIcon (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
 
- Protected Member Functions inherited from Wt::WTreeTableNode
virtual void setTable (WTreeTable *table)
 
- Protected Member Functions inherited from Wt::WTreeNode
 WTreeNode (WTreeNode *parentNode=0)
 
WContainerWidgetlabelArea ()
 
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 ()
 
WIconPairexpandIcon () 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 Wed Jun 11 2014 for the C++ Web Toolkit (Wt) by doxygen 1.8.7