Public Member Functions | Private Member Functions | Private Attributes

creaImageIO::WxDescriptorPanel Class Reference
[Top level graphical user interfaces]

#include <creaImageIOWxDescriptorPanel.h>

List of all members.

Public Member Functions

 WxDescriptorPanel ()
 WxDescriptorPanel (wxWindow *parent, const std::string path)
 ~WxDescriptorPanel ()
 Destructor.
const std::string & GetDescriptor ()

Private Member Functions

void OnAddAttribute (wxCommandEvent &event)
 Add an attribute (DICOM or own).
void onAddAttribute (const std::string &att, const std::string &name_att, std::string level="")
 Add an attribute (DICOM or own).
void OnAddLevel (wxCommandEvent &event)
 Add a Level.
void onAddLevel (const std::string &level)
 Add a Level.
void OnDicomAttribute (wxCommandEvent &event)
 Find a DICOM attribute from group and element values.
void OnRemove (wxCommandEvent &event)
 Remove a value (level or attribute).
void OnNew (wxCommandEvent &event)
 Create a new descriptor.
void OnLoad (wxCommandEvent &event)
 Load an exsitant descriptor.
void OnOK (wxCommandEvent &event)
 Save a descriptor.
void OnApply (wxCommandEvent &event)
 Save a descriptor and use it.
void OnCancel (wxCommandEvent &event)
 Cancel.
void CreateDescriptor (int type)
 Create a descriptor structure.
bool addLevel (const std::string &name)
 add a level
bool addAtribute (const std::string &level, const std::string &name)
 add an attribute
bool RemoveAttribute (const std::string &level, const std::string &name)
 remove an attribute
bool RemoveLevel (const std::string &name)
 remove a level
void createDescriptorFile ()
 Create a descriptor file.
void loadDescriptor (const std::string i_name)
 load a descriptor file
std::string findLevel ()
 find a level'name
std::string OwnAttribute (const std::string name)
 determine values for own attributes
const std::string saveDescriptor ()
 save a descriptor in a file

Private Attributes

wxTextCtrl * LevelCtrl
wxTextCtrl * GRCtrl
wxTextCtrl * ELCtrl
wxTextCtrl * ResultCtrl
wxComboBox * AttributeCombo
int lv
 number of level
long InsertPt
 Insert point in result control.
std::string m_DscpFile
 Output file for Descriptor.
std::string outDscp
 Output Descriptor.
std::vector< std::string > VLevel
std::map< std::string,
std::vector< std::string > > 
DscpTree
std::map< std::string,
std::string > 
ownatt
std::map< int, std::string > lvlist
std::string m_path

Detailed Description

Gimmick DB are based on descriptors with a tree structure . Each level contains attributes (DICOM or other) to identify data WxDescriptorPanel allows creation, modification and save of descriptors.

Definition at line 38 of file creaImageIOWxDescriptorPanel.h.


Constructor & Destructor Documentation

creaImageIO::WxDescriptorPanel::WxDescriptorPanel (  ) 

Referenced by WxDescriptorPanel().

Here is the caller graph for this function:

creaImageIO::WxDescriptorPanel::WxDescriptorPanel ( wxWindow *  parent,
const std::string  path 
)

Definition at line 5 of file creaImageIOWxDescriptorPanel.cpp.

References GimmickDebugMessage, ID_ATTRIBUTE_ADD, ID_ATTRIBUTE_CTRL, ID_EL_CTRL, ID_GR_CTRL, ID_LEVEL_ADD, ID_REMOVE_ADD, OnAddAttribute(), OnAddLevel(), OnDicomAttribute(), OnLoad(), OnNew(), OnRemove(), and WxDescriptorPanel().

