+ //================================================================
+ void WxTreeView::OnEndLabelEdit(wxListEvent& event)
+ {
+ GimmickDebugMessage(7,
+ "WxTreeView::OnEndLabelEdit"
+ <<std::endl);
+ wxObject* ctrl = event.GetEventObject();
+ unsigned int level = 0;
+ for (level = 0; level<mLevelList.size(); ++level)
+ {
+ if ( GetCtrl(level) == ctrl ) break;
+ }
+ std::string filter=event.m_item.m_text.c_str();
+
+ std::string att;
+
+ long it = -1;
+ UpdateLevel(level+1);
+
+ for ( ;; )
+ {
+ bool contains=false;
+ it = GetCtrl(level)->GetNextItem(it,
+ wxLIST_NEXT_ALL);
+ if ( it == -1 )
+ break;
+ if(it!=0)
+ {
+ long adr = GetCtrl(level)->GetItemData(it);
+ for (int j=1;j<GetCtrl(level)->GetColumnCount()-1&&!contains;j++)
+ {
+ tree::Node* nod = ((ItemData*)adr)->node;
+ att=(*nod).GetAttribute(mLevelList[level].key[j-1]);
+
+ if(att.find(filter)<900)
+ {
+ contains=true;
+ }
+ }
+ if(!contains)
+ {
+ GetCtrl(level)->DeleteItem(it);
+ }
+ }
+ }
+ GetGimmickView()->ClearSelection();
+ //GetCtrl(level)->DeleteAllItems();