You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWATI/Include/iData/iXmlManager/Models/iXmlCurveDictConfig.h

205 lines
4.5 KiB
C

#pragma once
#include "iXmlBaseItem.h"
#include "iXmlBtn.h"
#include "Enums.h"
/**
* 线
*/
enum ExceedShowStyle
{
ESS_None = 0,
ESS_Exceed, ///< 越界
ESS_NoExceed, ///< 不越界
ESS_SecondRatio ///< 第二比例
};
/**
*
*/
enum ScaleType
{
ST_None = 0,
ST_Linear, ///< 线性
ST_Logrithmic, ///< 对数
ST_Inclination ///< 倾角
};
/**
* 线
*/
enum CurveStyle
{
CS_None = 0,
CS_Curve, ///< 曲线
CS_PreLadder, ///< 前阶梯
CS_PostLadder, ///< 后阶梯
CS_Pillar, ///< 杆状图
CS_Dot, ///< 散点
CS_DotCurve, ///< 散点曲线
CS_PillarCurve ///< 杆状曲线
};
// @brief 测井曲线绘图配置信息
class I_XMLMANAGER_EXPORT iXmlLogConfig : public iXmlBaseItem
{
public:
iXmlLogConfig(QObject* parent = 0);
~iXmlLogConfig();
// 把List分配到成员变量
// 输入开始的m_listValues中index并且返回下一个index
virtual int allocateInfo(int nIndex);
void clear();
//十进制颜色转换
QColor transColor(int n);
protected:
virtual void initXmlTags();
public:
double m_dLeftScale; //左刻度
double m_dRightScale; //右刻度
ScaleType m_scaleType; //刻度类型
Qt::PenStyle m_eStyle; //线型
double m_dWidth; //线宽
QColor m_clrLine; //线色
int m_nclr; //仅仅做判断用
ExceedShowStyle m_exceedShowStyle; //越界显示方式
};
typedef QVector<iXmlLogConfig*> vecXmlLogConfigsPtr;
// @brief 交会图配置信息
class I_XMLMANAGER_EXPORT iXmlCorssConfig : public iXmlBaseItem
{
public:
iXmlCorssConfig(QObject* parent = 0);
~iXmlCorssConfig();
// 把List分配到成员变量
// 输入开始的m_listValues中index并且返回下一个index
virtual int allocateInfo(int nIndex);
void clear();
protected:
virtual void initXmlTags();
public:
double m_dLeftScale ;
double m_dRightScale;
double m_dMainSpace;
double m_dSubSpace;
};
typedef QVector<iXmlCorssConfig*> vecXmlCorssConfigsPtr;
// @brief 柱状图配置信息
class I_XMLMANAGER_EXPORT iXmlHistoConfig : public iXmlCorssConfig
{
public:
iXmlHistoConfig();
~iXmlHistoConfig();
};
typedef QVector<iXmlHistoConfig*> vecXmlHistoConfigsPtr;
// @brief Curve字典信息
class I_XMLMANAGER_EXPORT iXmlCurveItem : public iXmlBaseItem
{
public:
iXmlCurveItem(QObject* parent = 0);
~iXmlCurveItem();
iXmlCurveItem* getParenItem();
// 把List分配到成员变量
// 输入开始的m_listValues中index并且返回下一个index
virtual int allocateInfo(int nIndex);
virtual void parseInfo(const QDomElement& e);
void clear();
//别名
QString getAlias();
//显示名称
QString getShowName();
//图标
QString getIcon();
//类型
CurveStyle getCurveStyle();
//单位
QString getUnit();
//最大值
double getMax();
//最小值
double getMin();
//备注
QString getRemark();
//测井图
//左刻度
double getLogLeftScale();
//右刻度
double getLogRightScale();
//刻度类型
ScaleType getLogScaleType();
//线型
Qt::PenStyle getLineStyle();
//线宽
double getLineWidth();
//线色
QColor getLineClr();
//越界显示方式
ExceedShowStyle getExceedShowStyle();
//交会图
//左刻度
double getCrossLeftScale();
//右刻度
double getCrossRightScale();
//大格
double getCrossMainSpace();
//小格
double getCrossSubSpace();
//柱状图
//左刻度
double getHistoLeftScale();
//右刻度
double getHistoRightScale();
//大格
double getHistoMainSpace();
//小格
double getHistoSubSpace();
protected:
virtual void initXmlTags();
public:
// QString m_sCode;
QString m_sAlias; //别称,中文
QString m_sShowName; //显示名称
QString m_sIcon; //图标
CurveStyle m_curveStyle; //类型
QString m_sUnit; //单位
double m_dMax; //最大值
double m_dMin; //最小值
QString m_sRemark; //备注
iXmlLogConfig* m_pLogConfig; //测井绘图配置
iXmlCorssConfig* m_pCorssConfig; //交会绘图配置
iXmlHistoConfig* m_pHistoConfig; //柱状绘图配置
};
typedef QVector<iXmlCurveItem*> vecXmlCurveItemsPtr;