void wxGISTaskManager::AddMessage(const wxXmlNode* pIniNode) { wxCHECK_RET(pIniNode, wxT("Input wxXmlNode pointer is null")); int nTaskId = GetDecimalValue(pIniNode, wxT("id"), wxNOT_FOUND); if(nTaskId == wxNOT_FOUND) return; wxGISTask* pTasks = m_moTasks[nTaskId]; if(pTasks == NULL) return; long nMsgId = GetDecimalValue(pIniNode, wxT("msg_id"), wxNOT_FOUND); if(nMsgId == wxNOT_FOUND) return; wxGISEnumMessageType eType = (wxGISEnumMessageType)GetDecimalValue(pIniNode, wxT("msg_type"), enumGISMessageUnk); wxDateTime dt = GetDateValue(pIniNode, wxT("msg_dt"), wxDateTime::Now()); wxString sInfoData = pIniNode->GetAttribute(wxT("msg")); if(!dt.IsValid() || sInfoData.IsEmpty()) return; pTasks->AddMessage(new wxGISTaskMessage(nMsgId, sInfoData, eType, dt)); //notify wxGISTaskEvent event(nTaskId, wxGISTASK_MESSAGEADDED, nMsgId); PostEvent(event); }
wxGISTask::wxGISTask(const wxXmlNode* pIniNode) { //load m_nId = GetDecimalValue(pIniNode, wxT("id"), wxNOT_FOUND); m_sName = pIniNode->GetAttribute(wxT("name"), NONAME); m_sDescription = pIniNode->GetAttribute(wxT("desc"), NONAME); m_sCat = pIniNode->GetAttribute(wxT("cat"), NONAME); m_nState = (wxGISEnumTaskStateType)GetDecimalValue(pIniNode, wxT("state"), enumGISTaskUnk); m_nPriority = GetDecimalValue(pIniNode, wxT("prio"), wxNOT_FOUND); m_dtBeg = GetDateValue(pIniNode, wxT("beg"), wxDateTime::Now()); m_dtEnd = GetDateValue(pIniNode, wxT("end"), wxDateTime::Now()); long nVolumeHi = GetDecimalValue(pIniNode, wxT("vol_hi"), 0); long nVolumeLo = GetDecimalValue(pIniNode, wxT("vol_lo"), 0); m_nVolume = wxULongLong(nVolumeHi, nVolumeLo); m_dfDone = GetFloatValue(pIniNode, wxT("done"), 0.0); m_pParams = NULL; wxXmlNode *Children = pIniNode->GetChildren(); while(Children) { if(Children->GetName().IsSameAs(wxT("params"), false)) { if(m_pParams) wxDELETE(m_pParams); m_pParams = new wxXmlNode(*Children); } //else if(Children->GetName().IsSameAs(wxT("messages"), false)) //{ // LoadMessages(Children); //} Children = Children->GetNext(); } }
void wxGISTask::ChangeTask(const wxXmlNode* pTaskNode) { //load m_sName = pTaskNode->GetAttribute(wxT("name"), m_sName); m_sDescription = pTaskNode->GetAttribute(wxT("desc"), m_sDescription); m_sCat = pTaskNode->GetAttribute(wxT("cat"), m_sCat); m_nState = (wxGISEnumTaskStateType)GetDecimalValue(pTaskNode, wxT("state"), m_nState); m_nPriority = GetDecimalValue(pTaskNode, wxT("prio"), m_nPriority); m_dtBeg = GetDateValue(pTaskNode, wxT("beg"), m_dtBeg); m_dtEnd = GetDateValue(pTaskNode, wxT("end"), m_dtEnd); long nVolHi = GetDecimalValue(pTaskNode, wxT("vol_hi"), (long)m_nVolume.GetHi()); long nVolLo = GetDecimalValue(pTaskNode, wxT("vol_lo"), (long)m_nVolume.GetLo()); m_nVolume = wxULongLong(nVolHi, nVolLo); m_dfDone = GetFloatValue(pTaskNode, wxT("done"), m_dfDone); wxXmlNode *Children = pTaskNode->GetChildren(); while(Children) { if(Children->GetName().IsSameAs(wxT("params"), false)) { if(m_pParams) wxDELETE(m_pParams); m_pParams = new wxXmlNode(*Children); } //else if(Children->GetName().IsSameAs(wxT("messages"), false)) //{ // LoadMessages(Children); //} Children = Children->GetNext(); } }
TEMPO CNumberEdit::GetTempoValue() //-------------------------------- { double d; GetDecimalValue(d); return TEMPO(d); }
bool wxGxDiscConnection::Delete(void) { wxXmlDocument doc; //try to load connections xml file if(doc.Load(m_soXmlConfPath)) { wxXmlNode* pConnectionsNode = doc.GetRoot(); wxXmlNode* pConnectionNode = pConnectionsNode->GetChildren(); while(pConnectionNode) { int nNodeXmlId = GetDecimalValue(pConnectionNode, wxT("id"), wxNOT_FOUND); if(nNodeXmlId == m_nXmlId) { if(pConnectionsNode->RemoveChild(pConnectionNode)) { wxDELETE(pConnectionNode); break; } } pConnectionNode = pConnectionNode->GetNext(); } return doc.Save(m_soXmlConfPath); } return false; }
bool wxGxDiscConnections::DisconnectFolder(int nXmlId) { wxCriticalSectionLocker locker(m_oCritSect); wxXmlDocument doc; //try to load connections xml file if(doc.Load(m_sXmlStoragePath)) { wxXmlNode* pConnectionsNode = doc.GetRoot(); wxXmlNode* pConnectionNode = pConnectionsNode->GetChildren(); while(pConnectionNode) { wxXmlNode* pCurConnectionNode = pConnectionNode; int nNodeXmlId = GetDecimalValue(pCurConnectionNode, wxT("id"), wxNOT_FOUND); pConnectionNode = pConnectionNode->GetNext(); if(nNodeXmlId == nXmlId) { if(pConnectionsNode->RemoveChild(pCurConnectionNode)) { wxDELETE(pCurConnectionNode); break; } } } return doc.Save(m_sXmlStoragePath); } return false; }
bool wxGxDiscConnections::IsObjectExist(wxGxObject* const pObj, const wxXmlNode* pNode) { int nXmlId = GetDecimalValue(pNode, wxT("id"), wxNOT_FOUND); wxGxDiscConnection* pConn = wxDynamicCast(pObj, wxGxDiscConnection); if(!pConn) return false; if(pConn->GetXmlId() != nXmlId) return false; //if exist control name and path wxString sName = pNode->GetAttribute(wxT("name"), NONAME); wxString sPath = pNode->GetAttribute(wxT("path"), NONAME); CPLString szPath(sPath.mb_str(wxConvUTF8)); if(pObj->GetPath() != szPath) { pObj->SetPath(szPath); //ObjectChanged event wxGIS_GXCATALOG_EVENT_ID(ObjectRefreshed, pObj->GetId()); } if(!pObj->GetName().IsSameAs( sName, false)) { pObj->SetName(sName); //ObjectChanged event wxGIS_GXCATALOG_EVENT_ID(ObjectChanged, pObj->GetId()); } return true; }
wxGxObject* wxGxDiscConnections::CreateChildGxObject(const wxXmlNode* pNode) { wxString soName = pNode->GetAttribute(wxT("name"), NONAME); wxString sPath = pNode->GetAttribute(wxT("path"), NONAME); CPLString soPath(sPath.mb_str(wxConvUTF8)); int nXmlId = GetDecimalValue(pNode, wxT("id"), wxNOT_FOUND); if(sPath == NONAME || nXmlId == wxNOT_FOUND) return NULL; return new wxGxDiscConnection(this, m_sXmlStoragePath, nXmlId, soName, soPath); }
void wxGISTaskManager::DeleteTask(const wxXmlNode* pIniNode) { wxCHECK_RET(pIniNode, wxT("Input wxXmlNode pointer is null")); int nTaskId = GetDecimalValue(pIniNode, wxT("id"), wxNOT_FOUND); if(nTaskId == wxNOT_FOUND) return; wxDELETE(m_moTasks[nTaskId]); m_moTasks.erase(nTaskId); //notify wxGISTaskEvent event(nTaskId, wxGISTASK_DEL); PostEvent(event); }
void wxGISTaskManager::ChangeTask(const wxXmlNode* pIniNode) { wxCHECK_RET(pIniNode, wxT("Input wxXmlNode pointer is null")); int nTaskId = GetDecimalValue(pIniNode, wxT("id"), wxNOT_FOUND); if(nTaskId == wxNOT_FOUND) return; if(m_moTasks[nTaskId] == NULL) return; m_moTasks[nTaskId]->ChangeTask(pIniNode); //notify wxGISTaskEvent event(nTaskId, wxGISTASK_CHNG); PostEvent(event); }
void wxGISTaskManager::AddTask(const wxXmlNode* pIniNode) { wxCHECK_RET(pIniNode, wxT("Input wxXmlNode pointer is null")); long nId = GetDecimalValue(pIniNode, wxT("id"), wxNOT_FOUND); if(m_moTasks[nId]) //the task is already exist return; wxGISTask* pTask = new wxGISTask(pIniNode); m_moTasks[pTask->GetId()] = pTask; //notify wxGISTaskEvent event(pTask->GetId(), wxGISTASK_ADD); PostEvent(event); //quere messages wxNetMessage msg(enumGISNetCmdCmd, enumGISCmdGetDetails, enumGISPriorityLow, nId); m_pConn->SendNetMessage(msg); }
bool wxGxDiscConnection::Rename(const wxString& NewName) { wxXmlDocument doc; //try to load connections xml file if(doc.Load(m_soXmlConfPath)) { wxXmlNode* pConnectionsNode = doc.GetRoot(); wxXmlNode* pConnectionNode = pConnectionsNode->GetChildren(); while(pConnectionNode) { int nNodeXmlId = GetDecimalValue(pConnectionNode, wxT("id"), wxNOT_FOUND); if(nNodeXmlId == m_nXmlId) { pConnectionNode->DeleteAttribute(wxT("name")); pConnectionNode->AddAttribute(wxT("name"), NewName); } pConnectionNode = pConnectionNode->GetNext(); } return doc.Save(m_soXmlConfPath); } return false; }
void wxGxContentView::Serialize(wxXmlNode* pRootNode, bool bStore) { if(pRootNode == NULL) return; if(bStore) { if(pRootNode->HasAttribute(wxT("style"))) pRootNode->DeleteAttribute(wxT("style")); SetDecimalValue(pRootNode, wxT("style"), m_current_style); if(pRootNode->HasAttribute(wxT("sort"))) pRootNode->DeleteAttribute(wxT("sort")); SetBoolValue(pRootNode, wxT("sort"), m_bSortAsc); if(pRootNode->HasAttribute(wxT("sort_col"))) pRootNode->DeleteAttribute(wxT("sort_col")); SetDecimalValue(pRootNode, wxT("sort_col"), m_currentSortCol); if(m_current_style == enumGISCVReport) { //store values m_anWidth.Clear(); for (int i = 0; i < GetColumnCount(); ++i) { m_anWidth.Add( GetColumnWidth(i) ); } #ifdef wxHAS_LISTCTRL_COLUMN_ORDER m_anOrder = GetColumnsOrder(); #endif } wxString sCols; for(size_t i = 0; i < m_anWidth.GetCount(); ++i) { sCols += wxString::Format(wxT("%d"), m_anWidth[i]); sCols += wxT("|"); } if(pRootNode->HasAttribute(wxT("cols_width"))) pRootNode->DeleteAttribute(wxT("cols_width")); pRootNode->AddAttribute(wxT("cols_width"), sCols); #ifdef wxHAS_LISTCTRL_COLUMN_ORDER wxString sOrd; for(size_t i = 0; i < m_anOrder.GetCount(); ++i) { sOrd += wxString::Format(wxT("%d"), m_anOrder[i]); sOrd += wxT("|"); } if(pRootNode->HasAttribute(wxT("cols_order"))) pRootNode->DeleteAttribute(wxT("cols_order")); pRootNode->AddAttribute(wxT("cols_order"), sOrd); #endif } else { m_bSortAsc = GetBoolValue(pRootNode, wxT("sort"), true); m_currentSortCol = GetDecimalValue(pRootNode, wxT("sort_col"), 0); wxGISEnumContentsViewStyle style = (wxGISEnumContentsViewStyle)GetDecimalValue(pRootNode, wxT("style"), 0); //load col width wxString sCol = pRootNode->GetAttribute(wxT("cols_width")); wxStringTokenizer tkz(sCol, wxString(wxT("|")), wxTOKEN_RET_EMPTY ); while ( tkz.HasMoreTokens() ) { wxString token = tkz.GetNextToken(); //token.Replace(wxT("|"), wxT("")); int nWidth = wxAtoi(token); //wxLIST_AUTOSIZE m_anWidth.Add(nWidth); } #ifdef wxHAS_LISTCTRL_COLUMN_ORDER //load col order wxString sOrd = pRootNode->GetAttribute(wxT("cols_order")); wxStringTokenizer tkz_ord(sOrd, wxString(wxT("|")), wxTOKEN_RET_EMPTY ); while ( tkz_ord.HasMoreTokens() ) { wxString token = tkz_ord.GetNextToken(); //token.Replace(wxT("|"), wxT("")); m_anOrder.Add( wxAtoi(token) ); } #endif SetStyle(style); SORTDATA sortdata = {m_bSortAsc, m_currentSortCol}; SortItems(GxObjectCVCompareFunction, (long)&sortdata); } }