查看表格数据
This commit is contained in:
parent
298e0b1cf1
commit
8dcd7dd211
|
|
@ -6,6 +6,7 @@
|
||||||
#include <QList>
|
#include <QList>
|
||||||
#include <QPoint>
|
#include <QPoint>
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
|
#include <QWheelEvent>
|
||||||
//#include "qmycustomplot.h"
|
//#include "qmycustomplot.h"
|
||||||
|
|
||||||
class Q_DECL_EXPORT CallManage : public QObject
|
class Q_DECL_EXPORT CallManage : public QObject
|
||||||
|
|
@ -37,6 +38,7 @@ signals:
|
||||||
void sig_CloseProject();//关闭项目
|
void sig_CloseProject();//关闭项目
|
||||||
|
|
||||||
void sig_ShowCurve(QString strSlfName, QString strName);//曲线数据查看
|
void sig_ShowCurve(QString strSlfName, QString strName);//曲线数据查看
|
||||||
|
void sig_ShowTable(QString strSlfName, QString strName);//表格数据查看
|
||||||
|
|
||||||
void sig_NewTrack(QString strUuid, QString strWellName, QString strSlfName, QString strLineName);//新建道
|
void sig_NewTrack(QString strUuid, QString strWellName, QString strSlfName, QString strLineName);//新建道
|
||||||
void sig_NewTrack_No_Line(QString strUuid, QString strWellName, QString strTrackName);//新建空白道,没有曲线
|
void sig_NewTrack_No_Line(QString strUuid, QString strWellName, QString strTrackName);//新建空白道,没有曲线
|
||||||
|
|
|
||||||
430
OSGDataModel/include/BaseObject.h
Normal file
430
OSGDataModel/include/BaseObject.h
Normal file
|
|
@ -0,0 +1,430 @@
|
||||||
|
/**
|
||||||
|
* @file BaseObject.h
|
||||||
|
* @brief 成图框架依赖的数据层的最小化接口定义
|
||||||
|
* @date 2014-5-29
|
||||||
|
* @author: liyonggang
|
||||||
|
*/
|
||||||
|
#ifndef PAI_FRAME_OSGOBJECT_H
|
||||||
|
#define PAI_FRAME_OSGOBJECT_H
|
||||||
|
#pragma warning( push ,0)
|
||||||
|
#include <vector>
|
||||||
|
#include <QUuid>
|
||||||
|
#include "ObjectGenralFactory.h"
|
||||||
|
// #include "ObjectArchive.h"
|
||||||
|
// #include "PaiObject.h"
|
||||||
|
#include "DataObject.h"
|
||||||
|
// using namespace pai::objectmodel;
|
||||||
|
|
||||||
|
#pragma warning( pop )
|
||||||
|
|
||||||
|
BEGIN_OSGDATAMODEL_NAMESPACE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @class sObjectClassIDKey
|
||||||
|
* @brief 唯一标识Object class ID
|
||||||
|
*/
|
||||||
|
struct OSGDATAMODEL_EXPORT sObjectClassIDKey
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
sObjectClassIDKey();
|
||||||
|
|
||||||
|
sObjectClassIDKey( QUuid ObjectClassID );
|
||||||
|
|
||||||
|
bool operator !=( const sObjectClassIDKey& s );
|
||||||
|
|
||||||
|
bool operator< ( const sObjectClassIDKey& s ) const;
|
||||||
|
|
||||||
|
public:
|
||||||
|
QUuid m_ObjectClassID;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @class 成图框架依赖的数据层的基类接口
|
||||||
|
*/
|
||||||
|
class OSGDATAMODEL_EXPORT CBaseObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CBaseObject()
|
||||||
|
{
|
||||||
|
// m_pPaiObject = NULL;
|
||||||
|
ghostName="";
|
||||||
|
// m_TemplateKey=QVariant();
|
||||||
|
};
|
||||||
|
|
||||||
|
virtual ~CBaseObject() {};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 得到DB Object
|
||||||
|
*/
|
||||||
|
virtual pai::ios::welllog::DataObject *GetDbObject() { return NULL;};
|
||||||
|
virtual CBaseObject * GetVecWindowDocument(){return NULL;};
|
||||||
|
|
||||||
|
|
||||||
|
static CObjectGenralFactory< sObjectClassIDKey,CBaseObject >& GetFatory();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 设置Object在数据树上的check状态
|
||||||
|
*/
|
||||||
|
void SetCheckState( Qt::CheckState state )
|
||||||
|
{
|
||||||
|
m_eCheckState = state;
|
||||||
|
// PaiObject::m_EventAgent.ObjectPropertyChanged( dynamic_cast<PaiObject*>(this),"checkstate",state);
|
||||||
|
}
|
||||||
|
Qt::CheckState GetCheckState()
|
||||||
|
{
|
||||||
|
return m_eCheckState ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 序列化此对象
|
||||||
|
*/
|
||||||
|
// virtual bool Serialize( CObjectArchive &ar ) = 0;
|
||||||
|
|
||||||
|
virtual void Delete() = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Add a child object in general way.
|
||||||
|
* @param pChild the child object handle
|
||||||
|
* @param mountNow 是否将其挂载到树上
|
||||||
|
*/
|
||||||
|
// virtual bool AddChild(PaiObject* pChild, bool mountNow = true) =0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 在iIndex之前插入一个孩子,插入后这个孩子指向了iIndex
|
||||||
|
* @param iIndex 插入的索引
|
||||||
|
* @param pChild 待插入的孩子
|
||||||
|
*/
|
||||||
|
// virtual bool InsertChild(int iIndex,PaiObject* pChild)=0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Remove a child object in general way.
|
||||||
|
* @param pChild the child object handle
|
||||||
|
*/
|
||||||
|
// virtual bool RemoveChild(PaiObject* pChild, bool bDelete = false)=0;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 删除所有的孩子
|
||||||
|
*/
|
||||||
|
virtual void DeleteAllChild() = 0;
|
||||||
|
|
||||||
|
// PaiObject *GetPaiObject()
|
||||||
|
// {
|
||||||
|
// if( !m_pPaiObject )
|
||||||
|
// {
|
||||||
|
// m_pPaiObject = dynamic_cast<PaiObject *>( this );
|
||||||
|
// }
|
||||||
|
// return m_pPaiObject;
|
||||||
|
// }
|
||||||
|
/**
|
||||||
|
* @brief 克隆,深拷贝
|
||||||
|
*/
|
||||||
|
virtual CBaseObject *CloneObject();
|
||||||
|
//为了满足一条曲线测井图中多处显示的需求而来
|
||||||
|
//本质是复制一个对象并将其隐藏
|
||||||
|
virtual CBaseObject *GhostObject();
|
||||||
|
virtual void CopyFrom( CBaseObject *pOSGObjectOther );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 判断子孙后代中是否有指定ID的孩子,包括自己
|
||||||
|
* @param id 孩子id
|
||||||
|
*/
|
||||||
|
// virtual bool Contains(const QUuid& id);
|
||||||
|
/************************************************************************/
|
||||||
|
/* @brief 得到该对象的模板关键字,例如井曲线对象的family名字 */
|
||||||
|
/************************************************************************/
|
||||||
|
// virtual void SetTemplateKey(QVariant TemplateKey);
|
||||||
|
// virtual QVariant GetTemplateKey();
|
||||||
|
//一个对象多处显示时,需要有gohostname来区分和查找
|
||||||
|
//规则ghostName=name+_+Ghost+timeStamp
|
||||||
|
virtual QString GetGhostName(){return ghostName; };
|
||||||
|
virtual void SetGhostName(QString aGhostname){
|
||||||
|
ghostName=aGhostname;
|
||||||
|
};
|
||||||
|
//得到对数据对象的描述性信息,由各个子类实现
|
||||||
|
virtual QString GetDescription(){return "";};
|
||||||
|
protected:
|
||||||
|
Qt::CheckState m_eCheckState;
|
||||||
|
// PaiObject *m_pPaiObject;
|
||||||
|
private:
|
||||||
|
QString ghostName;
|
||||||
|
// QVariant m_TemplateKey;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define DECLARE_COSGOBJECT_H \
|
||||||
|
virtual void Delete();\
|
||||||
|
virtual bool Serialize( CObjectArchive &ar );\
|
||||||
|
virtual bool AddChild(PaiObject* pChild, bool mountNow = true);\
|
||||||
|
virtual bool InsertChild(int iIndex,PaiObject* pChild);\
|
||||||
|
virtual bool RemoveChild(PaiObject* pChild, bool bDelete = false);\
|
||||||
|
virtual void DeleteAllChild();\
|
||||||
|
|
||||||
|
#define IMP_SERIALIZE_CPP( ClassName,BaseClassName)\
|
||||||
|
bool ClassName::Serialize( CObjectArchive &ar )\
|
||||||
|
{\
|
||||||
|
pai::ios::welllog::DataObject* pDbObject = GetDbObject();\
|
||||||
|
QFile *pFile = dynamic_cast<QFile *>( ar.GetDevice() );\
|
||||||
|
bool bToDisk = pFile ? true :false;\
|
||||||
|
if(ar.IsStoring())\
|
||||||
|
{\
|
||||||
|
BEGIN_WRITE_OBJECT( ar,1 );\
|
||||||
|
BEGIN_WRITE_BLOCK( ar, 1);\
|
||||||
|
if( bToDisk)\
|
||||||
|
{\
|
||||||
|
CPaiObjectHelper::SerializeDB( ar,pDbObject,this );\
|
||||||
|
}\
|
||||||
|
/*保存自己的信息*/ \
|
||||||
|
ar << GetID();\
|
||||||
|
ar << GetName();\
|
||||||
|
/*save 所有的孩子*/\
|
||||||
|
if( bToDisk)\
|
||||||
|
{\
|
||||||
|
QList<PaiObject*> lstChildren;\
|
||||||
|
GetChildren(lstChildren);\
|
||||||
|
int nChildCout = lstChildren.size();\
|
||||||
|
ar << nChildCout;\
|
||||||
|
for( long i = 0 ; i< nChildCout;++i )\
|
||||||
|
{\
|
||||||
|
CBaseObject* pChild = dynamic_cast<CBaseObject*>( lstChildren[i] );\
|
||||||
|
assert( pChild );\
|
||||||
|
ar << lstChildren[i] ->GetTypeID().toString();\
|
||||||
|
pChild->Serialize( ar );\
|
||||||
|
}\
|
||||||
|
}\
|
||||||
|
END_WRITE_BLOCK( ar, 1 );\
|
||||||
|
\
|
||||||
|
END_WRITE_OBJECT( ar );\
|
||||||
|
}\
|
||||||
|
else\
|
||||||
|
{\
|
||||||
|
BEGIN_READ_OBJECT( ar,1 );\
|
||||||
|
\
|
||||||
|
BEGIN_READ_BLOCK( 1 ); \
|
||||||
|
if( bToDisk)\
|
||||||
|
{\
|
||||||
|
\
|
||||||
|
CPaiObjectHelper::SerializeDB( ar,pDbObject,this );\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
/*加载自己的信息*/\
|
||||||
|
QString strTmp;\
|
||||||
|
ar >> strTmp; \
|
||||||
|
SetID(strTmp );\
|
||||||
|
QString strName;\
|
||||||
|
ar >> strName;\
|
||||||
|
SetName( strName);\
|
||||||
|
if( bToDisk)\
|
||||||
|
{\
|
||||||
|
/*加载所有的孩子*/\
|
||||||
|
DeleteAllChild();\
|
||||||
|
int nChildCout(0);\
|
||||||
|
ar >> nChildCout;\
|
||||||
|
for( long i = 0 ; i< nChildCout;++i )\
|
||||||
|
{ \
|
||||||
|
QApplication::processEvents();\
|
||||||
|
ar >> strTmp;\
|
||||||
|
QUuid classID = QUuid(strTmp);\
|
||||||
|
CBaseObject *pChild = GetFatory().CreateObject( classID );\
|
||||||
|
PaiObject *pPaiObject = dynamic_cast<PaiObject *>( pChild );\
|
||||||
|
CBaseObjectImpl *pChildImp = dynamic_cast<CBaseObjectImpl *>( pChild );\
|
||||||
|
if( pChildImp )\
|
||||||
|
{\
|
||||||
|
pChildImp->Init( classID );\
|
||||||
|
}\
|
||||||
|
if( pChild )\
|
||||||
|
{\
|
||||||
|
pChild->Serialize( ar );\
|
||||||
|
AddChild( pPaiObject );\
|
||||||
|
}else\
|
||||||
|
{\
|
||||||
|
assert( false);\
|
||||||
|
ar.SkipObject();\
|
||||||
|
}\
|
||||||
|
}\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
END_READ_BLOCK( 1 );\
|
||||||
|
\
|
||||||
|
END_READ_OBJECT( ar );\
|
||||||
|
}\
|
||||||
|
return true;\
|
||||||
|
}\
|
||||||
|
|
||||||
|
#define IMP_COSGOBJECT_CPP( ClassName,BaseClassName)\
|
||||||
|
void ClassName::Delete()\
|
||||||
|
{ \
|
||||||
|
DeleteAllChild();\
|
||||||
|
delete this;\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
\
|
||||||
|
bool ClassName::AddChild(PaiObject* pChild, bool mountNow )\
|
||||||
|
{ \
|
||||||
|
CObjProject::AddIDMap( pChild->GetID(),dynamic_cast<CBaseObject *>( pChild) );\
|
||||||
|
if(mountNow) return BaseClassName::AddChild( pChild,MountOnTree );\
|
||||||
|
else return BaseClassName::AddChild( pChild,MountNoTree );\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
bool ClassName::InsertChild(int iIndex,PaiObject* pChild)\
|
||||||
|
{\
|
||||||
|
CObjProject::AddIDMap( pChild->GetID(), dynamic_cast<CBaseObject *>( pChild));\
|
||||||
|
return BaseClassName::InsertChild( iIndex, pChild );\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
bool ClassName::RemoveChild(PaiObject* pChild, bool bDelete )\
|
||||||
|
{ \
|
||||||
|
CObjProject::RemoveIDMap( dynamic_cast<CBaseObject*>(pChild ) );\
|
||||||
|
return BaseClassName::RemoveChild( pChild,bDelete );\
|
||||||
|
\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
void ClassName::DeleteAllChild()\
|
||||||
|
{\
|
||||||
|
QList<PaiObject*>::iterator it = m_children.begin();\
|
||||||
|
while ( it != m_children.end() )\
|
||||||
|
{\
|
||||||
|
PaiObject* pChild = (*it);\
|
||||||
|
CObjProject::RemoveIDMap( dynamic_cast<CBaseObject*>( pChild ) );\
|
||||||
|
pChild->Delete();\
|
||||||
|
++it;\
|
||||||
|
}\
|
||||||
|
m_children.clear();\
|
||||||
|
}\
|
||||||
|
|
||||||
|
|
||||||
|
// class OSGDATAMODEL_EXPORT CBaseObjectImpl : public CBaseObject
|
||||||
|
// {
|
||||||
|
// Q_OBJECT
|
||||||
|
// public:
|
||||||
|
// CBaseObjectImpl();
|
||||||
|
|
||||||
|
// virtual ~CBaseObjectImpl();
|
||||||
|
|
||||||
|
// virtual void Init(QUuid classID);
|
||||||
|
|
||||||
|
// virtual QUuid GetTypeID() const;
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * @brief 得到DB Object
|
||||||
|
// */
|
||||||
|
// virtual pai::ios::welllog::DataObject *GetDbObject();
|
||||||
|
|
||||||
|
// virtual void Delete();
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * @brief 序列化此对象
|
||||||
|
// */
|
||||||
|
// // virtual bool Serialize( CObjectArchive &ar );
|
||||||
|
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * @brief Add a child object in general way.
|
||||||
|
// * @param pChild the child object handle
|
||||||
|
// * @param mountNow 是否将其挂载到树上
|
||||||
|
// */
|
||||||
|
// // virtual bool AddChild(PaiObject* pChild, bool mountNow = true);
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * @brief 在iIndex之前插入一个孩子,插入后这个孩子指向了iIndex
|
||||||
|
// * @param iIndex 插入的索引
|
||||||
|
// * @param pChild 待插入的孩子
|
||||||
|
// */
|
||||||
|
// // virtual bool InsertChild(int iIndex,PaiObject* pChild);
|
||||||
|
|
||||||
|
// void MoveChild(int From,int To);
|
||||||
|
// // int GetChildPos(PaiObject* pChild);
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * @brief Remove a child object in general way.
|
||||||
|
// * @param pChild the child object handle
|
||||||
|
// */
|
||||||
|
// // virtual bool RemoveChild(PaiObject* pChild, bool bDelete = false);
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * @brief 把孩子移除出来,但不删除此对象
|
||||||
|
// * @param pChild the child object handle
|
||||||
|
// */
|
||||||
|
// // virtual bool TakeChild(PaiObject* pChild);
|
||||||
|
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * @brief 删除所有的孩子
|
||||||
|
// */
|
||||||
|
// virtual void DeleteAllChild();
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// *@brief 查找是否存在指定的孩子
|
||||||
|
// */
|
||||||
|
// // virtual bool HasChildren(PaiObject* pChild);
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// *@brief 是否存在孩子
|
||||||
|
// */
|
||||||
|
// virtual bool isExistsName(QString name);
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// *@brief 是否可以在树上显示
|
||||||
|
// */
|
||||||
|
// void SetVisibleOnTree(bool visible);
|
||||||
|
|
||||||
|
// protected:
|
||||||
|
// QUuid m_classTypeID;
|
||||||
|
// signals:
|
||||||
|
// /**
|
||||||
|
// *@brief 错误信息
|
||||||
|
// */
|
||||||
|
// void signalErrorInfo(QString);
|
||||||
|
// };
|
||||||
|
|
||||||
|
// class OSGDATAMODEL_EXPORT CPaiObjectHelper
|
||||||
|
// {
|
||||||
|
// public:
|
||||||
|
// /**
|
||||||
|
// * @brief 把DB Object 序列化到数据库
|
||||||
|
// */
|
||||||
|
// // static bool SerializeDB( CObjectArchive &ar,pai::ios::welllog::DataObject *pDbObject,pai::objectmodel::PaiObject *pPaiObject );
|
||||||
|
|
||||||
|
|
||||||
|
// //递归得到所有的孩子(包括自己 ,自己在第一个)
|
||||||
|
// // static void RecursionGetAllChild( PaiObject* pThis,std::vector<PaiObject*> &vChild );
|
||||||
|
// // static void RecursionGetAllChildren( PaiObject* pThis,std::vector<CBaseObject*> &vChild );
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * @brief 得到唯一的不重复的孩子的name
|
||||||
|
// */
|
||||||
|
// // static QString GetUniqueChildName( PaiObject *pPaiObject,QString strPreFixName );
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * @brief 得到根对象,一般是Project
|
||||||
|
// */
|
||||||
|
// // static PaiObject *GetRoot(PaiObject *);
|
||||||
|
|
||||||
|
// //得到所选择的当前item对应viewObject下的所有的子孙
|
||||||
|
// static std::vector<CBaseObject*> GetAllSymbolObject(CBaseObject * pOSGObject);
|
||||||
|
|
||||||
|
// //得到某一棵子树
|
||||||
|
// static CBaseObject * GetSubtree(CBaseObject* pThis,QString strRelativeFolderPath);
|
||||||
|
|
||||||
|
// // static PaiObject * GetChildByName(PaiObject *pObject,QString name);
|
||||||
|
|
||||||
|
// };
|
||||||
|
|
||||||
|
|
||||||
|
//Object 插件机制和示例代码
|
||||||
|
#define BEGIN_REGISTER_OBJECT(className) BEGIN_REGISTER(sObjectClassIDKey,CBaseObject,className)
|
||||||
|
#define END_REGISTER_OBJECT(className) END_REGISTER( sObjectClassIDKey,CBaseObject,className )
|
||||||
|
//BEGIN_REGISTER_OBJECT(CObjWellLog)
|
||||||
|
//GetClassID_WellLog()
|
||||||
|
//END_REGISTER_OBJECT( CObjWellLog )
|
||||||
|
|
||||||
|
//Object 插件工厂
|
||||||
|
typedef CObjectGenralFactory< sObjectClassIDKey,CBaseObject > COSGObjectFactory;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
END_OSGDATAMODEL_NAMESPACE
|
||||||
|
|
||||||
|
using namespace pai::datamodel;
|
||||||
|
#endif
|
||||||
167
OSGDataModel/include/CStringType.h
Normal file
167
OSGDataModel/include/CStringType.h
Normal file
|
|
@ -0,0 +1,167 @@
|
||||||
|
/**
|
||||||
|
* @file CStringTyle.h
|
||||||
|
* @brief CString数据自定义、井以及井次结构体
|
||||||
|
* @date 2014-10-10
|
||||||
|
* @author: ZhouWenfei
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PAI_FRAME_CSTRING_H__
|
||||||
|
#define PAI_FRAME_CSTRING_H__
|
||||||
|
#pragma once
|
||||||
|
#include <iostream>
|
||||||
|
#include <QString>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QDialogButtonBox>
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QFormLayout>
|
||||||
|
#include <QTextEdit>
|
||||||
|
#include <QDialogButtonBox>
|
||||||
|
#include <QFormLayout>
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
#pragma execution_character_set("utf-8")
|
||||||
|
#pragma warning( push ,0)
|
||||||
|
//#include "BaseFunExport.h"
|
||||||
|
#pragma warning( pop )
|
||||||
|
//#ifdef MessageBox
|
||||||
|
//#define MessageBox MessageBox
|
||||||
|
//#endif
|
||||||
|
#define MAX_PATH 1024
|
||||||
|
//#define _MAX_PATH 1024
|
||||||
|
#define MaxCurve 1024
|
||||||
|
#define curve_name_len 256
|
||||||
|
#define curve_unit_len 256
|
||||||
|
#define MIN_RANK rank_char
|
||||||
|
#define MAX_RANK rank_longlong
|
||||||
|
|
||||||
|
#define INTMAX_RANK rank_longlong
|
||||||
|
#define SIZE_T_RANK rank_long
|
||||||
|
#define PTRDIFF_T_RANK rank_long
|
||||||
|
#define MB_OK QMessageBox::Ok
|
||||||
|
typedef unsigned short WORD;
|
||||||
|
#ifdef WIN32
|
||||||
|
typedef unsigned long DWORD;
|
||||||
|
typedef DWORD *LPDWORD;
|
||||||
|
typedef void *HANDLE;
|
||||||
|
#else
|
||||||
|
typedef unsigned int DWORD;
|
||||||
|
typedef DWORD *LPDWORD;
|
||||||
|
typedef void *HANDLE;
|
||||||
|
#endif
|
||||||
|
typedef unsigned char BYTE;
|
||||||
|
typedef char* LPSTR;
|
||||||
|
typedef void* LPVOID;
|
||||||
|
|
||||||
|
class CString;
|
||||||
|
typedef QList<CString> CStringList;
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//#define REPR_INT 1
|
||||||
|
//#define REPR_SHORT 2
|
||||||
|
//#define REPR_LONG 3
|
||||||
|
//#define REPR_FLOAT 4
|
||||||
|
//#define REPR_DOUBLE 5
|
||||||
|
//#define REPR_STRING 6
|
||||||
|
//#define REPR_CHAR 7
|
||||||
|
//#define REPR_UCHAR 8
|
||||||
|
//#define REPR_USHORT 9
|
||||||
|
//#define REPR_UINT 10
|
||||||
|
//#define REPR_ULONG 11
|
||||||
|
//class BASEFUN_EXPORT CString;
|
||||||
|
|
||||||
|
//构建CString
|
||||||
|
class CString
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CString(const char *str = nullptr);
|
||||||
|
CString(const QString str);
|
||||||
|
CString(const CString &other);
|
||||||
|
~CString();
|
||||||
|
|
||||||
|
int GetLength()const;
|
||||||
|
int Find(char *str);
|
||||||
|
int Find(char str);
|
||||||
|
int Find(CString &another);
|
||||||
|
int Find(char str[],int start);
|
||||||
|
int ReverseFind(char ch);
|
||||||
|
int Insert(int pos ,const CString Sctr);
|
||||||
|
int Replace(const char *Src,const char *Dest);
|
||||||
|
CString & TrimLeft();
|
||||||
|
CString & MakeUpper();
|
||||||
|
CString& MakeLower();
|
||||||
|
CString & TrimRight();
|
||||||
|
bool operator==(const char* other );
|
||||||
|
bool operator!=(const char* other );
|
||||||
|
bool operator==(const CString& other );
|
||||||
|
bool operator!=(const CString& other );
|
||||||
|
char operator[](int i);
|
||||||
|
CString Right(int count)const;
|
||||||
|
CString Left(int count)const;
|
||||||
|
// CString operator = (const QString& SrcStr) ;
|
||||||
|
CString operator + (const CString& SrcStr) ;
|
||||||
|
CString operator += (CString& SrcStr) ;
|
||||||
|
CString operator += (const CString& SrcStr) ;
|
||||||
|
char* GetString()const;
|
||||||
|
char GetChar(int n);
|
||||||
|
char GetAt(int n);
|
||||||
|
CString Mid(int pos,int count)const;
|
||||||
|
CString Mid(int pos)const;
|
||||||
|
void Format(const char *format,...);
|
||||||
|
void Delete(int fromIndex,int length);
|
||||||
|
// const char *m_temp;
|
||||||
|
void Alloc(int len);
|
||||||
|
void Empty();
|
||||||
|
private:
|
||||||
|
QString m_data;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
enum flags {
|
||||||
|
FL_SPLAT0 = 0x00,/* Drop the value, do not assign */
|
||||||
|
|
||||||
|
FL_SPLAT = 0x01,/* Drop the value, do not assign */
|
||||||
|
FL_INV = 0x02,/* Character-set with inverse */
|
||||||
|
FL_WIDTH = 0x04,/* Field width specified */
|
||||||
|
FL_MINUS = 0x08,/* Negative number */
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ranks {
|
||||||
|
|
||||||
|
rank_char = -2,
|
||||||
|
rank_short = -1,
|
||||||
|
rank_int = 0,
|
||||||
|
rank_long = 1,
|
||||||
|
rank_longlong = 2,
|
||||||
|
rank_ptr = INT_MAX/* Special value used for pointers */
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
enum bail {
|
||||||
|
|
||||||
|
bail_none = 0,/* No error condition */
|
||||||
|
bail_eof,/* Hit EOF */
|
||||||
|
bail_err/* Conversion mismatch */
|
||||||
|
|
||||||
|
};
|
||||||
|
int AfxMessageBox(CString str);
|
||||||
|
int MessageBox(QWidget *parent,char lpText[128],char*lpCaption, int UINTuType);
|
||||||
|
void ShowMessage(QString mess);
|
||||||
|
|
||||||
|
//构建AfxMessageBox()函数
|
||||||
|
//extern int BASEFUN_EXPORT AfxMessageBox(CString str);
|
||||||
|
//extern int BASEFUN_EXPORT MessageBox(QWidget *parent,char lpText[128],char*lpCaption, int UINTuType);
|
||||||
|
// using namespace pai::graphics;
|
||||||
|
#endif
|
||||||
|
|
||||||
197
OSGDataModel/include/DataObject.h
Normal file
197
OSGDataModel/include/DataObject.h
Normal file
|
|
@ -0,0 +1,197 @@
|
||||||
|
/**
|
||||||
|
* @file DataObject.h
|
||||||
|
* @brief 测井对象基类
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PAI_FRAME_IOSERVICE_DATAOBJECT_H
|
||||||
|
#define PAI_FRAME_IOSERVICE_DATAOBJECT_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
// #include "Turtle.h"
|
||||||
|
|
||||||
|
namespace pai {
|
||||||
|
namespace ios {
|
||||||
|
namespace welllog {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*@class DataObject
|
||||||
|
*@brief 定义测井管理基类
|
||||||
|
*/
|
||||||
|
class DataObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* @brief 构造函数
|
||||||
|
*/
|
||||||
|
DataObject():m_DataID(0),
|
||||||
|
m_DataBelongID(0),
|
||||||
|
m_Name(""),
|
||||||
|
m_Creator(""),
|
||||||
|
m_CreateData(0),
|
||||||
|
m_ModifyData(0),
|
||||||
|
m_LastAccessData(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 析构函数
|
||||||
|
*/
|
||||||
|
virtual ~DataObject(){};
|
||||||
|
/**
|
||||||
|
* @brief 拷贝构造函数
|
||||||
|
*/
|
||||||
|
DataObject(const DataObject& wobject):m_DataID(wobject.GetDataID()),
|
||||||
|
m_DataBelongID(wobject.GetDataBelongID()),
|
||||||
|
m_Name(wobject.GetName()),
|
||||||
|
m_Creator(wobject.GetCreator()),
|
||||||
|
m_CreateData(wobject.GetCreateData()),
|
||||||
|
m_ModifyData(wobject.GetModifyData()),
|
||||||
|
m_LastAccessData(wobject.GetLastAccessData())
|
||||||
|
{
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 赋值
|
||||||
|
*/
|
||||||
|
DataObject & operator=(const DataObject& wobject)
|
||||||
|
{
|
||||||
|
if (this == &wobject)
|
||||||
|
return *this;
|
||||||
|
this->SetDataID(wobject.GetDataID());
|
||||||
|
this->SetDataBelongID(wobject.GetDataBelongID());
|
||||||
|
this->SetName(wobject.GetName());
|
||||||
|
this->SetCreator(wobject.GetCreator());
|
||||||
|
this->SetCreateData(wobject.GetCreateData());
|
||||||
|
this->SetModifyData(wobject.GetModifyData());
|
||||||
|
this->SetLastAccessData(wobject.GetLastAccessData());
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 保存数据
|
||||||
|
*/
|
||||||
|
virtual void Save() = 0;
|
||||||
|
/**
|
||||||
|
* @brief 根据ID获取对象信息
|
||||||
|
* @param[in]id数据ID
|
||||||
|
*/
|
||||||
|
virtual void Get(long long id) = 0;
|
||||||
|
/**
|
||||||
|
* @brief 修改数据
|
||||||
|
*/
|
||||||
|
virtual void Update() = 0;
|
||||||
|
/**
|
||||||
|
* @brief 删除数据
|
||||||
|
*/
|
||||||
|
virtual void Delete(long long id = 0) = 0;
|
||||||
|
/**
|
||||||
|
* @brief 取得创建时间
|
||||||
|
*/
|
||||||
|
long long GetCreateData() const
|
||||||
|
{
|
||||||
|
return m_CreateData;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 取得创建者
|
||||||
|
*/
|
||||||
|
std::string GetCreator() const
|
||||||
|
{
|
||||||
|
return m_Creator;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 取得数据所属ID
|
||||||
|
*/
|
||||||
|
long long GetDataBelongID() const
|
||||||
|
{
|
||||||
|
return m_DataBelongID;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 取得数据ID
|
||||||
|
*/
|
||||||
|
long long GetDataID() const
|
||||||
|
{
|
||||||
|
return m_DataID;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 取得最后访问时间
|
||||||
|
*/
|
||||||
|
long long GetLastAccessData() const
|
||||||
|
{
|
||||||
|
return m_LastAccessData;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 取得修改时间
|
||||||
|
*/
|
||||||
|
long long GetModifyData() const
|
||||||
|
{
|
||||||
|
return m_ModifyData;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 取得数据名
|
||||||
|
*/
|
||||||
|
std::string GetName() const
|
||||||
|
{
|
||||||
|
return m_Name;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 设置创建时间
|
||||||
|
*/
|
||||||
|
void SetCreateData(long long createData)
|
||||||
|
{
|
||||||
|
this->m_CreateData = createData;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 设置创建者
|
||||||
|
*/
|
||||||
|
void SetCreator(std::string creator)
|
||||||
|
{
|
||||||
|
this->m_Creator = creator;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 设置数据所属ID
|
||||||
|
*/
|
||||||
|
void SetDataBelongID(long long dataBelongID)
|
||||||
|
{
|
||||||
|
this->m_DataBelongID = dataBelongID;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 设置数据ID
|
||||||
|
*/
|
||||||
|
void SetDataID(long long dataID)
|
||||||
|
{
|
||||||
|
this->m_DataID = dataID;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 设置最后访问时间
|
||||||
|
*/
|
||||||
|
void SetLastAccessData(long long lastAccessData)
|
||||||
|
{
|
||||||
|
this->m_LastAccessData = lastAccessData;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 设置修改时间
|
||||||
|
*/
|
||||||
|
void SetModifyData(long long modifyData)
|
||||||
|
{
|
||||||
|
this->m_ModifyData = modifyData;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief 设置数据名
|
||||||
|
*/
|
||||||
|
void SetName(std::string name)
|
||||||
|
{
|
||||||
|
this->m_Name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
long long m_DataID; ///<数据ID
|
||||||
|
long long m_DataBelongID; ///<数据所属ID
|
||||||
|
std::string m_Name; ///<数据名
|
||||||
|
std::string m_Creator; ///<创建者
|
||||||
|
long long m_CreateData; ///<创建时间
|
||||||
|
long long m_ModifyData; ///<修改时间
|
||||||
|
long long m_LastAccessData; ///<最后访问时间
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
286
OSGDataModel/include/ObjWelllog.h
Normal file
286
OSGDataModel/include/ObjWelllog.h
Normal file
|
|
@ -0,0 +1,286 @@
|
||||||
|
/**
|
||||||
|
* @file ObjWellLog.h
|
||||||
|
* @brief 测井曲线数据模型
|
||||||
|
* @date 2014-6-3
|
||||||
|
* @author: liyonggang
|
||||||
|
*/
|
||||||
|
#ifndef PAI_FRAME_OSGWELLLOG_H
|
||||||
|
#define PAI_FRAME_OSGWELLLOG_H
|
||||||
|
#pragma warning( push ,0)
|
||||||
|
#include "MemRdWt.h"
|
||||||
|
#include <vector>
|
||||||
|
#include <QUuid>
|
||||||
|
#include <QSharedMemory>
|
||||||
|
#include "BaseObject.h"
|
||||||
|
// #include "WelllogCurve.h"
|
||||||
|
#include "GeometryUtils.h"
|
||||||
|
#include "BaseFun.h"
|
||||||
|
// #include "ObjBaseObject.h"
|
||||||
|
#pragma warning( pop )
|
||||||
|
|
||||||
|
BEGIN_OSGDATAMODEL_NAMESPACE;
|
||||||
|
|
||||||
|
class CObjWell;
|
||||||
|
class CObjWelllogRound;
|
||||||
|
class CObjWellLogTrack;
|
||||||
|
class CObjWellTrack;
|
||||||
|
class OSGDATAMODEL_EXPORT CObjWellLog: public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
CObjWellLog();
|
||||||
|
CObjWellLog(bool visible);
|
||||||
|
~CObjWellLog();
|
||||||
|
Slf_CURVE acurveinfo;
|
||||||
|
CObjWell *GetWell();
|
||||||
|
CObjWelllogRound *GetWelllogRound();
|
||||||
|
std::vector<float>& GetDepths()
|
||||||
|
{
|
||||||
|
return m_vDepths;
|
||||||
|
}
|
||||||
|
std::vector<char>& GetFlags()
|
||||||
|
{
|
||||||
|
return m_vFlags;
|
||||||
|
}
|
||||||
|
void SetModify(bool ischange)
|
||||||
|
{
|
||||||
|
// SetModified(ischange,false);
|
||||||
|
}
|
||||||
|
bool ExpendData(bool isHead,float EDepth);
|
||||||
|
bool DeleteData(float Stdep,float Endep);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 设置对象的名字标识
|
||||||
|
* @param[in] name 名字标识
|
||||||
|
*/
|
||||||
|
virtual void SetName(const QString & name);
|
||||||
|
/**
|
||||||
|
* @brief 得到属性的最小最大值
|
||||||
|
*/
|
||||||
|
|
||||||
|
virtual float GetPropertyMin();
|
||||||
|
|
||||||
|
virtual float GetPropertyMax();
|
||||||
|
|
||||||
|
virtual void SetpropertyMin(float Propertymin);
|
||||||
|
|
||||||
|
virtual void SetpropertyMax(float Propertymax);
|
||||||
|
/**
|
||||||
|
* @brief 重新计算最大最小值
|
||||||
|
*/
|
||||||
|
void ReCalculateMinMax();
|
||||||
|
|
||||||
|
// virtual bool Serialize( CObjectArchive &ar );
|
||||||
|
|
||||||
|
virtual QUuid GetTypeID()const;
|
||||||
|
|
||||||
|
virtual double GetShiftTopDepth();
|
||||||
|
virtual double GetTopDepth();
|
||||||
|
|
||||||
|
virtual double GetShiftBottomDepth();
|
||||||
|
virtual double GetBottomDepth();
|
||||||
|
|
||||||
|
virtual void SetShiftBottomDepth(double bottomDepth);
|
||||||
|
virtual void SetBottomDepth(double bottomDepth);
|
||||||
|
|
||||||
|
virtual void SetShiftTopDepth(double topDepth);
|
||||||
|
virtual void SetTopDepth(double topDepth);
|
||||||
|
|
||||||
|
virtual pai::ios::welllog::DataObject *GetDbObject();
|
||||||
|
virtual QStringList GetColumnHeadList();
|
||||||
|
virtual CBaseObject *CloneObject();
|
||||||
|
//从slf加载数据
|
||||||
|
virtual bool LoadFromSLF();
|
||||||
|
//数据变化后写入slf数据
|
||||||
|
virtual bool SaveToSLF();
|
||||||
|
//从slf文件删除
|
||||||
|
virtual bool DeleteFromSLF();
|
||||||
|
virtual bool CopyToSLFFile(QString targetSLFFileName,bool deleteFromSrc=false,char*newCurveName=NULL);
|
||||||
|
virtual bool RenameToSLF(){return true;};
|
||||||
|
virtual bool CloneInSlfFile(QString newname);
|
||||||
|
virtual bool RenName(const QString & name);
|
||||||
|
virtual void AddShiftDepth(double shiftdepth);
|
||||||
|
virtual void ChangeDepth(double shiftdepth);
|
||||||
|
virtual void ApplyShiftDepth();
|
||||||
|
double GetShiftOffset();
|
||||||
|
void SetShiftOffset(double DepthOffset);
|
||||||
|
void EShiftDepth(int count,float *sdeps,float *edeps);
|
||||||
|
void MoveShift(float sdep,float edep,float dmove);
|
||||||
|
void MoveShift();
|
||||||
|
double GetRlev();
|
||||||
|
void SetRlev(float rlev);
|
||||||
|
bool IsLoaded() {
|
||||||
|
return isRun;
|
||||||
|
}
|
||||||
|
//说明:对象有两个名字,Name和AliasName,name就是slf文件中的curveName
|
||||||
|
virtual void SetAliasName(QString AliasName)
|
||||||
|
{
|
||||||
|
m_AliasName=AliasName;
|
||||||
|
}
|
||||||
|
virtual QString GetAliasName()
|
||||||
|
{
|
||||||
|
return m_AliasName;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void SetUnit(QString Unit)
|
||||||
|
{
|
||||||
|
m_Unit=Unit;
|
||||||
|
}
|
||||||
|
virtual QString GetUnit()
|
||||||
|
{
|
||||||
|
return m_Unit;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void SetAliasUnit(QString AliasUnit)
|
||||||
|
{
|
||||||
|
m_AliasUnit=AliasUnit;
|
||||||
|
}
|
||||||
|
virtual QString GetAliasUnit()
|
||||||
|
{
|
||||||
|
return m_AliasUnit;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void SetDepthAliasUnit(QString DepthAliasUnit)
|
||||||
|
{
|
||||||
|
m_DepthAliasUnit=DepthAliasUnit;
|
||||||
|
}
|
||||||
|
virtual QString GetDepthAliasUnit()
|
||||||
|
{
|
||||||
|
return m_DepthAliasUnit;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void SetDepthUnit(QString DepthUnit)
|
||||||
|
{
|
||||||
|
m_DepthUnit=DepthUnit;
|
||||||
|
}
|
||||||
|
virtual QString GetDepthUnit()
|
||||||
|
{
|
||||||
|
return m_DepthUnit;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetWell(CObjWell *pObjWell)
|
||||||
|
{
|
||||||
|
m_pObjWell=pObjWell;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 根据读取的曲线名称进行自动匹配
|
||||||
|
*/
|
||||||
|
void AutoMatchFamily();
|
||||||
|
/**
|
||||||
|
* @brief familytype初始化曲线名和单位
|
||||||
|
*/
|
||||||
|
void InitCurveNameAndUnitByFamily(std::string familyType);
|
||||||
|
|
||||||
|
//重采样 intervel采样间隔
|
||||||
|
void ReSample(double newDelta);
|
||||||
|
/**
|
||||||
|
* @brief 得到去掉无效值后的MD,Property
|
||||||
|
*/
|
||||||
|
virtual void GetValidMDProperty(PFLOATPROPERTY &vMD,PFLOATPROPERTY &vProperty,float sdep=0,float edep=7000 );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 获得所有的无效和有效的Property
|
||||||
|
*/
|
||||||
|
void GetMDProperty(FLOATPROPERTY &vMD,FLOATPROPERTY &vProperty );
|
||||||
|
/**
|
||||||
|
* @brief 获得深度范围内所有的无效和有效的Property
|
||||||
|
*/
|
||||||
|
void GetZoneMDProperty(FLOATPROPERTY &vMD,FLOATPROPERTY &vProperty ,float sdep=0,float edep=7000);
|
||||||
|
|
||||||
|
void SetMD(PFLOATPROPERTY *vMD );
|
||||||
|
void SetProperty(PFLOATPROPERTY *vMD,PFLOATPROPERTY *vProperty );
|
||||||
|
void SetProperty(PFLOATPROPERTY *vMD,FLOATPROPERTY *vProperty );
|
||||||
|
/**
|
||||||
|
* @brief 得到DB 测井对象
|
||||||
|
*/
|
||||||
|
// pai::ios::welllog::WelllogCurve &GetLogCurve();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get/Set MD,Proeprty
|
||||||
|
*/
|
||||||
|
PFLOATPROPERTY &GetProperty( );
|
||||||
|
PFLOATPROPERTY &GetMD( );
|
||||||
|
void SetProperty(FLOATPROPERTY *vMD, FLOATPROPERTY *vProperty );
|
||||||
|
void SetMD(FLOATPROPERTY *vMD );
|
||||||
|
//将内存数据清空
|
||||||
|
void clearData();
|
||||||
|
void SetSlfFileName(QString filePath);
|
||||||
|
QString GetSlfFileName();
|
||||||
|
virtual QString GetDescription();
|
||||||
|
void SetData(int repCode,char *buffer,double yy);
|
||||||
|
double GetData(int repCode,char *buffer,int repLen);
|
||||||
|
void SetData(int i,float *buffer);//按行写入一个数据
|
||||||
|
double GetData(int i,char *buffer=NULL);//按行杜一个数据
|
||||||
|
double GetData(float dep,char *buffer=NULL);//按深度取一个数据
|
||||||
|
void SetData(float dep,float *value);//按深度写入一个数据
|
||||||
|
void SetData(float dep,float value);
|
||||||
|
CObjWellLogTrack *GetWellLogTrack();
|
||||||
|
CObjWellTrack *GetWellTrack();
|
||||||
|
/************************************************************************/
|
||||||
|
/* @brief 得到该对象的模板关键字,例如井曲线对象的family名字 */
|
||||||
|
/************************************************************************/
|
||||||
|
virtual QVariant GetTemplateKey();
|
||||||
|
QString GetName(){return m_name;}
|
||||||
|
protected:
|
||||||
|
QString m_SlfFileName;
|
||||||
|
//private:
|
||||||
|
|
||||||
|
void _CalculateMinMax(bool force = false);
|
||||||
|
/**
|
||||||
|
* @brief 设置数据所属ID
|
||||||
|
*/
|
||||||
|
void SetBelongID();
|
||||||
|
|
||||||
|
|
||||||
|
float m_fPropertMin;
|
||||||
|
float m_fPropertMax;
|
||||||
|
double m_TopDepth;
|
||||||
|
double m_BottomDepth;
|
||||||
|
|
||||||
|
double m_ShiftTopDepth;
|
||||||
|
double m_ShiftBottomDepth;
|
||||||
|
double m_DepthOffset;
|
||||||
|
|
||||||
|
// pai::ios::welllog::WelllogCurve m_logCurve;
|
||||||
|
protected:
|
||||||
|
PFLOATPROPERTY m_vMD;
|
||||||
|
FLOATPROPERTY m_vMDShifting;
|
||||||
|
PFLOATPROPERTY m_vProperty;
|
||||||
|
LPSTR *m_SharedMemory;
|
||||||
|
HANDLE m_Handle;
|
||||||
|
QString key;
|
||||||
|
public:
|
||||||
|
char m_strValue[200];
|
||||||
|
QString m_AliasName;
|
||||||
|
int m_ObjectType;
|
||||||
|
float m_Rlev;
|
||||||
|
int IsObjectExist(QString name);
|
||||||
|
int m_ChangeNo;
|
||||||
|
std::vector<LayerInfo>m_vLayers;
|
||||||
|
CObjWell *m_pObjWell;
|
||||||
|
std::vector<float> m_vDepths; //深度序列.
|
||||||
|
std::vector<char> m_vFlags; //绘制标志.
|
||||||
|
bool isRun;
|
||||||
|
void loadInfo();
|
||||||
|
bool isLoad;
|
||||||
|
bool isUsing;
|
||||||
|
///////////////////////
|
||||||
|
QString m_Unit;
|
||||||
|
QString m_AliasUnit;
|
||||||
|
QString m_DepthUnit;
|
||||||
|
QString m_DepthAliasUnit;
|
||||||
|
QString m_name;
|
||||||
|
public slots:
|
||||||
|
void slotRefreshData(QString slf,QString curname,QObject*rec=NULL);
|
||||||
|
void slotDeAttchData(QString slf,QString curname);
|
||||||
|
public:
|
||||||
|
};
|
||||||
|
template <typename T>
|
||||||
|
void AddToWellRound(QString objname,T *aclass,char* ID,int Type);
|
||||||
|
|
||||||
|
using namespace pai::datamodel;
|
||||||
|
using namespace pai::ios::welllog;
|
||||||
|
|
||||||
|
END_OSGDATAMODEL_NAMESPACE
|
||||||
|
#endif
|
||||||
33
OSGDataModel/include/ObjWelllogTABLE.h
Normal file
33
OSGDataModel/include/ObjWelllogTABLE.h
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
/**
|
||||||
|
* @file ObjWellLogTABLE.h
|
||||||
|
* @brief 测井多维曲线数据模型
|
||||||
|
* @date 2015-2-10
|
||||||
|
* @author: WANGWEI
|
||||||
|
*/
|
||||||
|
#ifndef PAI_FRAME_OSGWELLLOGTABLE_H
|
||||||
|
#define PAI_FRAME_OSGWELLLOGTABLE_H
|
||||||
|
#pragma warning( push ,0)
|
||||||
|
#include <QUuid>
|
||||||
|
#include "BaseObject.h"
|
||||||
|
#include "ObjWelllog.h"
|
||||||
|
// #include "ObjectEvent.h"
|
||||||
|
#pragma warning( pop )
|
||||||
|
|
||||||
|
BEGIN_OSGDATAMODEL_NAMESPACE;
|
||||||
|
|
||||||
|
class CObjWell;
|
||||||
|
|
||||||
|
class OSGDATAMODEL_EXPORT CObjWellLogTABLE: public CObjWellLog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
CObjWellLogTABLE();
|
||||||
|
virtual ~CObjWellLogTABLE();
|
||||||
|
virtual QUuid GetTypeID()const;
|
||||||
|
};
|
||||||
|
|
||||||
|
using namespace pai::datamodel;
|
||||||
|
using namespace pai::ios::welllog;
|
||||||
|
|
||||||
|
END_OSGDATAMODEL_NAMESPACE
|
||||||
|
#endif
|
||||||
514
OSGDataModel/src/BaseObject.cpp
Normal file
514
OSGDataModel/src/BaseObject.cpp
Normal file
|
|
@ -0,0 +1,514 @@
|
||||||
|
#pragma warning( push ,0)
|
||||||
|
#include <cassert>
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
|
#include <QFile>
|
||||||
|
|
||||||
|
#include "BaseObject.h"
|
||||||
|
#include "ObjectID.h"
|
||||||
|
// #include "ObjProject.h"
|
||||||
|
// #include "ObjWell.h"
|
||||||
|
// #include "ObjWelllogRound.h"
|
||||||
|
// #include "ObjDiscreteWellLog.h"
|
||||||
|
#pragma warning( pop )
|
||||||
|
|
||||||
|
BEGIN_OSGDATAMODEL_NAMESPACE;
|
||||||
|
|
||||||
|
sObjectClassIDKey::sObjectClassIDKey()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sObjectClassIDKey::sObjectClassIDKey( QUuid ObjectClassID )
|
||||||
|
{
|
||||||
|
m_ObjectClassID = ObjectClassID ;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool sObjectClassIDKey::operator !=( const sObjectClassIDKey& s )
|
||||||
|
{
|
||||||
|
return m_ObjectClassID != s.m_ObjectClassID;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool sObjectClassIDKey::operator < ( const sObjectClassIDKey& s ) const
|
||||||
|
{
|
||||||
|
return m_ObjectClassID < s.m_ObjectClassID;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// CBaseObjectImpl::~CBaseObjectImpl()
|
||||||
|
// {
|
||||||
|
// DeleteAllChild();
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// QString CPaiObjectHelper::GetUniqueChildName(PaiObject *pPaiObject,QString strPreFixName )
|
||||||
|
// {
|
||||||
|
// if(! pPaiObject->GetObjectByName ( strPreFixName ) )
|
||||||
|
// return strPreFixName;
|
||||||
|
// return pPaiObject->GetNextChildName(strPreFixName);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// void CBaseObjectImpl::Init(QUuid classID)
|
||||||
|
// {
|
||||||
|
// m_classTypeID = classID;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// QUuid CBaseObjectImpl::GetTypeID() const
|
||||||
|
// {
|
||||||
|
// return m_classTypeID;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// PaiObject *CPaiObjectHelper::GetRoot(PaiObject * pThis)
|
||||||
|
// {
|
||||||
|
// PaiObject *pRoot = pThis;
|
||||||
|
// while( pRoot && pRoot->GetParent() )
|
||||||
|
// {
|
||||||
|
// pRoot = pRoot->GetParent();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// return pRoot;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// bool CBaseObject::Contains(const QUuid& id)
|
||||||
|
// {
|
||||||
|
// if(this->m_pPaiObject != NULL)
|
||||||
|
// {
|
||||||
|
// return NULL != (m_pPaiObject->GetObject(id));
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// std::vector<CBaseObject*> CPaiObjectHelper::GetAllSymbolObject( CBaseObject * pOSGObject )
|
||||||
|
// {
|
||||||
|
// std::vector<PaiObject*> vAllChildrenandSelf;
|
||||||
|
// std::vector<CBaseObject*> vAllChildren;
|
||||||
|
// CPaiObjectHelper::RecursionGetAllChild( dynamic_cast<PaiObject*>(pOSGObject),vAllChildrenandSelf);
|
||||||
|
// foreach (PaiObject* pChild,vAllChildrenandSelf)
|
||||||
|
// {
|
||||||
|
// QString t_name = pChild->GetName();
|
||||||
|
// if ( !(pChild->GetChildrenCount()) )
|
||||||
|
// {
|
||||||
|
// //判断是否为图像 如果不是则continue
|
||||||
|
// if (t_name.right(4).left(1) != ".") continue;
|
||||||
|
// if( dynamic_cast<CBaseObject*>( pChild ) )
|
||||||
|
// vAllChildren.push_back(dynamic_cast<CBaseObject*>( pChild ));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return vAllChildren;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// CBaseObject * CPaiObjectHelper::GetSubtree( CBaseObject * pThis,QString strRelativeFolderPath )
|
||||||
|
// {
|
||||||
|
// QStringList folderNamelist = strRelativeFolderPath.split("/");
|
||||||
|
|
||||||
|
// CBaseObject * pViewObject= pThis;
|
||||||
|
// foreach ( QString strfolderName, folderNamelist )
|
||||||
|
// {
|
||||||
|
// pViewObject = dynamic_cast<CBaseObject*>(GetChildByName(dynamic_cast<PaiObject*>(pViewObject),strfolderName) );
|
||||||
|
// if( !pViewObject) return NULL;
|
||||||
|
// }
|
||||||
|
// return pViewObject;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// PaiObject* CPaiObjectHelper::GetChildByName(PaiObject*pObject,QString name)
|
||||||
|
// {
|
||||||
|
// QList<PaiObject*> lstChildren;
|
||||||
|
// pObject->GetChildren(lstChildren);
|
||||||
|
|
||||||
|
// foreach(PaiObject * pChildObject, lstChildren)
|
||||||
|
// {
|
||||||
|
// if((pChildObject->GetName()) == name) return pChildObject;
|
||||||
|
// }
|
||||||
|
// return NULL;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// pai::ios::welllog::DataObject* CBaseObjectImpl::GetDbObject()
|
||||||
|
// {
|
||||||
|
// return NULL;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// bool CPaiObjectHelper::SerializeDB( CObjectArchive &ar,pai::ios::welllog::DataObject *pDbObject ,pai::objectmodel::PaiObject *pPaiObject )
|
||||||
|
// {
|
||||||
|
// if( ar.IsStoring() )
|
||||||
|
// {
|
||||||
|
// //保存到数据库
|
||||||
|
// long long dataID = 0;
|
||||||
|
// if( pDbObject )
|
||||||
|
// {
|
||||||
|
// dataID = pDbObject->GetDataID();
|
||||||
|
// if( pPaiObject )
|
||||||
|
// {
|
||||||
|
// pDbObject->SetName( pPaiObject->GetName().toStdString() );
|
||||||
|
// }
|
||||||
|
// if( dataID==0 )
|
||||||
|
// {
|
||||||
|
// pai::datamodel::CObjDiscreteWellLog *discreteWellLog = dynamic_cast<pai::datamodel::CObjDiscreteWellLog*>(pPaiObject);
|
||||||
|
// if(discreteWellLog)
|
||||||
|
// {
|
||||||
|
// discreteWellLog->SaveDBObject();
|
||||||
|
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// pDbObject->Save();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }else
|
||||||
|
// {
|
||||||
|
// pDbObject->Update();
|
||||||
|
// }
|
||||||
|
// dataID = pDbObject->GetDataID();
|
||||||
|
// }
|
||||||
|
// ar<< dataID;
|
||||||
|
// }else
|
||||||
|
// {
|
||||||
|
// long long dataID(0);
|
||||||
|
// ar >> dataID;
|
||||||
|
// if( pDbObject && dataID > 0)
|
||||||
|
// {
|
||||||
|
// pDbObject->SetDataID( dataID );
|
||||||
|
// pDbObject->Get( dataID );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
|
||||||
|
CObjectGenralFactory< sObjectClassIDKey,CBaseObject >& CBaseObject::GetFatory()
|
||||||
|
{
|
||||||
|
static COSGObjectFactory fatory;
|
||||||
|
return fatory;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*void CPaiObjectHelper::RecursionGetAllChild(PaiObject* pThis,std::vector<PaiObject*> &vChild)
|
||||||
|
{
|
||||||
|
if( !pThis ) return;
|
||||||
|
|
||||||
|
vChild.push_back( pThis ) ;
|
||||||
|
|
||||||
|
QList<PaiObject*>vChildThis ;
|
||||||
|
pThis->GetChildren(vChildThis);
|
||||||
|
foreach( PaiObject *pChild,vChildThis )
|
||||||
|
{
|
||||||
|
RecursionGetAllChild(pChild, vChild );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CPaiObjectHelper::RecursionGetAllChildren( PaiObject* pThis,std::vector<CBaseObject*> &vChild )
|
||||||
|
{
|
||||||
|
std::vector<PaiObject*> vPaiChild;
|
||||||
|
RecursionGetAllChild( pThis,vPaiChild );
|
||||||
|
|
||||||
|
foreach( PaiObject* pObject,vPaiChild )
|
||||||
|
{
|
||||||
|
if( dynamic_cast<CBaseObject*>( pObject ) )
|
||||||
|
{
|
||||||
|
vChild.push_back( dynamic_cast<CBaseObject*>( pObject ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
// void CBaseObjectImpl::Delete()
|
||||||
|
// {
|
||||||
|
// // PaiObject*pPai=GetParent();
|
||||||
|
// // if(pPai) pPai->RemoveChild(this,false);
|
||||||
|
// // SetParent(NULL);
|
||||||
|
// DeleteAllChild();
|
||||||
|
// delete this;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// bool CBaseObjectImpl::Serialize( CObjectArchive &ar )
|
||||||
|
// {
|
||||||
|
// pai::ios::welllog::DataObject* pDbObject = GetDbObject();
|
||||||
|
|
||||||
|
// QFile *pFile = dynamic_cast<QFile *>( ar.GetDevice() );
|
||||||
|
// bool bToDisk = pFile ? true :false;
|
||||||
|
|
||||||
|
// if(ar.IsStoring())
|
||||||
|
// {
|
||||||
|
// BEGIN_WRITE_OBJECT( ar,1 );
|
||||||
|
|
||||||
|
// BEGIN_WRITE_BLOCK( ar, 1);
|
||||||
|
|
||||||
|
// //保存到数据库
|
||||||
|
// if( bToDisk &&pDbObject)
|
||||||
|
// {
|
||||||
|
// CPaiObjectHelper::SerializeDB( ar,pDbObject,this );
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //保存自己的信息
|
||||||
|
// ar << GetID();
|
||||||
|
// ar << GetName();
|
||||||
|
// ar <<GetGhostName();
|
||||||
|
// //save 所有的孩子
|
||||||
|
// if( bToDisk )
|
||||||
|
// {
|
||||||
|
// QList<PaiObject*> lstChildren;
|
||||||
|
// GetChildren(lstChildren);
|
||||||
|
// int nChildCout = lstChildren.size();
|
||||||
|
// ar << nChildCout;
|
||||||
|
// for( long i = 0 ; i< nChildCout;++i )
|
||||||
|
// {
|
||||||
|
// CBaseObject* pChild = dynamic_cast<CBaseObject*>( lstChildren[i] );
|
||||||
|
// assert( pChild );
|
||||||
|
// ar << lstChildren[i] ->GetTypeID().toString();
|
||||||
|
// pChild->Serialize( ar );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// END_WRITE_BLOCK( ar, 1 );
|
||||||
|
|
||||||
|
// END_WRITE_OBJECT( ar );
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// BEGIN_READ_OBJECT( ar,1 );
|
||||||
|
|
||||||
|
// BEGIN_READ_BLOCK( 1 );
|
||||||
|
|
||||||
|
// if( bToDisk &&pDbObject)
|
||||||
|
// {
|
||||||
|
// CPaiObjectHelper::SerializeDB( ar,pDbObject,this );
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //加载自己的信息
|
||||||
|
// QString strTmp;
|
||||||
|
// ar >> strTmp;
|
||||||
|
// SetID(strTmp );
|
||||||
|
|
||||||
|
// QString strName;
|
||||||
|
// ar >> strName;
|
||||||
|
// SetName( strName);
|
||||||
|
// QString gstrName;
|
||||||
|
// ar >>gstrName;
|
||||||
|
// SetGhostName(gstrName);
|
||||||
|
// //加载所有的孩子
|
||||||
|
// if( bToDisk )
|
||||||
|
// {
|
||||||
|
// DeleteAllChild();
|
||||||
|
// int nChildCout(0);
|
||||||
|
// ar >> nChildCout;
|
||||||
|
// for( long i = 0 ; i< nChildCout;++i )
|
||||||
|
// {
|
||||||
|
// ar >> strTmp;
|
||||||
|
// QUuid classID = QUuid(strTmp);
|
||||||
|
// CBaseObject *pChild = GetFatory().CreateObject( classID );
|
||||||
|
// PaiObject *pPaiObject = dynamic_cast<PaiObject *>( pChild );
|
||||||
|
// CBaseObjectImpl *pChildImp = dynamic_cast<CBaseObjectImpl *>( pChild );
|
||||||
|
// if( pChildImp )
|
||||||
|
// {
|
||||||
|
// pChildImp->Init( classID );
|
||||||
|
// }
|
||||||
|
// if( pChild )
|
||||||
|
// {
|
||||||
|
// pChild->Serialize( ar );
|
||||||
|
// AddChild( pPaiObject );
|
||||||
|
// }else
|
||||||
|
// {
|
||||||
|
// assert( false);
|
||||||
|
// ar.SkipObject();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// END_READ_BLOCK( 1 );
|
||||||
|
|
||||||
|
// END_READ_OBJECT( ar );
|
||||||
|
// }
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
|
||||||
|
CBaseObject *CBaseObject::CloneObject()
|
||||||
|
{
|
||||||
|
// PaiObject *pPaiObject = this->GetPaiObject();
|
||||||
|
// if( pPaiObject )
|
||||||
|
// {
|
||||||
|
// CBaseObject *pClone = GetFatory().CreateObject( pPaiObject->GetTypeID() );
|
||||||
|
// if( pClone )
|
||||||
|
// {
|
||||||
|
// pClone->CopyFrom( this );
|
||||||
|
// pClone->GetPaiObject()->SetID(QUuid::createUuid());
|
||||||
|
// return pClone;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
CBaseObject *CBaseObject::GhostObject()
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
// CBaseObjectImpl* result=dynamic_cast<CBaseObjectImpl*>(CloneObject());
|
||||||
|
// if(!result) return NULL;
|
||||||
|
// result->SetGhostName(result->GetPaiObject()->GetName()+OBJ_GHOST_MARK+QString::fromStdString(GenTimeStamp()));
|
||||||
|
// result->SetVisibleOnTree(false);
|
||||||
|
// return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CBaseObject::CopyFrom( CBaseObject *pOSGObjectOther )
|
||||||
|
{
|
||||||
|
// QByteArray byteArr;
|
||||||
|
// {
|
||||||
|
// CObjectArchive ar( byteArr, eStore );
|
||||||
|
// pOSGObjectOther->Serialize( ar );
|
||||||
|
// }
|
||||||
|
// CObjectArchive ar( byteArr, eLoad );
|
||||||
|
// this->Serialize( ar );
|
||||||
|
}
|
||||||
|
// void CBaseObject::SetTemplateKey(QVariant TemplateKey)
|
||||||
|
// {
|
||||||
|
// m_TemplateKey=TemplateKey;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// QVariant CBaseObject::GetTemplateKey()
|
||||||
|
// {
|
||||||
|
// if(m_TemplateKey!=QVariant()) return m_TemplateKey;
|
||||||
|
// PaiObject* paiObject = this->GetPaiObject();
|
||||||
|
// if(paiObject != NULL)
|
||||||
|
// {
|
||||||
|
// // QUuid val=QUuid::createUuid();
|
||||||
|
// // m_TemplateKey=QVariant(val);
|
||||||
|
// return QVariant(paiObject->GetTypeID());
|
||||||
|
// }
|
||||||
|
// return QVariant();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// bool CBaseObjectImpl::HasChildren(PaiObject* pChild)
|
||||||
|
// {
|
||||||
|
// QList<PaiObject*> objectList;
|
||||||
|
// PaiObject::GetChildren(objectList);
|
||||||
|
// if(objectList.size() > 0)
|
||||||
|
// {
|
||||||
|
// foreach(PaiObject* obj,objectList)
|
||||||
|
// {
|
||||||
|
// if(obj == pChild)
|
||||||
|
// {
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// bool CBaseObjectImpl::AddChild(PaiObject* pChild, bool mountNow )
|
||||||
|
// {
|
||||||
|
// CObjProject::AddIDMap( pChild->GetID(),dynamic_cast<CBaseObject *>( pChild) );
|
||||||
|
// QUuid id=GetTypeID();
|
||||||
|
// if(id==GetClassID_SingleWellMapFolder()
|
||||||
|
// ||id==GetClassID_WorkflowFolder()
|
||||||
|
// ||id==GetClassID_SingleMethodFolder()
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// if(GetChildrenCount()==0){
|
||||||
|
// PaiObject *pPai=GetParent();
|
||||||
|
// CObjProject::RemoveIDMap( dynamic_cast<CBaseObject*>(this ) );
|
||||||
|
// if(pPai)
|
||||||
|
// pPai->RemoveChild(this,false);
|
||||||
|
// SetVisibleOnTree(true);
|
||||||
|
// CObjProject::AddIDMap( GetID(), dynamic_cast<CBaseObject *>( this));
|
||||||
|
// pPai=GetParent();
|
||||||
|
// if(pPai)
|
||||||
|
// pPai->AddChild(this,MountOnTree);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }
|
||||||
|
// if(mountNow) return PaiObject::AddChild( pChild,MountOnTree );
|
||||||
|
// else return PaiObject::AddChild( pChild,MountNoTree );
|
||||||
|
// }
|
||||||
|
|
||||||
|
// bool CBaseObjectImpl::InsertChild(int iIndex,PaiObject* pChild)
|
||||||
|
// {
|
||||||
|
// CObjProject::AddIDMap( pChild->GetID(), dynamic_cast<CBaseObject *>( pChild));
|
||||||
|
// /*
|
||||||
|
// if(pChild&&pChild->GetParent()&&pChild->GetParent()) {
|
||||||
|
// QList<PaiObject *>lists;
|
||||||
|
// pChild->GetParent()->GetChildren(lists);
|
||||||
|
// if(lists.size()<iIndex) {
|
||||||
|
// pChild->GetParent()->AddChild(pChild);
|
||||||
|
// }
|
||||||
|
// else if(iIndex<1) {
|
||||||
|
// iIndex=0;
|
||||||
|
// return PaiObject::InsertChild( iIndex, pChild );
|
||||||
|
// }
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// */
|
||||||
|
// return PaiObject::InsertChild( iIndex, pChild );
|
||||||
|
// }
|
||||||
|
|
||||||
|
// bool CBaseObjectImpl::RemoveChild(PaiObject* pChild, bool bDelete )
|
||||||
|
// {
|
||||||
|
// CObjProject::RemoveIDMap( dynamic_cast<CBaseObject*>(pChild ) );
|
||||||
|
// // m_EventAgent.RemoveObjectChild(this, pChild );
|
||||||
|
// return PaiObject::RemoveChild( pChild,bDelete );
|
||||||
|
|
||||||
|
// }
|
||||||
|
// bool CBaseObjectImpl::isExistsName(QString name)
|
||||||
|
// {
|
||||||
|
// QList<PaiObject*> objs;
|
||||||
|
// if(this->GetParent() != NULL)
|
||||||
|
// {
|
||||||
|
// GetParent()->GetChildren(objs);
|
||||||
|
// }
|
||||||
|
// foreach(PaiObject* obj, objs)
|
||||||
|
// {
|
||||||
|
// if(obj != NULL && obj != this && obj->GetName().compare(name,Qt::CaseInsensitive)==0)
|
||||||
|
// {
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// void CBaseObjectImpl::DeleteAllChild()
|
||||||
|
// {
|
||||||
|
// QList<PaiObject*>::iterator it = m_children.begin();
|
||||||
|
// while ( it != m_children.end() )
|
||||||
|
// {
|
||||||
|
// PaiObject* pChild = (*it);
|
||||||
|
// // m_EventAgent.RemoveObjectChild(this, pChild );
|
||||||
|
// CObjProject::RemoveIDMap( dynamic_cast<CBaseObject*>( pChild ) );
|
||||||
|
// pChild->Delete();
|
||||||
|
// ++it;
|
||||||
|
// }
|
||||||
|
// m_children.clear();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// void CBaseObjectImpl::SetVisibleOnTree(bool visible)
|
||||||
|
// {
|
||||||
|
// SetFlagEnable(PaiObject::VisibibleOnTree,visible);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// CBaseObjectImpl::CBaseObjectImpl()
|
||||||
|
// {
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
// bool CBaseObjectImpl::TakeChild(PaiObject* pChild)
|
||||||
|
// {
|
||||||
|
// if( m_children.contains( pChild ) )
|
||||||
|
// {
|
||||||
|
// // m_EventAgent.RemoveObjectChild( this,pChild );
|
||||||
|
// m_children.removeAll( pChild );
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// int CBaseObjectImpl::GetChildPos(PaiObject* pChild)
|
||||||
|
// {
|
||||||
|
// int o=-1;
|
||||||
|
// for(int i=0;i<m_children.size();i++)
|
||||||
|
// {
|
||||||
|
// if(pChild==m_children.at(i)) {
|
||||||
|
// o=i;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return o;
|
||||||
|
// }
|
||||||
|
// void CBaseObjectImpl::MoveChild(int From,int To)
|
||||||
|
// {
|
||||||
|
// m_children.move(From,To);
|
||||||
|
// }
|
||||||
|
END_OSGDATAMODEL_NAMESPACE
|
||||||
326
OSGDataModel/src/CStringType.cpp
Normal file
326
OSGDataModel/src/CStringType.cpp
Normal file
|
|
@ -0,0 +1,326 @@
|
||||||
|
#include "CStringType.h"
|
||||||
|
#include <QLabel>
|
||||||
|
char *m_temp=NULL;
|
||||||
|
CString::CString(const char *str)
|
||||||
|
{
|
||||||
|
m_temp=NULL;
|
||||||
|
if(str==NULL)
|
||||||
|
m_data ="";
|
||||||
|
else
|
||||||
|
m_data=QString::fromLocal8Bit(str);
|
||||||
|
}
|
||||||
|
CString::CString(const QString str)
|
||||||
|
{
|
||||||
|
m_temp=NULL;
|
||||||
|
if(str==NULL)
|
||||||
|
m_data ="";
|
||||||
|
else
|
||||||
|
m_data=str;
|
||||||
|
}
|
||||||
|
|
||||||
|
CString::~CString()
|
||||||
|
{
|
||||||
|
if(m_temp) delete m_temp;
|
||||||
|
m_temp=NULL;
|
||||||
|
};
|
||||||
|
void CString::Empty()
|
||||||
|
{
|
||||||
|
m_data ="";
|
||||||
|
}
|
||||||
|
|
||||||
|
CString::CString(const CString &other)
|
||||||
|
{
|
||||||
|
m_temp=NULL;
|
||||||
|
m_data=other.m_data;
|
||||||
|
}
|
||||||
|
int CString::GetLength()const
|
||||||
|
{
|
||||||
|
return m_data.length();
|
||||||
|
}
|
||||||
|
int CString::Find(char *str)
|
||||||
|
{
|
||||||
|
std::string dataStr=m_data.toStdString();
|
||||||
|
return dataStr.find(str);
|
||||||
|
}
|
||||||
|
int CString::Find(CString &another)
|
||||||
|
{
|
||||||
|
return m_data.toStdString().find(another.m_data.toStdString());
|
||||||
|
}
|
||||||
|
int CString::Find(char str)
|
||||||
|
{
|
||||||
|
std::string dataStr=m_data.toStdString();
|
||||||
|
return dataStr.find(str);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
|
||||||
|
*/
|
||||||
|
int CString::Find(char str[],int start)
|
||||||
|
{
|
||||||
|
std::string dataStr=m_data.toStdString();
|
||||||
|
int npos=dataStr.find(str);
|
||||||
|
if(npos==-1)
|
||||||
|
return -1;
|
||||||
|
if(npos<start)
|
||||||
|
return -1;
|
||||||
|
return dataStr.find(str);
|
||||||
|
}
|
||||||
|
int CString::ReverseFind(char ch)
|
||||||
|
{
|
||||||
|
int index=m_data.lastIndexOf(ch);
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int CString::Insert(int pos ,const CString Sctr)
|
||||||
|
{
|
||||||
|
m_data.insert(pos,Sctr.m_data);
|
||||||
|
return m_data.length();
|
||||||
|
}
|
||||||
|
|
||||||
|
int CString::Replace(const char *Src,const char *Dest)
|
||||||
|
{
|
||||||
|
int length=((std::string)Src).length();
|
||||||
|
QString srcStr=QString::fromLocal8Bit(Src);
|
||||||
|
QString destStr=QString::fromLocal8Bit(Dest);
|
||||||
|
m_data.replace(srcStr,destStr);
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
void CString::Delete(int fromIndex,int length)
|
||||||
|
{
|
||||||
|
m_data=m_data.remove(fromIndex,length);
|
||||||
|
}
|
||||||
|
CString & CString::TrimLeft()
|
||||||
|
{
|
||||||
|
std::string findStr=" ";
|
||||||
|
std::string tempstr=m_data.toStdString();
|
||||||
|
QString temp=m_data;
|
||||||
|
vector<char>StrVector;
|
||||||
|
int left=0;
|
||||||
|
for (int i=0;i<tempstr.length();i++)
|
||||||
|
{
|
||||||
|
if(tempstr.at(i)==findStr.at(0)) {
|
||||||
|
left++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
m_data=temp.mid(left);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CString & CString::MakeUpper()
|
||||||
|
{
|
||||||
|
m_data=m_data.toUpper();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CString& CString::MakeLower()
|
||||||
|
{
|
||||||
|
m_data=m_data.toLower();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CString & CString::TrimRight()
|
||||||
|
{
|
||||||
|
std::string findStr=" ";
|
||||||
|
std::string tempstr=m_data.toStdString();
|
||||||
|
QString temp=m_data;
|
||||||
|
int flag=0;
|
||||||
|
for (int i=tempstr.length()-1;i>-1;i--)
|
||||||
|
{
|
||||||
|
if(tempstr[i]==findStr.at(0)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
flag=i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_data=temp.left(flag+1);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
bool CString::operator==(const char* other )
|
||||||
|
{
|
||||||
|
QString srcStr=QString::fromLocal8Bit(other);
|
||||||
|
if(this->m_data==srcStr)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
bool CString::operator!=(const char* other )
|
||||||
|
{
|
||||||
|
QString srcStr=QString::fromLocal8Bit(other);
|
||||||
|
if(this->m_data!=srcStr)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
char CString::operator[](int i)
|
||||||
|
{
|
||||||
|
char ch=GetChar(i);
|
||||||
|
return ch;
|
||||||
|
}
|
||||||
|
CString CString::Right(int count)const
|
||||||
|
{
|
||||||
|
if (count<0)
|
||||||
|
{
|
||||||
|
count=0;
|
||||||
|
}
|
||||||
|
if (count>m_data.length())
|
||||||
|
{
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
int length=m_data.length();
|
||||||
|
QString temp=m_data;
|
||||||
|
QString lastdata=temp.remove(0,length-count);
|
||||||
|
CString RightStr(lastdata);
|
||||||
|
return RightStr;
|
||||||
|
}
|
||||||
|
CString CString::Mid(int pos,int count)const
|
||||||
|
{
|
||||||
|
if (count<0)
|
||||||
|
{
|
||||||
|
count=0;
|
||||||
|
}
|
||||||
|
QString temp=m_data.mid(pos,count);
|
||||||
|
CString mstr(temp);
|
||||||
|
return mstr;
|
||||||
|
}
|
||||||
|
CString CString::Mid(int pos)const
|
||||||
|
{
|
||||||
|
QString temp=m_data.mid(pos);
|
||||||
|
CString mstr(temp);
|
||||||
|
return mstr;
|
||||||
|
}
|
||||||
|
|
||||||
|
CString CString::Left(int count)const
|
||||||
|
{
|
||||||
|
if (count<0)
|
||||||
|
{
|
||||||
|
count=0;
|
||||||
|
}
|
||||||
|
if (count>m_data.length())
|
||||||
|
{
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
int length=m_data.length();
|
||||||
|
QString temp=m_data;
|
||||||
|
QString lastdata=temp.remove(count,length-count);
|
||||||
|
CString leftStr(lastdata);
|
||||||
|
return leftStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
CString CString::operator + (const CString& SrcStr)
|
||||||
|
{
|
||||||
|
CString str;
|
||||||
|
str.m_data=m_data+SrcStr.m_data;
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
CString CString::operator = (const QString& SrcStr)
|
||||||
|
{
|
||||||
|
CString str;
|
||||||
|
str.m_data=SrcStr;
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
CString CString::operator += (CString& SrcStr)
|
||||||
|
{
|
||||||
|
m_data = m_data+SrcStr.m_data ;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CString CString::operator += (const CString& SrcStr)
|
||||||
|
{
|
||||||
|
m_data = m_data+SrcStr.m_data ;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
bool CString::operator!=(const CString& other )
|
||||||
|
{
|
||||||
|
return m_data!=other.m_data;
|
||||||
|
}
|
||||||
|
bool CString::operator==(const CString& other )
|
||||||
|
{
|
||||||
|
return m_data==other.m_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CString::Alloc(int len)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
char* CString::GetString() const
|
||||||
|
{
|
||||||
|
int length=((string)(m_data.toLocal8Bit().data())).length();
|
||||||
|
if(m_temp) delete m_temp;
|
||||||
|
m_temp=new char[length+1];
|
||||||
|
// Alloc(length);
|
||||||
|
strcpy(m_temp,m_data.toLocal8Bit().data());
|
||||||
|
return m_temp;
|
||||||
|
}
|
||||||
|
char CString::GetChar(int n)
|
||||||
|
{
|
||||||
|
return GetString()[n];
|
||||||
|
}
|
||||||
|
char CString::GetAt(int n)
|
||||||
|
{
|
||||||
|
return GetChar(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CString::Format(const char *format,...)
|
||||||
|
{
|
||||||
|
//char *str=GetString();
|
||||||
|
va_list args;
|
||||||
|
va_start(args,format);
|
||||||
|
m_data.vsprintf(format,args);
|
||||||
|
char *buf=new char[2*strlen(m_data.toStdString().c_str())+1];
|
||||||
|
vsprintf(buf,format,args);
|
||||||
|
m_data=buf;
|
||||||
|
delete buf;
|
||||||
|
va_end(args);
|
||||||
|
}
|
||||||
|
void ShowMessage(QString mess)
|
||||||
|
{
|
||||||
|
QDialog dialog(NULL);
|
||||||
|
dialog.setModal(false);
|
||||||
|
Qt::WindowFlags flags = dialog.windowFlags();
|
||||||
|
flags |= Qt::WindowStaysOnTopHint;
|
||||||
|
flags &= ~Qt::WindowContextHelpButtonHint;
|
||||||
|
dialog.setWindowFlags(flags);
|
||||||
|
dialog.setWindowTitle("提示");
|
||||||
|
QFormLayout form(&dialog);
|
||||||
|
QLabel edit(&dialog);
|
||||||
|
form.addRow(&edit);
|
||||||
|
edit.setText(mess);
|
||||||
|
// QDialogButtonBox buttonBox(QDialogButtonBox::Yes,Qt::Horizontal, &dialog);
|
||||||
|
// form.addRow(&buttonBox);
|
||||||
|
// if(buttonBox.button(QDialogButtonBox::Yes)) buttonBox.button(QDialogButtonBox::Yes)->setText("退出");
|
||||||
|
// QObject::connect(buttonBox.button(QDialogButtonBox::Yes), SIGNAL(clicked()), NULL, SLOT(reject()));
|
||||||
|
dialog.show();
|
||||||
|
dialog.exec();
|
||||||
|
}
|
||||||
|
int AfxMessageBox(CString str)
|
||||||
|
{
|
||||||
|
QDialog dialog(NULL);
|
||||||
|
dialog.setModal(false);
|
||||||
|
Qt::WindowFlags flags = dialog.windowFlags();
|
||||||
|
flags |= Qt::WindowStaysOnTopHint;
|
||||||
|
flags &= ~Qt::WindowContextHelpButtonHint;
|
||||||
|
dialog.setWindowFlags(flags);
|
||||||
|
dialog.setWindowTitle("提示");
|
||||||
|
QFormLayout form(&dialog);
|
||||||
|
form.addWidget(new QLabel(str.GetString()));
|
||||||
|
// dialog.show();
|
||||||
|
if (dialog.exec() == QDialog::Accepted) {
|
||||||
|
// Do something here
|
||||||
|
}
|
||||||
|
// return MessageBox(NULL,"提示",str.GetString(),NULL );
|
||||||
|
// QString cstr=str.GetString();
|
||||||
|
// QMessageBox msgBox;
|
||||||
|
// msgBox.setText(cstr);
|
||||||
|
// return msgBox.exec();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int MessageBox(QWidget *parent,char lpText[128],char*lpCaption, int UINTuType)
|
||||||
|
{
|
||||||
|
if (!parent)
|
||||||
|
{
|
||||||
|
char *tempName=lpCaption;
|
||||||
|
QString addStr=QString::fromLocal8Bit(tempName);
|
||||||
|
return QMessageBox::information(NULL,lpText,addStr,QMessageBox::Ok);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -31,6 +31,10 @@ DEFINES += QT_DLL
|
||||||
HeadS += ../include/*.h
|
HeadS += ../include/*.h
|
||||||
|
|
||||||
SOURCES += *.cpp
|
SOURCES += *.cpp
|
||||||
|
HEADERS += \
|
||||||
|
../include/BaseObject.h \
|
||||||
|
../include/ObjWelllog.h \
|
||||||
|
../include/ObjWelllogTABLE.h
|
||||||
|
|
||||||
#CPATH = $$system(pwd)
|
#CPATH = $$system(pwd)
|
||||||
# 目标文件夹
|
# 目标文件夹
|
||||||
|
|
|
||||||
1877
OSGDataModel/src/ObjWellLog.cpp
Normal file
1877
OSGDataModel/src/ObjWellLog.cpp
Normal file
File diff suppressed because it is too large
Load Diff
30
OSGDataModel/src/ObjWellLogTABLE.cpp
Normal file
30
OSGDataModel/src/ObjWellLogTABLE.cpp
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
#pragma warning( push ,0)
|
||||||
|
#include <cassert>
|
||||||
|
#include <algorithm>
|
||||||
|
#include "ObjectID.h"
|
||||||
|
#include "ObjWelllogTABLE.h"
|
||||||
|
// #include "ObjWell.h"
|
||||||
|
|
||||||
|
#pragma warning( pop )
|
||||||
|
|
||||||
|
BEGIN_OSGDATAMODEL_NAMESPACE;
|
||||||
|
|
||||||
|
CObjWellLogTABLE::CObjWellLogTABLE()
|
||||||
|
{
|
||||||
|
// SetIconName("icon/Sheet.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
CObjWellLogTABLE::~CObjWellLogTABLE()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
QUuid CObjWellLogTABLE::GetTypeID()const
|
||||||
|
{
|
||||||
|
return GetClassID_WellLogTABLE();
|
||||||
|
}
|
||||||
|
|
||||||
|
// BEGIN_REGISTER_OBJECT(CObjWellLogTABLE)
|
||||||
|
// QUuid(GetClassID_WellLogTABLE())
|
||||||
|
// END_REGISTER_OBJECT( CObjWellLogTABLE );
|
||||||
|
|
||||||
|
END_OSGDATAMODEL_NAMESPACE
|
||||||
|
|
@ -12,13 +12,14 @@
|
||||||
#include "WellLogUI.h"
|
#include "WellLogUI.h"
|
||||||
//#include "Trajectory.h"
|
//#include "Trajectory.h"
|
||||||
//#include "WellLogTableModel.h"
|
//#include "WellLogTableModel.h"
|
||||||
//#include "ObjWelllog.h"
|
#include "ObjWelllog.h"
|
||||||
//#include "BaseDialog.h"
|
//#include "BaseDialog.h"
|
||||||
|
#include "LogIO.h"
|
||||||
#include "MemRdWt.h"
|
#include "MemRdWt.h"
|
||||||
#pragma warning( pop )
|
#pragma warning( pop )
|
||||||
|
|
||||||
//class CDataManagger;
|
//class CDataManagger;
|
||||||
//class GridDataAdapter;
|
class GridDataAdapter;
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
|
|
@ -103,7 +104,7 @@ private:
|
||||||
Ui::WellLogTableDialogNew* m_pUI;
|
Ui::WellLogTableDialogNew* m_pUI;
|
||||||
// QList<CBaseObject *> m_rBaseObjectlist;
|
// QList<CBaseObject *> m_rBaseObjectlist;
|
||||||
// CObjWell* m_pWell;
|
// CObjWell* m_pWell;
|
||||||
// QList<CObjWellLog*> m_pWellLogs;
|
QList<CObjWellLog*> m_pWellLogs;
|
||||||
// //QList<CObjWellLog*> m_pAllWellLogs;
|
// //QList<CObjWellLog*> m_pAllWellLogs;
|
||||||
// CBaseObjectImpl *m_pBaseObjectImpl;
|
// CBaseObjectImpl *m_pBaseObjectImpl;
|
||||||
|
|
||||||
|
|
@ -122,7 +123,7 @@ private:
|
||||||
QStringList m_TitleField;
|
QStringList m_TitleField;
|
||||||
dataType m_DataTyle;
|
dataType m_DataTyle;
|
||||||
//luol 20200302
|
//luol 20200302
|
||||||
//GridDataAdapter* m_gridData;
|
GridDataAdapter* m_gridData;
|
||||||
|
|
||||||
bool m_isShowDig;
|
bool m_isShowDig;
|
||||||
|
|
||||||
|
|
@ -133,9 +134,10 @@ public:
|
||||||
float *val;
|
float *val;
|
||||||
DWORD count;
|
DWORD count;
|
||||||
float sdep,edep,rlev,curDepth;
|
float sdep,edep,rlev,curDepth;
|
||||||
|
int m_ObjectType;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void setName(QString strOldPath, QString strOldName);
|
void setName(QString strOldPath, QString strOldName, int nObjectType);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* PAITABLEWIDGET_H_ */
|
#endif /* PAITABLEWIDGET_H_ */
|
||||||
|
|
|
||||||
|
|
@ -11,12 +11,12 @@
|
||||||
//#include "ui_PaiCoreDialog.h"
|
//#include "ui_PaiCoreDialog.h"
|
||||||
//#include "ObjCoreImage.h"
|
//#include "ObjCoreImage.h"
|
||||||
#include "geometryutils.h"
|
#include "geometryutils.h"
|
||||||
//#include "ObjWelllog.h"
|
#include "ObjWelllog.h"
|
||||||
#include "LogIO.h"
|
#include "LogIO.h"
|
||||||
//#include "CurveLineLog.h"
|
//#include "CurveLineLog.h"
|
||||||
//#include "ObjWelllogTABLE.h"
|
#include "ObjWelllogTABLE.h"
|
||||||
//#include "DataManagger.h"
|
//#include "DataManagger.h"
|
||||||
//#include "griddataadapter.h"
|
#include "griddataadapter.h"
|
||||||
|
|
||||||
//#include "ConsoleOutputWidget.h"
|
//#include "ConsoleOutputWidget.h"
|
||||||
|
|
||||||
|
|
@ -24,21 +24,21 @@
|
||||||
#include "ShowCurve.h"
|
#include "ShowCurve.h"
|
||||||
#include "CurvePropertyEdit.h"
|
#include "CurvePropertyEdit.h"
|
||||||
#include "CallManage.h"
|
#include "CallManage.h"
|
||||||
|
#include "ObjectID.h"
|
||||||
//float保留4位小数
|
//float保留4位小数
|
||||||
#define FLOATPREC 4
|
#define FLOATPREC 4
|
||||||
#define SWITCH_VIEWID "switchId"
|
#define SWITCH_VIEWID "switchId"
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
Slf_WAVE WaveInfo;
|
static Slf_WAVE WaveInfo;
|
||||||
WellLogTableDialogNew::WellLogTableDialogNew(QWidget *parent, Qt::WindowFlags flags)
|
WellLogTableDialogNew::WellLogTableDialogNew(QWidget *parent, Qt::WindowFlags flags)
|
||||||
:QDialog(parent, flags), m_isShowDig(false)
|
:QDialog(parent, flags), m_isShowDig(false)
|
||||||
{
|
{
|
||||||
m_pUI = new Ui::WellLogTableDialogNew();
|
m_pUI = new Ui::WellLogTableDialogNew();
|
||||||
m_pUI->setupUi(this);
|
m_pUI->setupUi(this);
|
||||||
// //数据局部显示适配器
|
// //数据局部显示适配器
|
||||||
// m_gridData = new GridDataAdapter(m_pUI->tableWidget, m_pUI->horizontalScrollBar, m_pUI->verticalScrollBar);
|
m_gridData = new GridDataAdapter(m_pUI->tableWidget, m_pUI->horizontalScrollBar, m_pUI->verticalScrollBar);
|
||||||
|
|
||||||
|
|
||||||
// m_pWell = NULL;
|
// m_pWell = NULL;
|
||||||
|
|
@ -98,9 +98,14 @@ void WellLogTableDialogNew::swtichViewSize()
|
||||||
QSize size=this->size();
|
QSize size=this->size();
|
||||||
if(isExp)
|
if(isExp)
|
||||||
{
|
{
|
||||||
int changeSize=size.width()/2.0;
|
// int changeSize=size.width()/2.0;
|
||||||
|
|
||||||
spanItem->setMinimumWidth(changeSize);
|
// spanItem->setMinimumWidth(changeSize);
|
||||||
|
// spanItem->show();
|
||||||
|
|
||||||
|
m_pUI->tabWidget->setFixedWidth(0);
|
||||||
|
spanItem->setMinimumWidth(0);
|
||||||
|
m_gridData->m_gridWidth=size.width()-10;
|
||||||
spanItem->show();
|
spanItem->show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -186,11 +191,16 @@ void WellLogTableDialogNew::slotImport()
|
||||||
TableFromCSVFile(m_pUI->tableWidget);
|
TableFromCSVFile(m_pUI->tableWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WellLogTableDialogNew::setName(QString strOldPath, QString strOldName)
|
void WellLogTableDialogNew::setName(QString strOldPath, QString strOldName, int nObjectType)
|
||||||
{
|
{
|
||||||
FileName = strOldPath;
|
FileName = strOldPath;
|
||||||
CurveName = strOldName;
|
CurveName = strOldName;
|
||||||
|
m_ObjectType = nObjectType;
|
||||||
|
CObjWellLogTABLE* pWellLog = new CObjWellLogTABLE;
|
||||||
|
pWellLog->SetSlfFileName(strOldPath);
|
||||||
|
pWellLog->m_name = strOldName;
|
||||||
|
m_pWellLogs.clear();
|
||||||
|
m_pWellLogs.append(pWellLog);
|
||||||
//初始化
|
//初始化
|
||||||
InitWell();
|
InitWell();
|
||||||
|
|
||||||
|
|
@ -211,6 +221,19 @@ void WellLogTableDialogNew::InitWell()
|
||||||
// m_gridData->initWellData(D_WellData,m_pWell);
|
// m_gridData->initWellData(D_WellData,m_pWell);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
if (TABLEE_OBJECT == m_ObjectType)
|
||||||
|
{
|
||||||
|
m_gridData->addActonMenu(2);
|
||||||
|
|
||||||
|
m_DataTyle=valid_NULL;
|
||||||
|
//表格数据
|
||||||
|
m_gridData->initTableWellLogData(D_TableWellLogData,m_pWellLogs);
|
||||||
|
m_pUI->tableWidget->verticalHeader()->hide();//隐藏左侧系统序号栏
|
||||||
|
swtichViewSize();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
CLogIO *logio=new CLogIO();
|
CLogIO *logio=new CLogIO();
|
||||||
logio->Open(FileName.toStdString().c_str(),CSlfIO::modeRead);
|
logio->Open(FileName.toStdString().c_str(),CSlfIO::modeRead);
|
||||||
index=logio->OpenCurve(CurveName.toStdString().c_str());
|
index=logio->OpenCurve(CurveName.toStdString().c_str());
|
||||||
|
|
@ -261,13 +284,18 @@ void WellLogTableDialogNew::InitWell()
|
||||||
QTableWidgetItem* item2 = new QTableWidgetItem(QString::number(vtmp));
|
QTableWidgetItem* item2 = new QTableWidgetItem(QString::number(vtmp));
|
||||||
//item2->setFlags(item2->flags() & (~Qt::ItemIsEditable));
|
//item2->setFlags(item2->flags() & (~Qt::ItemIsEditable));
|
||||||
m_pUI->tableWidget->setItem(i, 1, item2);
|
m_pUI->tableWidget->setItem(i, 1, item2);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WellLogTableDialogNew::InitWellLog()
|
bool WellLogTableDialogNew::InitWellLog()
|
||||||
{
|
{
|
||||||
|
if (TABLEE_OBJECT == m_ObjectType)
|
||||||
|
{
|
||||||
|
//表格数据
|
||||||
|
m_gridData->bindData();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//swtichViewSize();
|
//swtichViewSize();
|
||||||
int Type=0;
|
int Type=0;
|
||||||
//if(TypeName=="波列数据")Type=1;
|
//if(TypeName=="波列数据")Type=1;
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ FORMS += \
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
../../common/geometryutils.h \
|
../../common/geometryutils.h \
|
||||||
../CallManage/CallManage.h \
|
../CallManage/CallManage.h \
|
||||||
|
../include/CStringType.h \
|
||||||
../include/MyWelllogRound.h \
|
../include/MyWelllogRound.h \
|
||||||
../include/WellDialog.h \
|
../include/WellDialog.h \
|
||||||
../include/WellLogDialog.h \
|
../include/WellLogDialog.h \
|
||||||
|
|
@ -67,11 +68,14 @@ HEADERS += \
|
||||||
../include/WellLogRoundDialog.h \
|
../include/WellLogRoundDialog.h \
|
||||||
../include/WellLogTableDialogNew.h \
|
../include/WellLogTableDialogNew.h \
|
||||||
../include/WellLogUI.h \
|
../include/WellLogUI.h \
|
||||||
|
../include/assetcopy.h \
|
||||||
|
../include/griddataadapter.h \
|
||||||
AngleAdjTool.h \
|
AngleAdjTool.h \
|
||||||
CurvePropertyEdit.h \
|
CurvePropertyEdit.h \
|
||||||
DrawCurveView.h \
|
DrawCurveView.h \
|
||||||
ShowCurve.h \
|
ShowCurve.h \
|
||||||
SmoothTool.h \
|
SmoothTool.h \
|
||||||
|
TipPop.h \
|
||||||
deptlineedit.h \
|
deptlineedit.h \
|
||||||
editEnd.h
|
editEnd.h
|
||||||
|
|
||||||
|
|
@ -79,27 +83,40 @@ SOURCES += \
|
||||||
../../common/geometryutils.cpp \
|
../../common/geometryutils.cpp \
|
||||||
../CallManage/CallManage.cpp \
|
../CallManage/CallManage.cpp \
|
||||||
AngleAdjTool.cpp \
|
AngleAdjTool.cpp \
|
||||||
|
CStringType.cpp \
|
||||||
CurvePropertyEdit.cpp \
|
CurvePropertyEdit.cpp \
|
||||||
DrawCurveView.cpp \
|
DrawCurveView.cpp \
|
||||||
MyWelllogRound.cpp \
|
MyWelllogRound.cpp \
|
||||||
ShowCurve.cpp \
|
ShowCurve.cpp \
|
||||||
SmoothTool.cpp \
|
SmoothTool.cpp \
|
||||||
|
TipPop.cpp \
|
||||||
WellDialog.cpp \
|
WellDialog.cpp \
|
||||||
WellLogDialog.cpp \
|
WellLogDialog.cpp \
|
||||||
WellLogLabel.cpp \
|
WellLogLabel.cpp \
|
||||||
WellLogProjectDialog.cpp \
|
WellLogProjectDialog.cpp \
|
||||||
WellLogRoundDialog.cpp \
|
WellLogRoundDialog.cpp \
|
||||||
WellLogTableDialogNew.cpp \
|
WellLogTableDialogNew.cpp \
|
||||||
|
assetcopy.cpp \
|
||||||
deptlineedit.cpp \
|
deptlineedit.cpp \
|
||||||
editEnd.cpp
|
editEnd.cpp \
|
||||||
|
griddataadapter.cpp
|
||||||
|
|
||||||
INCLUDEPATH += ../include
|
INCLUDEPATH += ../include
|
||||||
INCLUDEPATH += ../CallManage
|
INCLUDEPATH += ../CallManage
|
||||||
INCLUDEPATH += ../../Slfio/include
|
INCLUDEPATH += ../../Slfio/include
|
||||||
INCLUDEPATH += ../../common
|
INCLUDEPATH += ../../common
|
||||||
|
INCLUDEPATH += ../../BaseFun/include
|
||||||
|
INCLUDEPATH += ../../OSGDataModel/include
|
||||||
|
INCLUDEPATH += ../../DataMgr/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L../../Bin -lslfiod
|
||||||
|
LIBS += -L../../Bin -lBaseFund
|
||||||
|
LIBS += -L../../Bin -lOSGDataModeld
|
||||||
|
LIBS += -L../../Bin -lDataMgrd
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L../../Bin -lslfio
|
||||||
|
LIBS += -L../../Bin -lBaseFun
|
||||||
|
LIBS += -L../../Bin -lOSGDataModel
|
||||||
|
LIBS += -L../../Bin -lDataMgr
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,8 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||||
//关联信号槽,数据查看
|
//关联信号槽,数据查看
|
||||||
connect(CallManage::getInstance(), SIGNAL(sig_ShowCurve(QString, QString)), this, SLOT(s_ShowCurve(QString, QString)));
|
connect(CallManage::getInstance(), SIGNAL(sig_ShowCurve(QString, QString)), this, SLOT(s_ShowCurve(QString, QString)));
|
||||||
|
|
||||||
|
//关联信号槽,数据查看
|
||||||
|
connect(CallManage::getInstance(), SIGNAL(sig_ShowTable(QString, QString)), this, SLOT(s_ShowTable(QString, QString)));
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
|
|
@ -453,8 +455,25 @@ void MainWindow::s_ShowCurve(QString strSlfName, QString strName)
|
||||||
if(m_centerWidgets)
|
if(m_centerWidgets)
|
||||||
{
|
{
|
||||||
WellLogTableDialogNew* pDialog = new WellLogTableDialogNew();
|
WellLogTableDialogNew* pDialog = new WellLogTableDialogNew();
|
||||||
pDialog->setName(strSlfName, strName);
|
pDialog->setName(strSlfName, strName, CURVE_OBJECT);
|
||||||
m_centerWidgets->addTab(pDialog, strName);
|
QString wellname;QString path;
|
||||||
|
GetWellNameAndPath(strSlfName, wellname, path);
|
||||||
|
m_centerWidgets->addTab(pDialog, wellname + ":" + strName);
|
||||||
|
int iCount = m_centerWidgets->count();
|
||||||
|
m_centerWidgets->m_pTabBar->setCurrentIndex(iCount-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//表格数据查看
|
||||||
|
void MainWindow::s_ShowTable(QString strSlfName, QString strName)
|
||||||
|
{
|
||||||
|
if(m_centerWidgets)
|
||||||
|
{
|
||||||
|
WellLogTableDialogNew* pDialog = new WellLogTableDialogNew();
|
||||||
|
pDialog->setName(strSlfName, strName, TABLEE_OBJECT);
|
||||||
|
QString wellname;QString path;
|
||||||
|
GetWellNameAndPath(strSlfName, wellname, path);
|
||||||
|
m_centerWidgets->addTab(pDialog, wellname + ":" + strName);
|
||||||
int iCount = m_centerWidgets->count();
|
int iCount = m_centerWidgets->count();
|
||||||
m_centerWidgets->m_pTabBar->setCurrentIndex(iCount-1);
|
m_centerWidgets->m_pTabBar->setCurrentIndex(iCount-1);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#include "qtprojectwidgets.h"
|
#include "qtprojectwidgets.h"
|
||||||
#include "qtcenterwidgets.h"
|
#include "qtcenterwidgets.h"
|
||||||
|
#include "mainwindownew.h"
|
||||||
#include "mainwindowcurve.h"
|
#include "mainwindowcurve.h"
|
||||||
#include "customtabwidget.h"
|
#include "customtabwidget.h"
|
||||||
#include "ConsoleOutputWidget.h"
|
#include "ConsoleOutputWidget.h"
|
||||||
|
|
@ -87,6 +88,7 @@ public slots:
|
||||||
void s_showView();
|
void s_showView();
|
||||||
|
|
||||||
void s_ShowCurve(QString strSlfName, QString strName);//曲线数据查看
|
void s_ShowCurve(QString strSlfName, QString strName);//曲线数据查看
|
||||||
|
void s_ShowTable(QString strSlfName, QString strName);//表格数据查看
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -591,6 +591,10 @@ void QtProjectWidgets::initMenu()
|
||||||
_menuCurveObject = new QMenu(ui->treeWidget);
|
_menuCurveObject = new QMenu(ui->treeWidget);
|
||||||
initCurveObjectTreeMenu(_menuCurveObject, ui->treeWidget);
|
initCurveObjectTreeMenu(_menuCurveObject, ui->treeWidget);
|
||||||
|
|
||||||
|
//表格对象-右键菜单
|
||||||
|
_menuTableObject = new QMenu(ui->treeWidget);
|
||||||
|
initTableObjectTreeMenu(_menuTableObject, ui->treeWidget);
|
||||||
|
|
||||||
_menuWellName = new QMenu(ui->treeWidget);
|
_menuWellName = new QMenu(ui->treeWidget);
|
||||||
initWellNameTreeMenu(_menuWellName, ui->treeWidget);
|
initWellNameTreeMenu(_menuWellName, ui->treeWidget);
|
||||||
|
|
||||||
|
|
@ -623,8 +627,15 @@ void QtProjectWidgets::initCurveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWid
|
||||||
m_action_ShowCurve->setIcon(QIcon(":/image/u174.png")); // 设置图标
|
m_action_ShowCurve->setIcon(QIcon(":/image/u174.png")); // 设置图标
|
||||||
connect(m_action_ShowCurve, SIGNAL(triggered(bool)), this, SLOT(onShowCurve(bool)));
|
connect(m_action_ShowCurve, SIGNAL(triggered(bool)), this, SLOT(onShowCurve(bool)));
|
||||||
menu->addAction(m_action_ShowCurve);
|
menu->addAction(m_action_ShowCurve);
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始化表格对象-右键菜单
|
||||||
|
void QtProjectWidgets::initTableObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget)
|
||||||
|
{
|
||||||
|
QAction* action_TableObject = new QAction("数据查看", treeWidget);
|
||||||
|
action_TableObject->setIcon(QIcon(":/image/u174.png")); // 设置图标
|
||||||
|
connect(action_TableObject, SIGNAL(triggered(bool)), this, SLOT(onShowTable(bool)));
|
||||||
|
menu->addAction(action_TableObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
//初始化根节点(井名称)-右键菜单
|
//初始化根节点(井名称)-右键菜单
|
||||||
|
|
@ -705,6 +716,12 @@ void QtProjectWidgets::onShowCurve(bool checked)
|
||||||
emit CallManage::getInstance()->sig_ShowCurve(m_strSlfName, m_strCurveObjectName);
|
emit CallManage::getInstance()->sig_ShowCurve(m_strSlfName, m_strCurveObjectName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//表格数据查看
|
||||||
|
void QtProjectWidgets::onShowTable(bool checked)
|
||||||
|
{
|
||||||
|
emit CallManage::getInstance()->sig_ShowTable(m_strSlfName, m_strCurveObjectName);
|
||||||
|
}
|
||||||
|
|
||||||
void QtProjectWidgets::onEditWelllogRound()
|
void QtProjectWidgets::onEditWelllogRound()
|
||||||
{
|
{
|
||||||
QTreeWidgetItem *wellItem = *ui->treeWidget->selectedItems().begin();
|
QTreeWidgetItem *wellItem = *ui->treeWidget->selectedItems().begin();
|
||||||
|
|
@ -794,7 +811,6 @@ void QtProjectWidgets::onImportSlfTable()
|
||||||
folderPath = folderPath + "/" + "#" + wellname + "/" + wellroundname + ".slf";
|
folderPath = folderPath + "/" + "#" + wellname + "/" + wellroundname + ".slf";
|
||||||
//QMessageBox::information(NULL,"标题",folderPath);
|
//QMessageBox::information(NULL,"标题",folderPath);
|
||||||
QStringList namelist;//=GetSelWellRound();
|
QStringList namelist;//=GetSelWellRound();
|
||||||
// namelist<<"D:/LogPlus/bin/../Logdata//例子2/#JPH-404/JPH-404.slf";
|
|
||||||
magr->dataInTable(CurItemType,wellname,folderPath);
|
magr->dataInTable(CurItemType,wellname,folderPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -809,7 +825,6 @@ void QtProjectWidgets::onOutWellLogRound()
|
||||||
folderPath = folderPath + g_prjname;
|
folderPath = folderPath + g_prjname;
|
||||||
folderPath = folderPath + "/" + "#" + wellname + "/" + wellroundname + ".slf";
|
folderPath = folderPath + "/" + "#" + wellname + "/" + wellroundname + ".slf";
|
||||||
QStringList namelist;//=GetSelWellRound();
|
QStringList namelist;//=GetSelWellRound();
|
||||||
// namelist<<"D:/LogPlus/bin/../Logdata//例子2/#JPH-404/JPH-404.slf";
|
|
||||||
namelist<<folderPath;
|
namelist<<folderPath;
|
||||||
QStringList curvelist;//=GetSelCurve();
|
QStringList curvelist;//=GetSelCurve();
|
||||||
CDataOutPut* moutPut=new CDataOutPut();
|
CDataOutPut* moutPut=new CDataOutPut();
|
||||||
|
|
@ -835,6 +850,13 @@ void QtProjectWidgets::onItemClicked(QTreeWidgetItem* item, int index)
|
||||||
m_strCurveObjectName = item->text(0);
|
m_strCurveObjectName = item->text(0);
|
||||||
m_strSlfName = item->data(0, Qt::UserRole+1).toString();
|
m_strSlfName = item->data(0, Qt::UserRole+1).toString();
|
||||||
}
|
}
|
||||||
|
else if (strTreeTag == "tableObject")
|
||||||
|
{
|
||||||
|
//表格对象
|
||||||
|
popMenu = _menuTableObject;
|
||||||
|
m_strCurveObjectName = item->text(0);
|
||||||
|
m_strSlfName = item->data(0, Qt::UserRole+1).toString();
|
||||||
|
}
|
||||||
else if (strTreeTag == "wellname")
|
else if (strTreeTag == "wellname")
|
||||||
{
|
{
|
||||||
//根节点(项目名称)-右键菜单
|
//根节点(项目名称)-右键菜单
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,8 @@ public slots:
|
||||||
|
|
||||||
//曲线
|
//曲线
|
||||||
void onShowCurve(bool checked = false); //数据查看
|
void onShowCurve(bool checked = false); //数据查看
|
||||||
|
//表格
|
||||||
|
void onShowTable(bool checked = false); //数据查看
|
||||||
void onEditWelllogRound();
|
void onEditWelllogRound();
|
||||||
void onImportSingleWellLogData();
|
void onImportSingleWellLogData();
|
||||||
void onImportSlfTable();
|
void onImportSlfTable();
|
||||||
|
|
@ -50,6 +52,7 @@ public:
|
||||||
//右键菜单
|
//右键菜单
|
||||||
QMenu *_menuRoot;
|
QMenu *_menuRoot;
|
||||||
QMenu *_menuCurveObject;//曲线对象(AC、BS...)
|
QMenu *_menuCurveObject;//曲线对象(AC、BS...)
|
||||||
|
QMenu *_menuTableObject;//表格对象
|
||||||
QMenu *_menuWellName;
|
QMenu *_menuWellName;
|
||||||
|
|
||||||
//根节点(项目名称)-右键菜单
|
//根节点(项目名称)-右键菜单
|
||||||
|
|
@ -75,6 +78,8 @@ public:
|
||||||
void initRootTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
|
void initRootTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
|
||||||
//初始化曲线对象(AC、BS...)-右键菜单
|
//初始化曲线对象(AC、BS...)-右键菜单
|
||||||
void initCurveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
|
void initCurveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
|
||||||
|
//初始化表格对象-右键菜单
|
||||||
|
void initTableObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
|
||||||
//初始化根节点(井名称)-右键菜单
|
//初始化根节点(井名称)-右键菜单
|
||||||
void initWellNameTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
|
void initWellNameTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user