roviz  0.7
Code Documentation of roviz
abstract_workspace.h
1 /*
2  * abstract_workspace.h
3  *
4  * Created on: Nov 1, 2015
5  * Author: Marcus Pfaff
6  */
7 
8 #ifndef ABSTRACT_WORKSPACE_H
9 #define ABSTRACT_WORKSPACE_H
10 
11 #include <QDate>
12 #include <QVector>
13 #include "abstract_project.h"
14 #include "export_import_helper.h"
15 
23 class AbstractWorkspace : public QObject
24 {
25  Q_OBJECT
26  Q_PROPERTY(bool isDefault READ isDefault WRITE setDefault USER true)
27 
28 public:
29  virtual ~AbstractWorkspace();
30 
40  static QDomDocument workspaceDomDocumentTemplate(const QString& name, const QString& version, const QString& description);
41 
48  virtual void init() = 0;
49 
55  virtual void update() = 0;
56 
64  virtual bool compare(const QSharedPointer<AbstractWorkspace>& otherWorkspace) const = 0;
65 
71  virtual bool save() = 0;
72 
79  virtual bool test() = 0;
80 
91  virtual bool deleteWorkspace(bool deleteProjects = false) = 0;
92 
104  virtual bool deleteProject(const QSharedPointer<AbstractProject>& project) = 0;
105 
117  bool removeProject(const QSharedPointer<AbstractProject>& project);
118 
128  bool removeProjects();
129 
139  bool saveProjects() const;
140 
150  bool saveExternChangedProjects() const;
151 
157  void resetProjects() const;
158 
166  void resetExternChangedProjects() const;
167 
171  QStringList projectNames() const;
172 
180  bool validateWorkspaceDomDocument(const QDomDocument& domDocument);
181 
188  QDomDocument workspaceDomDocument() const;
189 
195  QString name() const;
196 
204  void setName(const QString& name);
205 
211  bool isDefault() const;
212 
221  void setDefault(bool isDefault);
222 
232  QString version() const;
233 
246  void setVersion(const QString& version);
247 
257  int majorWorkspaceVersion() const;
258 
271  void setMajorWorkspaceVersion(int majorWorkspaceVersion);
272 
282  int minorWorkspaceVersion() const;
283 
296  void setMinorWorkspaceVersion(int minorWorkspaceVersion);
297 
304  QVector<QSharedPointer<AbstractProject>> projects() const;
305 
315  QSharedPointer<AbstractProject> project(QString connectionString) const;
316 
330  bool addProject(const QSharedPointer<AbstractProject>& project);
331 
340  void setProjects(const QVector<QSharedPointer<AbstractProject>>& projects);
341 
348  int projectCount() const;
349 
358  void setConnectionString(const QString& connectionString);
359 
369  QString connectionString() const;
370 
376  QString description() const;
377 
385  void setDescription(const QString& description);
386 
392  bool isOpen() const;
393 
401  virtual void setOpen(bool isOpen);
402 
406  QString className() const;
407 
412 
416  QString typeString() const;
417 
421  bool isValid() const;
422 
428  const QString lastError() const;
429 
435  void clearLastError();
436 
444  bool contains(const QSharedPointer<AbstractProject>& project) const;
445 
451  QString lastUsedDateTime() const;
452 
460  void setLastUsedDateTime(const QString& lastUsedDateTime);
461 
462 protected:
470  AbstractWorkspace(const QString& typeString);
471 
479  void setValid(bool isValid);
480 
488  void setLastError(const QString& lastError);
489 
498  bool setWorkspaceProperties(const QDomDocument& domDocument);
499 
509  void setWorkspaceDomDocument(const QDomDocument &workspaceDomDocument);
510 
511 private:
512  QScopedPointer<SettingsScope> _settingsScope;
513  QVector<QSharedPointer<AbstractProject>> _projects;
514  bool _isOpen = false;
515  bool _isDefault = false;
516  bool _isValid = false;
517  QString _description;
518  QString _name;
519  QString _typeString;
520  QString _lastError;
521  QString _version;
522  QString _connectionString;
523  int _majorWorkspaceVersion = -1;
524  int _minorWorkspaceVersion = -1;
525  QDateTime _lastUsedDateTime;
526  QDomDocument _workspaceDomDocument;
527 
528 signals:
529  void workspaceUpdated();
530  void isValidChanged(bool isValid);
531  void workspaceNameChanged(const QString& workspaceName);
532  void workspaceConnectionChanged(const QString& workspaceConnection);
533  void workspaceDescriptionChanged(const QString& workspaceDescription);
534  void projectDomDocumentChanged(const QSharedPointer<AbstractProject>& project);
535 };
536 
537 #endif // ABSTRACT_WORKSPACE_H
int projectCount() const
Definition: abstract_workspace.cpp:176
void setLastError(const QString &lastError)
Set the last occured workspace error string.
Definition: abstract_workspace.cpp:110
bool isValid() const
Definition: abstract_workspace.cpp:115
int minorWorkspaceVersion() const
Definition: abstract_workspace.cpp:197
QStringList projectNames() const
Definition: abstract_workspace.cpp:344
virtual void init()=0
Initialize the Workspace and set isValid flag. This function must be called, otherwise the workspace ...
virtual bool save()=0
Save workspace with all settings.
void setValid(bool isValid)
Set the workspace valid. This property decides if a workspace is loadable or not. ...
Definition: abstract_workspace.cpp:120
static QDomDocument workspaceDomDocumentTemplate(const QString &name, const QString &version, const QString &description)
This static function creates a clean workspace DomDocument.
Definition: abstract_workspace.cpp:253
void clearLastError()
Definition: abstract_workspace.cpp:105
void resetProjects() const
Reset all projects in workspace. Reload the complete project structure from xml. All settings...
Definition: abstract_workspace.cpp:407
void setDescription(const QString &description)
Set the workspace description.
Definition: abstract_workspace.cpp:145
QDomDocument workspaceDomDocument() const
Definition: abstract_workspace.cpp:55
The SettingsScope class acts as a container for scoped settings.
Definition: settings_scope.h:21
void setMinorWorkspaceVersion(int minorWorkspaceVersion)
Set the workspace minor version. If the version is not compatible with the application condition the ...
Definition: abstract_workspace.cpp:202
QSharedPointer< AbstractProject > project(QString connectionString) const
Definition: abstract_workspace.cpp:165
bool isDefault() const
SettingsScope * settingsScope()
Definition: abstract_workspace.cpp:248
int majorWorkspaceVersion() const
Definition: abstract_workspace.cpp:207
bool removeProjects()
Remove all projects from workspace. The projects will not be deleted.
Definition: abstract_workspace.cpp:364
void resetExternChangedProjects() const
Reset all projects in workspace which are changed by extern.
Definition: abstract_workspace.cpp:385
virtual bool test()=0
Workspace test procedure. The Test-Procedure is defined by the specific workspace class...
QString description() const
Definition: abstract_workspace.cpp:140
QString version() const
Definition: abstract_workspace.cpp:187
bool saveExternChangedProjects() const
Save all projects in workspace which are changed by extern.
Definition: abstract_workspace.cpp:370
AbstractWorkspace(const QString &typeString)
AbstractWorkspace constructor with typeString definition (e,g. File, Sql).
Definition: abstract_workspace.cpp:6
virtual bool deleteProject(const QSharedPointer< AbstractProject > &project)=0
Delete a project and remove it from workspace.
bool setWorkspaceProperties(const QDomDocument &domDocument)
Set the workspace properties. The properties will be read from domDocument.
Definition: abstract_workspace.cpp:17
virtual bool deleteWorkspace(bool deleteProjects=false)=0
Delete workspace. The function deletes this workspace and all included projects, if the deleteProject...
bool isOpen() const
Definition: abstract_workspace.cpp:130
void setName(const QString &name)
Set the workspace name.
Definition: abstract_workspace.cpp:237
virtual bool compare(const QSharedPointer< AbstractWorkspace > &otherWorkspace) const =0
Compare a other Workspace source with this Workspace source (not the Object adress).
void setMajorWorkspaceVersion(int majorWorkspaceVersion)
Set the workspace major version. If the version is not compatible with the application condition the ...
Definition: abstract_workspace.cpp:212
QString typeString() const
Definition: abstract_workspace.cpp:227
void setVersion(const QString &version)
Set the workspace version. If the version is not compatible with the application condition the worksp...
Definition: abstract_workspace.cpp:192
const QString lastError() const
Definition: abstract_workspace.cpp:100
void setLastUsedDateTime(const QString &lastUsedDateTime)
Set the workspace last used date value ("MM/dd/yyyy hh:mm:ss")
Definition: abstract_workspace.cpp:89
void setConnectionString(const QString &connectionString)
Set the Workspace connection string. The connectionString is unique source identifier inside a runnin...
Definition: abstract_workspace.cpp:65
bool addProject(const QSharedPointer< AbstractProject > &project)
Add a project into workspace.
Definition: abstract_workspace.cpp:334
virtual void setOpen(bool isOpen)
Set the workspace open (in use) state.
Definition: abstract_workspace.cpp:135
bool saveProjects() const
Save all projects in workspace.
Definition: abstract_workspace.cpp:394
bool removeProject(const QSharedPointer< AbstractProject > &project)
Remove a project from workspace. The project will not be deleted.
Definition: abstract_workspace.cpp:355
virtual void update()=0
Update the workspace after property changes.
void setProjects(const QVector< QSharedPointer< AbstractProject >> &projects)
Set the vector of projects for a workspace.
Definition: abstract_workspace.cpp:155
QString lastUsedDateTime() const
Definition: abstract_workspace.cpp:80
void setDefault(bool isDefault)
Set workspace as default workspace. On Traviz start this workspace will be loaded directly...
Definition: abstract_workspace.cpp:222
QString connectionString() const
The Workspace connection string holds the source connection information (e.g File-Workspace -> filena...
Definition: abstract_workspace.cpp:75
QString name() const
Definition: abstract_workspace.cpp:232
bool contains(const QSharedPointer< AbstractProject > &project) const
Definition: abstract_workspace.cpp:323
QString className() const
Definition: abstract_workspace.cpp:181
QVector< QSharedPointer< AbstractProject > > projects() const
Definition: abstract_workspace.cpp:160
Definition: abstract_workspace.h:23
void setWorkspaceDomDocument(const QDomDocument &workspaceDomDocument)
Set the workspace dom document. The domdocument hold all information about the workspace (e...
Definition: abstract_workspace.cpp:60
bool validateWorkspaceDomDocument(const QDomDocument &domDocument)
Validate a workspace DomDocument.
Definition: abstract_workspace.cpp:265