#include "StdAfx.h" #include "WellPoleDoc.h" #include "WellPoleView.h" #include "ItemWellBase.h" #include "ActionModifiedWellItem.h" #include "ActionWellTrackAddItem.h" #include "ActionWellTrackDeleteItem.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) { CPositionList list; POSITION pos = GetPos(); if(NULL != pos) { list.AddTail(pos); (GetDoc())->SetActionItem(new CActionModifiedWell(GetDoc(), actionType, list, bNoSaveData)); 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(); } };