From: caballero Date: Mon, 30 Mar 2009 12:45:30 +0000 (+0000) Subject: Fixed bugs and deleted first column on last level. X-Git-Tag: EED.02Oct2009~129 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;ds=sidebyside;h=fc165c73bc8482c01caeee7c67405962f846a9b6;hp=60d1bdc76ff73fcf80ebb88377da78b8971bbc7b;p=creaImageIO.git Fixed bugs and deleted first column on last level. --- diff --git a/src2/creaImageIOGimmickView.cpp b/src2/creaImageIOGimmickView.cpp index 0a2b8e1..5da98b5 100644 --- a/src2/creaImageIOGimmickView.cpp +++ b/src2/creaImageIOGimmickView.cpp @@ -98,13 +98,21 @@ namespace creaImageIO bool GimmickView::ValidateSelected (tree::Node* sel, int min_dim, int max_dim) { GimmickMessage(2,"Validating selected"<Initialize(ctrl); // Create the first column : number of children - + if(iGetTree().GetNumberOfLevels()-1) + { std::string title = "#"; if (iGetTree().GetNumberOfLevels()-1) { @@ -121,7 +122,7 @@ namespace creaImageIO title += "s"; } ctrl->InsertColumn(0,crea::std2wx(title),col_style); - + } // Create the columns : one for each attribute of the level int col = 1; @@ -324,7 +325,7 @@ namespace creaImageIO int _id=1; //Adds items (other than the first) and sets their attributes - GetCtrl(l)->InsertItem(0, _T("hELLO")); + GetCtrl(l)->InsertItem(0, _T("")); GetTreeHandler()->LoadChildren(*i,1); tree::Node::ChildrenListType::reverse_iterator j; for (j = (*i)->GetChildrenList().rbegin(); @@ -363,16 +364,30 @@ namespace creaImageIO //GetCtrl(l)->SetItem(item); //Setting other attributes - for (int k=1; kGetColumnCount(); k++) + if(levelGetColumnCount(); k++) { - - std::string val = (*j)->GetAttribute(mLevelList[l].key[k-1]); - if (val.size()==0) val = "?"; - item->SetText( crea::std2wx(val)); - item->SetColumn(k); - GetCtrl(l)->SetItem(*item); - GetCtrl(l)->RefreshItem(*item); + std::string val = (*j)->GetAttribute(mLevelList[l].key[k-1]); + if (val.size()==0) val = "?"; + item->SetText( crea::std2wx(val)); + item->SetColumn(k); + GetCtrl(l)->SetItem(*item); + GetCtrl(l)->RefreshItem(*item); + } + } + else + { + for (int k=0; kGetColumnCount(); k++) + { + std::string val = (*j)->GetAttribute(mLevelList[l].key[k]); + if (val.size()==0) val = "?"; + item->SetText( crea::std2wx(val)); + item->SetColumn(k); + GetCtrl(l)->SetItem(*item); + GetCtrl(l)->RefreshItem(*item); } + } } GetCtrl(l)->DeleteItem(0); @@ -508,12 +523,19 @@ namespace creaImageIO if ( GetCtrl(level) == senderCtrl ) break; } clientpt.x+=(mColumnSelected)*(GetCtrl(0)->GetColumnWidth(mColumnSelected)); - clientpt.x+=level*105; - clientpt.y+=level*2; - wxPoint screenpt = ClientToScreen(clientpt); - if(mColumnSelected!=0) + for(int i=0;iGetSashPosition(); + } + clientpt.y+=level*2; + if(level==mLevelList.size()-1) + { + mColumnSelected+=1; + PopupMenu(menu, clientpt); + } + else if(mColumnSelected!=0) + { + PopupMenu(menu, clientpt); } } @@ -537,9 +559,11 @@ namespace creaImageIO long it = -1; UpdateLevel(level+1); + std::vector items; + bool in=false; + int del=0; for ( ;; ) { - bool contains=false; it = GetCtrl(level)->GetNextItem(it, wxLIST_NEXT_ALL); if ( it == -1 ) @@ -549,12 +573,28 @@ namespace creaImageIO tree::Node* nod = ((ItemData*)adr)->node; att=(*nod).GetAttribute(mLevelList[level].key[mColumnSelected-1]); + if(att.find(filter)>900) { - GetCtrl(level)->DeleteItem(it); + + if(!in) + { + in=true; + } + else + { + del+=1; + } + + items.push_back(it-del); } } + std::vector::iterator iter; + for(iter=items.begin();iter!=items.end();++iter) + { + GetCtrl(level)->DeleteItem(*iter); + } GetGimmickView()->ClearSelection(); } //================================================================ @@ -584,7 +624,7 @@ namespace creaImageIO { //Obtain the column name and the level that needs to be organized - if(mColumnSelected!=0) + if(level==mLevelList.size()-1||mColumnSelected!=0) { int l = level - 1; //GetCtrl(level)->DeleteItem(0);