+ std::string filename=(*i)->GetAttribute("FullFileName");
+ s.push_back(filename);
+ }
+ }
+
+ //================================================================
+ void WxTreeView::GetFilenamesAsString(const std::vector<tree::Node*>& nodes, std::vector<std::string>&s)
+ {
+ std::vector<tree::Node*>::const_iterator i;
+
+ for (i=nodes.begin(); i!=nodes.end(); ++i)
+ {
+ if((*i)->GetLevel()<mLevelList.size())
+ {
+ GetTreeHandler()->LoadChildren(*i,0);
+ GetFilenamesAsString((*i)->GetChildrenList(),s);
+ }
+ else
+ {
+ std::string filename=(*i)->GetAttribute("FullFileName");
+ s.push_back(filename);
+ }
+ }
+ }
+
+ //================================================================
+ void WxTreeView::SetColor(int l, int item)
+ {
+ int colorId=12;
+ GetCtrl(l)->SetItemTextColour(item, wxColourDatabase().Find
+ (crea::std2wx(mColorPalette[colorId])));
+ GetCtrl(l)->SetItemState(item,wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED, wxLIST_STATE_SELECTED); /*
+ int colorId=0;
+ //Setting the color according to the parent
+ if(l==0)
+ {
+ item.SetBackgroundColour
+ (wxColourDatabase().Find
+ (crea::std2wx(mColorPalette[colorId])));
+ mColorMap.insert
+ (NodeColorPair
+ (*j,wxColourDatabase().Find
+ (crea::std2wx(mColorPalette[colorId]))));
+ if(colorId<64)
+ {
+ colorId++;
+ }
+ else
+ {
+ colorId=0;
+ }
+ }
+ else if(l!=mLevelList.size()-1)
+ {
+ item.SetBackgroundColour(mColorMap[*i]);
+ mColorMap.insert(NodeColorPair(*j,mColorMap[*i]));
+ }
+ else
+ {
+ item.SetBackgroundColour(mColorMap[*i]);
+ }*/
+ }
+ //================================================================
+ void WxTreeView::CreateColorPalette()
+ {
+ GimmickDebugMessage(6,"WxTreeView::CreateColorPalette");
+ mColorPalette.push_back("WHITE");
+ mColorPalette.push_back("LIGHT GREY");
+ mColorPalette.push_back("AQUAMARINE");
+ mColorPalette.push_back("MEDIUM FOREST GREEN");
+ mColorPalette.push_back("INDIAN RED");
+ mColorPalette.push_back("KHAKI");
+ mColorPalette.push_back("ORANGE");
+ mColorPalette.push_back("LIGHT BLUE");
+ mColorPalette.push_back("LIGHT STEEL BLUE");
+ mColorPalette.push_back("PINK");
+ mColorPalette.push_back("PLUM");
+ mColorPalette.push_back("PURPLE");
+ mColorPalette.push_back("RED");
+ mColorPalette.push_back("SEA GREEN");
+ mColorPalette.push_back("SIENNA");
+ mColorPalette.push_back("SKY BLUE");
+ mColorPalette.push_back("SLATE BLUE");
+ mColorPalette.push_back("SPRING GREEN");
+ mColorPalette.push_back("TAN");
+ mColorPalette.push_back("THISTLE");
+ mColorPalette.push_back("TURQUOISE");
+ mColorPalette.push_back("VIOLET");
+ mColorPalette.push_back("VIOLET RED");
+ mColorPalette.push_back("WHEAT");
+ mColorPalette.push_back("YELLOW");
+ mColorPalette.push_back("YELLOW GREEN");
+ mColorPalette.push_back("BLUE");
+ mColorPalette.push_back("BLUE VIOLET");
+ mColorPalette.push_back("BROWN");
+ mColorPalette.push_back("CADET BLUE");
+ mColorPalette.push_back("CORAL");
+ mColorPalette.push_back("CORNFLOWER BLUE");
+ mColorPalette.push_back("CYAN");
+ mColorPalette.push_back("DARK GREY");
+ mColorPalette.push_back("DARK GREEN");
+ mColorPalette.push_back("DARK OLIVE GREEN");
+ mColorPalette.push_back("DARK ORCHID");
+ mColorPalette.push_back("DARK SLATE BLUE");
+ mColorPalette.push_back("DARK SLATE GREY");
+ mColorPalette.push_back("DARK TURQUOISE");
+ mColorPalette.push_back("FIREBRICK");
+ mColorPalette.push_back("FOREST GREEN");
+ mColorPalette.push_back("GOLD");
+ mColorPalette.push_back("GOLDENROD");
+ mColorPalette.push_back("GREY");
+ mColorPalette.push_back("GREEN");
+ mColorPalette.push_back("GREEN YELLOW");
+ mColorPalette.push_back("LIME GREEN");
+ mColorPalette.push_back("MAGENTA");
+ mColorPalette.push_back("MAROON");
+ mColorPalette.push_back("MEDIUM AQUAMARINE");
+ mColorPalette.push_back("MEDIUM BLUE");
+ mColorPalette.push_back("MEDIUM GOLDENROD");
+ mColorPalette.push_back("MEDIUM ORCHID");
+ mColorPalette.push_back("MEDIUM SEA GREEN");
+ mColorPalette.push_back("MEDIUM SLATE BLUE");
+ mColorPalette.push_back("MEDIUM SPRING GREEN");
+ mColorPalette.push_back("MEDIUM TURQUOISE");
+ mColorPalette.push_back("MEDIUM VIOLET RED");
+ mColorPalette.push_back("MIDNIGHT BLUE");
+ mColorPalette.push_back("NAVY");
+ mColorPalette.push_back("ORANGE RED");
+ mColorPalette.push_back("ORCHID, PALE GREEN");
+ mColorPalette.push_back("STEEL BLUE");
+ mColorPalette.push_back("BLACK");
+
+
+ }
+
+ //================================================================
+ void WxTreeView::GetAttributes(std::vector<std::string>& areShown, std::vector<std::string>& notShown, int level)
+ {
+ areShown.clear();
+ notShown.clear();
+ tree::LevelDescriptor::AttributeDescriptorListType::const_iterator a;
+ for (a = GetTreeHandler()->GetTree().GetAttributeDescriptorList(level).begin();
+ a != GetTreeHandler()->GetTree().GetAttributeDescriptorList(level).end();
+ ++a)
+ {
+ if(a->GetFlags()==creaImageIO::tree::AttributeDescriptor::EDITABLE && IsAttributeVisible(a->GetName(),level))
+ {
+ areShown.push_back(a->GetName());
+ }
+ }
+ notShown=mLevelList[level-1].notShownAtts;
+ }
+
+ //================================================================
+ void WxTreeView::SetNonVisibleAttributes(const std::vector<std::string>& notShown, int nlevel)
+ {
+ mLevelList[nlevel].notShownAtts=notShown;
+ }
+
+ //================================================================
+ void WxTreeView::CreateCtrl(std::vector<std::string>& notShown, int nlevel)
+ {
+ int ctrl_style = wxLC_REPORT | wxLC_VRULES;
+ int col_style = wxLIST_FORMAT_LEFT;
+ LevelType level;
+ mLevelList[nlevel].SelectedUpToDate = true;
+ mLevelList[nlevel].SortColumn = 0;
+ mLevelList[nlevel].key.clear();
+
+ mLevelList[nlevel].wxCtrl = new wxListCtrl(mLevelList[nlevel].wxSplitter,
+ nlevel,
+ wxDefaultPosition,
+ wxDefaultSize,
+ ctrl_style);
+ wxWindow* oldWin=mLevelList[nlevel].wxSplitter->GetWindow1();
+ mLevelList[nlevel].wxSplitter->ReplaceWindow(oldWin,mLevelList[nlevel].wxCtrl);
+ mLevelList[nlevel].wxSplitter->Initialize(mLevelList[nlevel].wxCtrl);
+
+ // Create the columns : one for each attribute of the level
+ int col = 0;
+ std::string title;
+
+ tree::LevelDescriptor::AttributeDescriptorListType::const_iterator a;
+ for (a = GetTreeHandler()->GetTree().GetAttributeDescriptorList(nlevel+1).begin();
+ a != GetTreeHandler()->GetTree().GetAttributeDescriptorList(nlevel+1).end();
+ ++a)
+
+ {
+ if(a->GetFlags()!=creaImageIO::tree::AttributeDescriptor::PRIVATE && IsAttributeVisible(a->GetName(),nlevel+1))
+ {
+ title=a->GetName();
+ std::string temp = a->GetKey();
+ if (temp.compare("ID") != 0)
+ {
+ mLevelList[nlevel].wxCtrl->InsertColumn(col,
+ crea::std2wx(title),
+ col_style);
+ col++;
+ }
+ mLevelList[nlevel].key.push_back(a->GetKey());
+ }
+