DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAXmlHelper.h
1#ifndef DAXMLHELPER_H
2#define DAXMLHELPER_H
3#include "DAGuiAPI.h"
4#include <QDomDocument>
5#include <QVariant>
6#include <QVersionNumber>
7#include <QHash>
8#include "DAData.h"
9#include "DADataManager.h"
10#include "DAAbstractNode.h"
11#include "DAGraphicsItemGroup.h"
15// qwt
16class QwtPlotLayout;
17class QwtPlotItem;
18class QwtText;
19class QwtScaleDraw;
20class QwtDateScaleDraw;
21class QwtScaleWidget;
22namespace DA
23{
24class DAWorkFlowEditWidget;
25class DAWorkFlow;
26class DAWorkFlowGraphicsScene;
27class DAWorkFlowGraphicsView;
28class DAWorkFlowOperateWidget;
29class DAGraphicsItem;
30class DAGraphicsScene;
31class DAGraphicsResizeableItem;
32class DAColorTheme;
33class DAChartOperateWidget;
34class DAFigureWidget;
35class DAChartWidget;
36class DAChartItemsManager;
37class DAChartAxisRangeBinder;
38
49class DAGUI_API DAXmlHelper
50{
51 DA_DECLARE_PRIVATE(DAXmlHelper)
52public:
55
56public:
57 void setLoadedVersionNumber(const QVersionNumber& v);
58 QVersionNumber getLoaderVersionNumber() const;
59 static QVersionNumber getCurrentVersionNumber();
60 // 标准保存—— DAWorkFlowEditWidget
61 QDomElement makeElement(DAWorkFlowEditWidget* wfe, const QString& tagName, QDomDocument* doc);
62 bool loadElement(DAWorkFlowEditWidget* wfe, const QDomElement* ele);
63 // 标准保存—— DAWorkFlowEditWidget
64 QDomElement makeElement(DAWorkFlowOperateWidget* wfo, const QString& tagName, QDomDocument* doc);
65 bool loadElement(DAWorkFlowOperateWidget* wfo, const QDomElement* workflowsEle);
66 // 创建剪切板描述xml
67 QDomElement makeClipBoardElement(const QList< DAGraphicsItem* > its,
68 const QString& tagName,
69 QDomDocument* doc,
70 bool isCopyType = true);
71 bool loadClipBoardElement(const QDomElement* clipBoardElement, DAWorkFlowGraphicsScene* sc);
72 // DAGraphicsItem的通用保存
73 static QDomElement makeElement(const DAGraphicsItem* item, const QString& tagName, QDomDocument* doc);
74 static bool loadElement(DAGraphicsItem* item, const QDomElement* tag, const QVersionNumber& v = QVersionNumber());
75 static QGraphicsItem* loadItemElement(const QDomElement* itemEle, const QVersionNumber& v = QVersionNumber());
76 // DAGraphicsItemGroup的通用保存,注意!!!此函数并不会把子item的信息保存,仅仅记录子item的id
77 static QDomElement makeElement(const DAGraphicsItemGroup* itemGroup, const QString& tagName, QDomDocument* doc);
78 static bool loadElement(DAGraphicsScene* scene,
80 const QDomElement* groupElement,
81 const QVersionNumber& v = QVersionNumber());
82 // DA支持的所有QGraphicsItem的通用保存
83 static QDomElement makeElement(const QGraphicsItem* item, const QString& tagName, QDomDocument* doc);
84 static bool loadElement(QGraphicsItem* item, const QDomElement* tag, const QVersionNumber& v = QVersionNumber());
85 // 获取所有处理过的item
86 QList< QGraphicsItem* > getAllDealItems() const;
87 // DAColorTheme
88 static QDomElement makeElement(const DAColorTheme* ct, const QString& tagName, QDomDocument* doc);
89 static bool loadElement(DAColorTheme* ct, const QDomElement* tag, const QVersionNumber& v = QVersionNumber());
90 //===============================================================
91 // DAChartOperate相关
92 //===============================================================
93 static QDomElement
94 makeElement(DAChartOperateWidget* chartOpt, const QString& tagName, QDomDocument* doc, DAChartItemsManager* itemsMgr);
95 static bool loadElement(DAChartOperateWidget* chartOpt,
96 const QDomElement* tag,
97 const DAChartItemsManager* itemsMgr,
98 const QVersionNumber& v = QVersionNumber());
99 // DAFigureWidget
100 static QDomElement
101 makeElement(const DAFigureWidget* fig, const QString& tagName, QDomDocument* doc, DAChartItemsManager* itemsMgr);
102 static bool loadElement(DAFigureWidget* fig,
103 const QDomElement* tag,
104 const DAChartItemsManager* itemsMgr,
105 const QVersionNumber& v = QVersionNumber());
106 // DAChartWidget
107 static QDomElement
108 makeElement(const DAChartWidget* chart, const QString& tagName, QDomDocument* doc, DAChartItemsManager* itemsMgr);
109 static bool loadElement(DAChartWidget* chart,
110 const QDomElement* tag,
111 const DAChartItemsManager* itemsMgr,
112 const QVersionNumber& v = QVersionNumber());
113 // DAChartAxisRangeBinder
114 static QDomElement makeElement(const DAChartAxisRangeBinder* axisBinder, const QString& tagName, QDomDocument* doc);
115 static bool
116 loadChartAxisRangeElement(DAFigureWidget* fig, const QDomElement* tag, const QVersionNumber& v = QVersionNumber());
117 // DAChartWidget
118 static QDomElement
119 makeQwtPlotAxisElement(const DAChartWidget* chart, int axisID, const QString& tagName, QDomDocument* doc);
120 static bool loadQwtPlotAxisElement(DAChartWidget* chart,
121 const QDomElement* qwtplotTag,
122 const QVersionNumber& v = QVersionNumber());
123 // QwtPlotLayout 相关
124 static QDomElement makeElement(const QwtPlotLayout* value, const QString& tagName, QDomDocument* doc);
125 static bool loadElement(QwtPlotLayout* value, const QDomElement* tag, const QVersionNumber& version = QVersionNumber());
126 // QwtScaleWidget
127 static QDomElement makeElement(const QwtScaleWidget* value, const QString& tagName, QDomDocument* doc);
128 static bool loadElement(QwtScaleWidget* value, const QDomElement* tag, const QVersionNumber& version = QVersionNumber());
129 // QwtText
130 static QDomElement makeElement(const QwtText* value, const QString& tagName, QDomDocument* doc);
131 static bool loadElement(QwtText* value, const QDomElement* tag, const QVersionNumber& version = QVersionNumber());
132 // QwtPlotItems
133 static QDomElement
134 makeElement(unsigned int plotitemID, const QwtPlotItem* value, const QString& tagName, QDomDocument* doc);
135
136public:
137 // 生成一个qvariant element
138 static QDomElement createVariantValueElement(QDomDocument& doc, const QString& tagName, const QVariant& var);
139 static QVariant loadVariantValueElement(const QDomElement& item, const QVariant& defaultVal);
140 // 带提示的属性转double
141 static qreal attributeToDouble(const QDomElement& item, const QString& att);
142};
143}
144
145#endif // DAXMLHELPER_H
绘图坐标轴绑定器
Definition DAChartAxisRangeBinder.h:14
这个类用于管理和记录整个绘图的所有QwtPlotItem,主要用于持久化的时候,记录QwtPlotItem和key的对应关系
Definition DAChartItemsManager.h:17
绘图操作窗口
Definition DAChartOperateWidget.h:23
增强的Qwt图表控件,提供完整的数据绘图、样式设置和交互控制功能
Definition DAChartWidget.h:40
颜色主题
Definition DAColorTheme.h:15
绘图窗口
Definition DAFigureWidget.h:35
QGraphicsItemGroup的继承
Definition DAGraphicsItemGroup.h:15
DAGraphicsView的基本元件
Definition DAGraphicsItem.h:19
这是带着undostack的GraphicsScene 此QGraphicsScene支持:
Definition DAGraphicsScene.h:30
工作流绘图窗口
Definition DAWorkFlowEditWidget.h:29
The DAWorkFlowGraphicsScene class
Definition DAWorkFlowGraphicsScene.h:18
工作流绘图建模窗口
Definition DAWorkFlowOperateWidget.h:26
DAProjectInterface::getProjectVersion的版本号会通过setVersionNumber设置进DAXmlHelper DAXmlHelper会根据QVersionNumb...
Definition DAXmlHelper.h:50
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44