wxString SearchTreeNode::I2S(int i) { wxString result(_T("")); if (i<0) result << _T('-'); result << U2S(abs(i)); return result; }
// Returns the value of the column index in string format // for current row in the record set LPCTSTR CSmartDBRecordSet::GetColumnString(LONG nIndex) { if (m_nCurrentRecord < 0 || m_nCurrentRecord >= m_nRecordCount || nIndex >= m_nFieldsCount) return NULL; vector<string> * strArr; strArr = orsRows[m_nCurrentRecord]; #ifdef UNICODE m_strRet = U2WS((*strArr)[nIndex]); return m_strRet.c_str(); #else m_strRet = U2S((*strArr)[nIndex]); return m_strRet.c_str(); #endif }
// Returns the Name of the Field (or Column) whose // index is given LPCTSTR CSmartDBRecordSet::GetFieldName(LONG nIndex) { ASSERT (m_bIsOpen); if (nIndex < m_strFieldsList.size()) { #ifdef UNICODE m_strRet = U2WS(m_strFieldsList[nIndex]); return m_strRet.c_str(); #else m_strRet = U2S(m_strFieldsList[nIndex]); return m_strRet.c_str(); #endif } else { return NULL; } }
wxString SearchTreeNode::Serialize(BasicSearchTree* tree,nSearchTreeNode node_id,bool withchildren) { wxString result,children,sparent,sdepth,slabelno,slabelstart,slabellen; SearchTreeLinkMap::iterator link; SearchTreeItemsMap::iterator item; sparent = U2S(m_Parent); sdepth = U2S(m_Depth); slabelno = U2S(m_Label); slabelstart = U2S(m_LabelStart); slabellen = U2S(m_LabelLen); result << _T(" <node id=\"") << node_id << _T("\" parent=\"") << sparent << _T("\""); result << _T(" depth=\"") << sdepth << _T("\" label=\""); result << slabelno << _T(',') << slabelstart << _T(',') << slabellen; result << _T("\">\n"); result << _T(" <items>\n"); for (item = m_Items.begin();item != m_Items.end();item++) { if (item->second) { result << _T(" <item depth=\"") << U2S(item->first) << _T("\" itemid=\"") << U2S(item->second) << _T("\"") << _T(" />\n"); } } result << _T(" </items>\n"); result << _T(" <children>\n"); for (link = m_Children.begin();link != m_Children.end();link++) { if (link->second) { result << _T(" <child char=\"") << SerializeString(wxString(link->first)) << _T("\" nodeid=\"") << U2S(link->second) << _T("\"") << _T(" />\n"); } } result << _T(" </children>\n"); result << _T(" </node>\n"); if (withchildren) { for (link = m_Children.begin();link != m_Children.end();link++) { if (link->second) { result << tree->GetNode(link->second,false)->Serialize(tree,link->second,true); } } } return result; }
void SearchTreeNode::Dump(BasicSearchTree* tree, nSearchTreeNode node_id, const wxString& prefix, wxString& result) { wxString suffix(_T("")); suffix << _T("- \"") << SerializeString(GetLabel(tree)) << _T("\" (") << U2S(node_id) << _T(")"); if (prefix.length() && prefix[prefix.length()-1]=='|') result << prefix.substr(0,prefix.length()-1) << _T('+') << suffix << _T('\n'); else if (prefix.length() && prefix[prefix.length()-1]==' ') result << prefix.substr(0,prefix.length()-1) << _T('\\') << suffix << _T('\n'); else result << prefix << suffix << _T('\n'); wxString newprefix(prefix); newprefix.append(suffix.length() - 2, _T(' ')); newprefix << _T("|"); SearchTreeLinkMap::iterator i; unsigned int cnt = 0; for (i = m_Children.begin(); i!= m_Children.end(); i++) { if (cnt == m_Children.size() - 1) newprefix[newprefix.length() - 1] = _T(' '); tree->GetNode(i->second,false)->Dump(tree,i->second,newprefix,result); cnt++; } }