{
  // CTor
                   
        WxDescriptorPanel::WxDescriptorPanel(wxWindow *parent, const std::string path)
                : wxDialog(parent, -1,_T("Descriptor Creation"), wxDefaultPosition, wxSize(550,550)) , m_path(path)
{

  
    GimmickDebugMessage(1,"WxDescriptorPanel::WxDescriptorPanel"
                        <<std::endl);

        lv = 0;
        ownatt["FullFileName"]      = "Full_File_Name";
        ownatt["FullFileDirectory"] = "Full_File_Directory";
        

        // START BUTTONS
        wxButton *NewDescriptor = new wxButton(this, -1,_T("Create a new descriptor"), wxPoint(10,7) );
        Connect( NewDescriptor->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxDescriptorPanel::OnNew ); 

        wxButton *LoadDescriptor = new wxButton(this, -1,_T("Load a descriptor"), wxPoint(150,7) );
        Connect( LoadDescriptor->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxDescriptorPanel::OnLoad ); 
        
        wxStaticLine *line1 = new wxStaticLine(this, -1, wxPoint(5,40), wxSize(540,2));

        // LEVEL
        wxStaticText * LevelText=new wxStaticText(this,-1,_T(" Level: "), wxPoint(5,50));
        LevelCtrl=new wxTextCtrl(this, ID_GR_CTRL,_T("patient"), wxPoint(50,50), wxSize(50,25));
        wxButton *addLevel = new wxButton(this, ID_LEVEL_ADD,_T("add a level"), wxPoint(150,50) );
        Connect( addLevel->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxDescriptorPanel::OnAddLevel ); 

        wxStaticLine *line2 = new wxStaticLine(this, -1, wxPoint(5,75), wxSize(540,2));

        // ATTRIBUTES

        wxStaticText * GR=new wxStaticText(this,-1,_T(" DICOM Group: "), wxPoint(5,110));
        GRCtrl=new wxTextCtrl(this, ID_GR_CTRL,_T("0x0010"), wxPoint(82,110), wxSize(50,25));
        Connect( GRCtrl->GetId(), wxEVT_COMMAND_TEXT_UPDATED , (wxObjectEventFunction) &WxDescriptorPanel::OnDicomAttribute ); 
        
        wxStaticText * EL=new wxStaticText(this,-1,_T(" DICOM Element: "), wxPoint(140,110));
        ELCtrl=new wxTextCtrl(this, ID_EL_CTRL,_T("0x0010"), wxPoint(230,110), wxSize(50,25));
        Connect( ELCtrl->GetId(), wxEVT_COMMAND_TEXT_UPDATED , (wxObjectEventFunction) &WxDescriptorPanel::OnDicomAttribute ); 

        
        wxString choices[3];
        choices[0] = _T("Unknow Attribute");
        std::map<std::string, std::string>::iterator it_att =ownatt.begin();
        for(int i = 1; it_att != ownatt.end(); it_att++, i++)
        {
                choices[i] = crea::std2wx(it_att->second);
        }
        

        AttributeCombo  = new wxComboBox(this, ID_ATTRIBUTE_CTRL,_T(""),wxPoint(300,110), wxSize(120,25),3,choices, wxCB_READONLY);
        AttributeCombo->SetSelection(0);
        

        wxButton *addAttribute = new wxButton(this, ID_ATTRIBUTE_ADD,_T("add an attribute"), wxPoint(440,110) );
        Connect( addAttribute->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxDescriptorPanel::OnAddAttribute ); 

        wxStaticLine *line3 = new wxStaticLine(this, -1, wxPoint(5,140), wxSize(540,2));

        // RESULT

        ResultCtrl=new wxTextCtrl(this, ID_EL_CTRL,_T(""), wxPoint(5,150), wxSize(250,310), wxTE_READONLY| wxMac | wxTE_MULTILINE | wxTE_RICH );
        wxButton *RemoveCtrl = new wxButton(this, ID_REMOVE_ADD,_T("Remove an entry"), wxPoint(280,200) );
        Connect( RemoveCtrl->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxDescriptorPanel::OnRemove ); 

Here is the call graph for this function:

creaImageIO::WxDescriptorPanel::~WxDescriptorPanel (  ) 

Destructor.

Definition at line 86 of file creaImageIOWxDescriptorPanel.cpp.


Member Function Documentation

bool creaImageIO::WxDescriptorPanel::addAtribute ( const std::string &  level,
const std::string &  name 
) [private]

add an attribute

Definition at line 467 of file creaImageIOWxDescriptorPanel.cpp.

                  : level's name to add attribute  //
  // @param name : attribute's name                                       //
  // @return : boolean result                                             //
   bool WxDescriptorPanel::addAtribute(const std::string &level, const std::string &name)
   {
           bool bresult = true;
           std::map<std::string, std::vector <std::string> >::iterator it_tree = DscpTree.begin();
           for (;it_tree != DscpTree.end(); it_tree++)
           {
                   if (it_tree->first.c_str() == level)
                   {
                           std::vector<std::string>::iterator it_branch = it_tree->second.begin();
                           for(;it_branch != it_tree->second.end(); it_branch++)
                           { 

bool creaImageIO::WxDescriptorPanel::addLevel ( const std::string &  name  )  [private]

add a level

Definition at line 406 of file creaImageIOWxDescriptorPanel.cpp.

                 : level's name to add  //
  // @return : boolean result                                             //
   bool WxDescriptorPanel::addLevel(const std::string &name)
   {
           bool bfound = false;
           std::map<std::string, std::vector <std::string> >::iterator it_tree = DscpTree.begin();
           for (;it_tree != DscpTree.end(); it_tree++)
           {

void creaImageIO::WxDescriptorPanel::CreateDescriptor ( int  type  )  [private]

Create a descriptor structure.

Definition at line 358 of file creaImageIOWxDescriptorPanel.cpp.

                 : level's name to add           //
  // @return : boolean result                    //
   void WxDescriptorPanel::CreateDescriptor(int type)
   {
           if(type == 0) // First initialization
           {
                   outDscp.clear();
                   outDscp += "<level>";
                   outDscp += "\n";
                   outDscp += "root";
                   outDscp += "\n";
                   outDscp += "O Name Name 4";
                   outDscp += "\n";
           }
           if(type == 1)
           {
                   if(lv > 1)
                   {
                        outDscp += "O NumberOfChildren ";
                        outDscp += crea::wx2std(LevelCtrl->GetValue());
                        outDscp += "s";
                        outDscp += "\n";
                   }
                   outDscp += "<level>";
                   outDscp += "\n";
                   outDscp += crea::wx2std(LevelCtrl->GetValue());
                   outDscp += "\n";
                   
           }

void creaImageIO::WxDescriptorPanel::createDescriptorFile (  )  [private]

Create a descriptor file.

Definition at line 628 of file creaImageIOWxDescriptorPanel.cpp.

                   :    WxEvent                                                 //
   // @return : -                                                               //

   void WxDescriptorPanel::OnCancel(wxCommandEvent& event)
   {
   }
   
   // create  a descriptor      file                                            //
   // @param - :                                                                //
   // @return : -                                                               //
   void WxDescriptorPanel::createDescriptorFile()
   {
                
                   outDscp.clear();
                   outDscp += "<level>";
                   outDscp += "\n";
                   outDscp += "Root";
                   outDscp += "\n";
                   outDscp += "O Name Name 4";
                   outDscp += "\n";
                   std::map<std::string, std::vector <std::string> >::iterator it_tree = DscpTree.begin();
                   std::map<int, std::string >::iterator it_lv_nb = lvlist.begin();
                   std::map<int, std::string >::iterator it_lv = lvlist.begin();
                   it_lv_nb++;
                   for (;it_lv != lvlist.end(); it_lv++)
               {
                           outDscp +="<level>";
                       outDscp += "\n";
                           outDscp += it_lv->second.c_str();
                             outDscp += "\n";
                            if(it_lv_nb != lvlist.end())
                           {
                                   outDscp += "O NumberOfChildren ";
                                   outDscp += it_lv_nb->second.c_str();
                                   outDscp += "s";
                                   outDscp += "\n";
                                   it_lv_nb++;
                           }
                           std::vector<std::string>::iterator it_branch = DscpTree[it_lv->second.c_str()].begin();      
                      for(;it_branch != DscpTree[it_lv->second.c_str()].end(); it_branch++)
                          {      
                                  std::string att = it_branch->c_str();
                                  if(att[0] == 'D' && att[7] == '_' && att.size() == 14) 
                                  {
                                      outDscp += "D ";
                                          outDscp += att.substr(1,6) + " "; // GR
                                          outDscp += att.substr(8,6) + " ";// EL
                                          outDscp += "3";
                                          outDscp += "\n";
                                  }

std::string creaImageIO::WxDescriptorPanel::findLevel (  )  [private]

find a level'name

Definition at line 287 of file creaImageIOWxDescriptorPanel.cpp.

                  {
                          result = it_att->first.c_str();
                          break;
                  }
          }
          return result;
  }
        
  // Find a level in function of position in Return Ctrl  //
  // @param - :   //
  // @return : -                                                  //
  std::string WxDescriptorPanel::findLevel()
  {
          long column;
          long line;
          
          ResultCtrl->PositionToXY( ResultCtrl->GetInsertionPoint(),&column, &line);

const std::string& creaImageIO::WxDescriptorPanel::GetDescriptor (  )  [inline]

Definition at line 46 of file creaImageIOWxDescriptorPanel.h.

References m_DscpFile.

{ return m_DscpFile;}

void creaImageIO::WxDescriptorPanel::loadDescriptor ( const std::string  i_name  )  [private]

load a descriptor file

Definition at line 689 of file creaImageIOWxDescriptorPanel.cpp.

                    : file name to load                             //
   // @return : -                                                                               //
   void WxDescriptorPanel::loadDescriptor(const std::string i_name)
   {
           std::ifstream i_file(i_name.c_str());
           std::stringstream buffer;
           buffer << i_file.rdbuf();
           std::string line;
           std::string level;

#if defined(USE_GDCM2)
           const gdcm::Global& g = gdcm::Global::GetInstance(); // sum of all knowledge !
           const gdcm::Dicts &dicts = g.GetDicts();
           const gdcm::Dict &dict = dicts.GetPublicDict(); // Part 6
#endif
          

                bool bname;
                int ilevel = -1;

                
                while(std::getline(buffer, line))
                {
                        if(line =="<level>")
                        {       //increment levels.
                                ilevel++;
                                bname = true;
                        }
                        else if(bname)
                        {
                                // For each level, a name to describe it
                                level = line;
                                if(ilevel>0)
                                {
                                        onAddLevel(level);
                                }
                                bname = false;
                        }
                        else
                        { 
                                // split line to find all tags
                                std::vector<std::string> descriptors;
                                std::string separator = " ";
                                std::string::size_type last_pos = line.find_first_not_of(separator);
                                //find first separator
                                std::string::size_type pos = line.find_first_of(separator, last_pos);
                                while(std::string::npos != pos || std::string::npos != last_pos)
                                {
                                        descriptors.push_back(line.substr(last_pos, pos - last_pos));
                                        last_pos = line.find_first_not_of(separator, pos);
                                        pos = line.find_first_of(separator, last_pos);
                                }
                                
                                // By default, the last tag is at zero and not recorded but if take in count
                                unsigned int flag = 0;
                                if(descriptors.size() == 4)
                                {
                                        std::stringstream val;
                                        val << std::dec << descriptors[3];
                                        val>> flag;
                                }

                                // if Dicom tag, use "group" and "element" descriptor
                                if(descriptors[0] == "D")
                                {       std::stringstream val, val2;
                                        unsigned short group;
                                        unsigned short element;
                                        val <<   std::dec << descriptors[1] ;
                                        val >> std::hex >> group;
                                        val2 << std::dec <<  descriptors[2];
                                        val2 >> std::hex >> element;
                                        std::string compose =  "D";
                                        compose +=  descriptors[1];
                                        compose += "_";
                                        compose +=  descriptors[2];
#if defined(USE_GDCM)
                                        GDCM_NAME_SPACE::DictEntry* entry = GDCM_NAME_SPACE::Global::GetDicts()->GetDefaultPubDict()->GetEntry(group, element);
                                        if(ilevel>0)
                                        {
                                                onAddAttribute( entry->GetName(),compose, level);
                                        }
#endif

#if defined(USE_GDCM2)
                                        gdcm::DictEntry dictentry =  dict.GetDictEntry(gdcm::Tag(group, element));
                                        if(ilevel>0)
                                        {
                                                onAddAttribute( dictentry.GetName(),compose, level);
                                        }
        

#endif
                                }
                                else if(descriptors[0].find("#") != -1)

void creaImageIO::WxDescriptorPanel::OnAddAttribute ( wxCommandEvent &  event  )  [private]

Add an attribute (DICOM or own).

Definition at line 97 of file creaImageIOWxDescriptorPanel.cpp.

Referenced by WxDescriptorPanel().

  {
    GimmickDebugMessage(1,"WxCustomizeConfigPanel::~WxCustomizeConfigPanel"
                        <<std::endl);
  }

  // Add an attribute  //
  // @param event : Wxevent  //
  // @return : -                                                  //
  void WxDescriptorPanel::OnAddAttribute(wxCommandEvent& event)
  {

Here is the caller graph for this function:

void creaImageIO::WxDescriptorPanel::onAddAttribute ( const std::string &  att,
const std::string &  name_att,
std::string  level = "" 
) [private]

Add an attribute (DICOM or own).

Definition at line 120 of file creaImageIOWxDescriptorPanel.cpp.

References AttributeCombo, and OwnAttribute().

          {     
             wxString wd = AttributeCombo->GetValue();
             std::string st = crea::wx2std(wd);
             name_att = OwnAttribute(st);
          }
          onAddAttribute(crea::wx2std(AttributeCombo->GetValue()), name_att);
  }
  // add an attribute  //
  // @param att :  attribute //
  // @param name_att :  's name //
  // @param level : level to add the attribute  //
  // @return : -                                                  //
  void WxDescriptorPanel::onAddAttribute( const std::string &att, const std::string &name_att,std::string level )
  {
          if(lv == 0)
          {
                  wxMessageBox(_T("Need a level first!"),crea::std2wx("WARNING"),wxOK,this);
          }
          else
          {
                if( !att.empty() )
                {
                // Find Name of level
                        if(level.empty())
                        {
                                level = findLevel();
                        }

                        if (!addAtribute(level, name_att))
                        {
                                wxMessageBox(_T("Attribute already used in this level"),crea::std2wx("WARNING"),wxOK,this);
                        }
                        else
                        {
                                ResultCtrl->SetInsertionPoint(InsertPt);
                for (int i = 1; i<=lv;i++)
                                { 
                                   ResultCtrl->WriteText(_T("   "));
                                }
                                ResultCtrl->WriteText(_T("| - "));

Here is the call graph for this function:

void creaImageIO::WxDescriptorPanel::OnAddLevel ( wxCommandEvent &  event  )  [private]

Add a Level.

Definition at line 168 of file creaImageIOWxDescriptorPanel.cpp.

Referenced by WxDescriptorPanel().

                  : Wxevent  //

Here is the caller graph for this function:

void creaImageIO::WxDescriptorPanel::onAddLevel ( const std::string &  level  )  [private]

Add a Level.

Definition at line 181 of file creaImageIOWxDescriptorPanel.cpp.

  {
          if( !LevelCtrl->GetValue().IsEmpty() )
          {
                  onAddLevel(crea::wx2std(LevelCtrl->GetValue()));
          }
  }

  // add a level  //
  // @param level : level's name   //
  // @return : -                                                  //
  void WxDescriptorPanel::onAddLevel(const std::string &level)
  {
                  if(addLevel(level))
                  {
                          wxMessageBox(_T("Level already used"),crea::std2wx(("WARNING")),wxOK,this);
                          return;
                  }
                  
                   lv++;
                   ResultCtrl->SetInsertionPoint(InsertPt);
                   for (int i = 1; i<lv;i++)
                   { 
                           ResultCtrl->WriteText(_T("   "));
                   }
                   if(lv>1)
                   {    ResultCtrl->WriteText(_T("| \n"));
                                for (int i = 1; i<lv;i++)
                                { 
                                        ResultCtrl->WriteText(_T("   "));

void creaImageIO::WxDescriptorPanel::OnApply ( wxCommandEvent &  event  )  [private]

Save a descriptor and use it.

Definition at line 580 of file creaImageIOWxDescriptorPanel.cpp.

References saveDescriptor().

                  : WxEvent                                               //
  // @return : -                                                         //
   void WxDescriptorPanel::OnOK(wxCommandEvent &Event)
   {
          saveDescriptor();

Here is the call graph for this function:

void creaImageIO::WxDescriptorPanel::OnCancel ( wxCommandEvent &  event  )  [private]

Cancel.

Definition at line 619 of file creaImageIOWxDescriptorPanel.cpp.

                   :    WxEvent                                                 //

void creaImageIO::WxDescriptorPanel::OnDicomAttribute ( wxCommandEvent &  event  )  [private]

Find a DICOM attribute from group and element values.

Definition at line 220 of file creaImageIOWxDescriptorPanel.cpp.

Referenced by WxDescriptorPanel().

                  : Wxevent  //
  // @return : -                                                  //
  void WxDescriptorPanel::OnDicomAttribute(wxCommandEvent& event)
  {
          int i = 0;
          if(!GRCtrl->GetValue().IsEmpty() && !ELCtrl->GetValue().IsEmpty() 
                  && GRCtrl->GetValue().Len() == 6 && ELCtrl->GetValue().Len() == 6 && AttributeCombo->GetSelection() == 0)
          {

                  std::string gr = crea::wx2std(GRCtrl->GetValue());
                  std::string el = crea::wx2std(ELCtrl->GetValue());
                  std::stringstream val;
        
                  unsigned short group;
                  unsigned short element;
                  val <<   std::dec << gr ;
                  val >> std::hex >> group;
                  val.clear();
                  val <<   std::dec << el ;
                  val >> std::hex >> element;
#if defined(USE_GDCM)   
                 // Retrieve the name from gdcm dict
                  GDCM_NAME_SPACE::DictEntry* entry = GDCM_NAME_SPACE::Global::GetDicts()->GetDefaultPubDict()->GetEntry(group, element);
                 // AttributeCombo->Clear();
                  if(entry)
                  {

Here is the caller graph for this function:

void creaImageIO::WxDescriptorPanel::OnLoad ( wxCommandEvent &  event  )  [private]

Load an exsitant descriptor.

Definition at line 541 of file creaImageIOWxDescriptorPanel.cpp.

Referenced by WxDescriptorPanel().

   {
           LevelCtrl->SetValue(_T("patient"));
           ResultCtrl->Clear();
           DscpTree.clear();
           lv = 0;
   }

  // Load a descriptor file                                             //
  // @param event : WxEvent                                             //
  // @return : -                                                        //
   void WxDescriptorPanel::OnLoad(wxCommandEvent &Event)
   {
            long style = wxOPEN | wxFILE_MUST_EXIST;
           LevelCtrl->SetValue(_T("patient"));
           ResultCtrl->Clear();
           DscpTree.clear();
           lv = 0;
                

Here is the caller graph for this function:

void creaImageIO::WxDescriptorPanel::OnNew ( wxCommandEvent &  event  )  [private]

Create a new descriptor.

Definition at line 528 of file creaImageIOWxDescriptorPanel.cpp.

Referenced by WxDescriptorPanel().

                  : WxEvent                                     //

Here is the caller graph for this function:

void creaImageIO::WxDescriptorPanel::OnOK ( wxCommandEvent &  event  )  [private]

Save a descriptor.

Definition at line 569 of file creaImageIOWxDescriptorPanel.cpp.

        {
                loadDescriptor(crea::wx2std(FD->GetPath()).c_str());

void creaImageIO::WxDescriptorPanel::OnRemove ( wxCommandEvent &  event  )  [private]

Remove a value (level or attribute).

Definition at line 313 of file creaImageIOWxDescriptorPanel.cpp.

Referenced by WxDescriptorPanel().

          {
                  level_pos_start += 2;
          }

          std::string::size_type level_pos_end = tx.find_first_of("\n",level_pos_start);
          return  tx.substr(level_pos_start,level_pos_end - level_pos_start);
  }

  // Remove an item                               //
  // @param event : Wxevent  //
  // @return : -                                                  //
  void WxDescriptorPanel::OnRemove(wxCommandEvent& event)
  {
          long line;
          long column;
          long pos_start;
          long pos_end;

          pos_start = ResultCtrl->GetInsertionPoint();
          ResultCtrl->PositionToXY( pos_start,&column, &line);
          if (line == 0) 
          {
                  std::string name("root");
                  RemoveLevel(name);
                  ResultCtrl->Clear();
                  lv = 0;
          }
          else
          {
                wxString text = ResultCtrl->GetLineText(line);
                if ( text.Find(_T("|_")) == -1)
                {
                  std::string level = findLevel();
                  // find GR and EL values to remove
                  std::string tx = crea::wx2std(text);
                  std::string::size_type  EL_start_pos = tx.find_last_of(" ");
                  RemoveAttribute(level, tx.substr(EL_start_pos+1,tx.size() - EL_start_pos));

Here is the caller graph for this function:

std::string creaImageIO::WxDescriptorPanel::OwnAttribute ( const std::string  name  )  [private]

determine values for own attributes

Definition at line 266 of file creaImageIOWxDescriptorPanel.cpp.

Referenced by onAddAttribute().

                 : attribute's name  //
  // @param key : indicates key map or not  //
  // @return : -                                                  //
  std::string WxDescriptorPanel::OwnAttribute(const std::string name)

Here is the caller graph for this function:

bool creaImageIO::WxDescriptorPanel::RemoveAttribute ( const std::string &  level,
const std::string &  name 
) [private]

remove an attribute

Definition at line 499 of file creaImageIOWxDescriptorPanel.cpp.

                  : level's name to remove attribute  //
  // @param name : attribute's name                                       //
  // @return : boolean result                                             //
   bool WxDescriptorPanel::RemoveAttribute(const std::string &level, const std::string &name)
   {
              bool bresult = false;
           std::map<std::string, std::vector <std::string> >::iterator it_tree = DscpTree.begin();
           for (;it_tree != DscpTree.end(); it_tree++)
           {
                   if(it_tree->first == level)
                   {
                           std::vector<std::string>::iterator it_branch = it_tree->second.begin();

bool creaImageIO::WxDescriptorPanel::RemoveLevel ( const std::string &  name  )  [private]

remove a level

Definition at line 432 of file creaImageIOWxDescriptorPanel.cpp.

References DscpTree, and lvlist.

           {
                    lvlist[lv] = name;
                        std::vector <std::string> branch;
                        DscpTree[name] = branch;
           }
                return bfound;
   }

  // remove a level                               //
  // @param name : level's name to remove  //
  // @return : boolean result                                             //
   bool WxDescriptorPanel::RemoveLevel(const std::string &name)
   {
           bool bresult = false;
           std::map<int, std::string>::iterator it_list= lvlist.begin();
           for(; it_list != lvlist.end(); it_list++)
           {
                   if(it_list->second == name)
                   {
                           break;
                   }
           }
           std::map<int, std::string>::iterator it_list2 = it_list;
           for(;it_list != lvlist.end(); it_list++)

const std::string creaImageIO::WxDescriptorPanel::saveDescriptor (  )  [private]

save a descriptor in a file

Definition at line 587 of file creaImageIOWxDescriptorPanel.cpp.

Referenced by OnApply().

                  : WxEvent                                             //
  // @return : -                                                        //
   void WxDescriptorPanel::OnApply(wxCommandEvent &Event)
   {
                m_DscpFile = saveDescriptor();
                wxWindow::Close();
                SetReturnCode(ID_DSCP_APPLY);
   }

   const std::string WxDescriptorPanel::saveDescriptor()
   {
           std::string file = "";
                long style = wxSAVE;
                std::string wc("*.dscp");
                wxFileDialog* FD = new wxFileDialog( 0, 
                                                _T("Select file"),
                                                _T(""),
                                                _T(""),
                                                crea::std2wx(wc),
                                                style,

Here is the caller graph for this function:


Member Data Documentation

Definition at line 55 of file creaImageIOWxDescriptorPanel.h.

Referenced by onAddAttribute().

std::map<std::string, std::vector<std::string> > creaImageIO::WxDescriptorPanel::DscpTree [private]

Definition at line 136 of file creaImageIOWxDescriptorPanel.h.

Referenced by RemoveLevel().

Definition at line 53 of file creaImageIOWxDescriptorPanel.h.

Definition at line 52 of file creaImageIOWxDescriptorPanel.h.

Insert point in result control.

Definition at line 124 of file creaImageIOWxDescriptorPanel.h.

Definition at line 51 of file creaImageIOWxDescriptorPanel.h.

number of level

Definition at line 121 of file creaImageIOWxDescriptorPanel.h.

std::map<int, std::string> creaImageIO::WxDescriptorPanel::lvlist [private]

Definition at line 142 of file creaImageIOWxDescriptorPanel.h.

Referenced by RemoveLevel().

Output file for Descriptor.

Definition at line 127 of file creaImageIOWxDescriptorPanel.h.

Referenced by GetDescriptor().

Definition at line 145 of file creaImageIOWxDescriptorPanel.h.

Output Descriptor.

Definition at line 130 of file creaImageIOWxDescriptorPanel.h.

std::map<std::string, std::string> creaImageIO::WxDescriptorPanel::ownatt [private]

Definition at line 139 of file creaImageIOWxDescriptorPanel.h.

Definition at line 54 of file creaImageIOWxDescriptorPanel.h.

std::vector<std::string> creaImageIO::WxDescriptorPanel::VLevel [private]

Definition at line 133 of file creaImageIOWxDescriptorPanel.h.


The documentation for this class was generated from the following files: