Example #1
0
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);
}
Example #2
0
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();
    }
}
Example #3
0
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();
    }
}
Example #4
0
TEMPO CNumberEdit::GetTempoValue()
//--------------------------------
{
	double d;
	GetDecimalValue(d);
	return TEMPO(d);
}
Example #5
0
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);
}
Example #9
0
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);
}
Example #10
0
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);
}
Example #11
0
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);
}
Example #12
0
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);
	}
}