Wittyshare  0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WsModule.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2006-Today Guy Deleeuw
3 *
4 * See the LICENSE file for terms of use.
5 */
6 
7 #ifndef WS_MODULE_H__
8 #define WS_MODULE_H__ 1
9 
10 #include <string>
11 
12 #include <boost/any.hpp>
13 
14 #include <Wt/WContainerWidget>
15 #include <Wt/WWidget>
16 #include <Main/WsOption.h>
17 
25 
26 
27 class WsEditorWidget : public Wt::WContainerWidget {
28 public :
29  WsEditorWidget(Wt::WContainerWidget* parent = 0);
31  virtual void load();
32  virtual bool saveEditor();
33 };
34 
35 
36 
37 class WsModule : public Wt::WObject, public WsOptions {
38 public:
39  WsModule();
41  virtual Wt::WWidget* createContentsMenuBar(Wt::WContainerWidget* parent = 0) const = 0;
43  virtual Wt::WWidget* createContents(Wt::WContainerWidget* parent = 0) const = 0;
45  virtual WsEditorWidget* createEditor(Wt::WContainerWidget* parent = 0) const = 0;
47  virtual Wt::WWidget* createAdmin(Wt::WContainerWidget* parent = 0) const = 0;
49  virtual std::string description() const = 0;
53  virtual std::string checkPath(const std::string& currentPath);
54 
56  void setModuleName(const std::string& name);
57  const std::string& moduleName() const;
58 
60  void setSoName(const std::string& soName);
61  const std::string& soName() const;
62 
64  // TODO : add multiple values for the fileName ?
65  void setFileName(const std::string& fileName);
66  const std::string& fileName() const;
67 
69  void setExtensions(const std::string& extensions);
70  const std::string& extension(const std::string& extension = "") const;
71 
73  void setPrefix(const std::string& prefix);
74  const std::string& prefix() const;
76  std::string pathWithoutPrefix(const std::string& path);
78  std::string pathWithPrefix(const std::string& path);
80  virtual bool processPrefix(const std::string& path);
81 
83  // TODO : put this in the config management system
84  void setHideImages(const bool bHide);
85  bool hideImages();
86 
88  void setSysPath(const std::string& sysPath);
89  const std::string& sysPath() const ;
90 
93  void setDiffPath(const std::string& diffPath);
94  const std::string& diffPath() const ;
95 
99  virtual void destroyContentsMenuBar();
100 
102  void setLoaded();
103  bool isLoaded();
104 
105 private :
106  std::string m_moduleName;
107  std::string m_soName;
108  std::string m_fileName;
109  std::string m_extension;
110  std::string m_prefix;
111  std::vector<std::string> m_extensions;
112  std::string m_sysPath;
113  std::string m_diffPath;
114  bool m_bLoaded;
116 };
117 
126 typedef WsModule* (*pf_wsModule) ();
127 
128 #endif // ifndef WsModule_H__
129 
virtual bool processPrefix(const std::string &path)
proccess the prefix, return true if processed
Definition: WsOption.cpp:85
const std::string & diffPath() const
Definition: WsOption.cpp:189
virtual Wt::WWidget * createAdmin(Wt::WContainerWidget *parent=0) const =0
Create the contents for an administrator.
bool hideImages()
Definition: WsOption.cpp:169
const std::string & sysPath() const
Definition: WsOption.cpp:179
std::string pathWithPrefix(const std::string &path)
return the relative path with the prefix : example pathWithPrefix("/Test") return "/SiteMap/Test" ...
Definition: WsOption.cpp:157
std::string m_soName
Definition: WsModule.h:107
std::vector< std::string > m_extensions
Definition: WsModule.h:111
virtual std::string description() const =0
Return the description of the module.
void setLoaded()
Some modules can be loaded on startup, no more actions is required by the content widget...
Definition: WsModule.cpp:50
std::string m_diffPath
Definition: WsModule.h:113
std::string pathWithoutPrefix(const std::string &path)
return the relative path without the prefix : example pathWithoutPrefix("/SiteMap/Test") return "/Tes...
Definition: WsOption.cpp:150
void setDiffPath(const std::string &diffPath)
Set/Get the difference between the web server (example Apache /var/www) root path and the wittishare ...
Definition: WsOption.cpp:184
WsContentButtonsBar * contentButtonsBar()
WittyShare provide a container to add some buttons like export page in pdf, ..., This function allow ...
Definition: WsModule.cpp:42
virtual WsEditorWidget * createEditor(Wt::WContainerWidget *parent=0) const =0
Create the contents for an editor (create a view of options).
void setFileName(const std::string &fileName)
Set/Get the file name that trigger the module : exemple "Staff List".
Definition: WsOption.cpp:115
void setHideImages(const bool bHide)
Set/Get the flag to specified if the images is hided.
Definition: WsOption.cpp:164
const std::string & soName() const
Definition: WsOption.cpp:110
virtual std::string checkPath(const std::string &currentPath)
Return the currentPath, or another path when some action is required for the currentPath example /New...
Definition: WsOption.cpp:90
std::string m_sysPath
Definition: WsModule.h:112
std::string m_prefix
Definition: WsModule.h:110
std::string m_moduleName
Definition: WsModule.h:106
virtual Wt::WWidget * createContents(Wt::WContainerWidget *parent=0) const =0
Create the contents.
std::string m_extension
Definition: WsModule.h:109
WsModule()
Definition: WsOption.cpp:81
bool m_bLoaded
Definition: WsModule.h:114
bool m_bHideImages
Definition: WsModule.h:115
const std::string & moduleName() const
Definition: WsOption.cpp:100
bool isLoaded()
Definition: WsModule.cpp:55
virtual void load()
Definition: WsModule.cpp:26
void setPrefix(const std::string &prefix)
Set/Get prefix for a virtual path, like "/SiteMap".
Definition: WsOption.cpp:140
void setModuleName(const std::string &name)
Set/Get the module name.
Definition: WsOption.cpp:95
const std::string & prefix() const
Definition: WsOption.cpp:145
virtual void destroyContentsMenuBar()
Definition: WsModule.cpp:47
WsEditorWidget(Wt::WContainerWidget *parent=0)
Definition: WsModule.cpp:19
virtual Wt::WWidget * createContentsMenuBar(Wt::WContainerWidget *parent=0) const =0
Create the functionalities.
virtual bool saveEditor()
Definition: WsModule.cpp:31
const std::string & fileName() const
Definition: WsOption.cpp:120
void setSoName(const std::string &soName)
Set/Get the module so name or path ex. libgd.so or /usr/lib/libgd.so.
Definition: WsOption.cpp:105
void setExtensions(const std::string &extensions)
Set/Get the file extension managed by the module : exemple .ods|.odp.
Definition: WsOption.cpp:125
const std::string & extension(const std::string &extension="") const
Definition: WsOption.cpp:131
void setSysPath(const std::string &sysPath)
Set/Get the system path (example the selected file /var/www/mysite/about/me.fhtml).
Definition: WsOption.cpp:174
std::string m_fileName
Definition: WsModule.h:108