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.
160 lines
3.1 KiB
C++
160 lines
3.1 KiB
C++
#include "StdAfx.h"
|
|
#include "WellPoleDoc.h"
|
|
#include "WellPoleView.h"
|
|
|
|
#include "ItemWellBase.h"
|
|
#include "ActionModifiedWellItem.h"
|
|
#include "ActionWellTrackAddItem.h"
|
|
#include "ActionWellTrackDeleteItem.h"
|
|
#include "WellSection/ActionModifiedSectionNotWellsItem.h"
|
|
#include "WellSection/ActionDragSizeSectionWellItem.h"
|
|
namespace NItem
|
|
{
|
|
|
|
CItemWellBase::CItemWellBase(CSigmaDoc* pDoc)
|
|
: CItemNestBase(pDoc)
|
|
{
|
|
}
|
|
|
|
|
|
CItemWellBase::~CItemWellBase(void)
|
|
{
|
|
}
|
|
|
|
void CItemWellBase::SetPos(POSITION pos)
|
|
{
|
|
if(pos == NULL)
|
|
return;
|
|
|
|
CItemNestBase::SetPos(pos);
|
|
|
|
if(GetDoc()->GetItem() == this)
|
|
{
|
|
//COne* pObj = GetDoc()->GetDraw()->GetAt(pos);
|
|
|
|
//SetDrawObj(pObj);
|
|
}
|
|
}
|
|
|
|
BOOL CItemWellBase::EndEdit(void)
|
|
{
|
|
//if(GetDrawObj() != NULL)
|
|
// GetDoc()->Invalidate(GetDrawObj());
|
|
|
|
return CItemNestBase::EndEdit();
|
|
}
|
|
|
|
|
|
BOOL CItemWellBase::IsSelected(CWellBaseObj* pObj)
|
|
{
|
|
return m_WellObjSelectlist.Find(pObj) != NULL;
|
|
}
|
|
|
|
void CItemWellBase::Select(CWellBaseObj* pObj, BOOL bAdd)
|
|
{
|
|
if (!bAdd)
|
|
{
|
|
m_WellObjSelectlist.RemoveAll();
|
|
//POSITION pos = m_selectlist.GetHeadPosition();
|
|
//POSITION current_pos = NULL;
|
|
//while (pos != NULL)
|
|
//{
|
|
// current_pos = pos;
|
|
// //得到被选中的对象
|
|
// CObjectBase* pObj = m_selectlist.GetNext(pos);
|
|
//}
|
|
//if (current_pos != NULL)
|
|
//{
|
|
// //移除被选中链表中的对象
|
|
// m_selectlist.RemoveAt(current_pos);
|
|
//}
|
|
}
|
|
|
|
if (pObj == NULL || IsSelected(pObj))
|
|
return;
|
|
|
|
//加到选择列表中
|
|
m_WellObjSelectlist.AddTail(pObj);
|
|
}
|
|
|
|
HCURSOR CItemWellBase::GetHandleCursor(int nHandle)
|
|
{
|
|
LPCTSTR id;
|
|
switch (nHandle)
|
|
{
|
|
default:
|
|
ASSERT(FALSE);
|
|
|
|
case 1:
|
|
case 5:
|
|
id = IDC_SIZENWSE;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
case 6:
|
|
|
|
id = IDC_SIZENS;
|
|
|
|
break;
|
|
|
|
case 3:
|
|
case 7:
|
|
id = IDC_SIZENESW;
|
|
|
|
break;
|
|
|
|
case 4:
|
|
case 8:
|
|
id = IDC_SIZEWE;
|
|
|
|
break;
|
|
}
|
|
|
|
return AfxGetApp()->LoadStandardCursor(id);
|
|
}
|
|
|
|
void CItemWellBase::SetReUnDoAction(BOOL bNoSaveData, UINT actionType, int actionItemType, CWellBaseObj* pWellBase)
|
|
{
|
|
CPositionList list;
|
|
POSITION pos = GetPos();
|
|
|
|
if (NULL != pos)
|
|
{
|
|
list.AddTail(pos);
|
|
|
|
(GetDoc())->SetActionItem(new CActionModifiedWell(GetDoc(), actionType, list, bNoSaveData));
|
|
|
|
//if (actionItemType == 1)
|
|
// (GetDoc())->SetActionItem(new CActionModifiedWell(GetDoc(), actionType, list, bNoSaveData));
|
|
//else if (actionItemType == 2)
|
|
// (GetDoc())->SetActionItem(new CActionModifiedNotWell(GetDoc(), actionType, list));
|
|
//else if (actionItemType == 3)
|
|
// (GetDoc())->SetActionItem(new CActionDragSizeSectionWell(GetDoc(), actionType, list, pWellBase));
|
|
GetDoc()->Modified(TRUE);
|
|
}
|
|
}
|
|
|
|
void CItemWellBase::SetActionAddTrackItem(TRACKLIST& addTrackList)
|
|
{
|
|
(GetDoc())->SetActionItem(new CActionWellTrackAddItem(GetDoc(), IDS_STRING_ACTION_ADD, addTrackList));
|
|
GetDoc()->Modified(TRUE);
|
|
}
|
|
|
|
void CItemWellBase::SetActionDeleteTrackItem(TRACKLIST& addTrackList)
|
|
{
|
|
(GetDoc())->SetActionItem(new CActionWellTrackDeleteItem(GetDoc(), IDS_STRING_ACTION_DELETE, addTrackList));
|
|
GetDoc()->Modified(TRUE);
|
|
}
|
|
|
|
void CItemWellBase::CancelSelection(void)
|
|
{
|
|
CItemSelect::CancelSelection();
|
|
m_WellObjSelectlist.RemoveAll();
|
|
if (m_pItemSelected)
|
|
{
|
|
delete m_pItemSelected;
|
|
m_pItemSelected = NULL;
|
|
}
|
|
}
|
|
}; |