]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxTreeView.cpp
move directory
[creaImageIO.git] / src2 / creaImageIOWxTreeView.cpp
index 03c5b0d3d3dab15af21147d39eab9ca01d53d01d..86850e4192e795c7691f69567ea2f7dab904860e 100644 (file)
@@ -4,7 +4,10 @@
 #include <wx/splitter.h>
 #include <wx/gdicmn.h>
 #include <boost/date_time/gregorian/gregorian.hpp>
-
+#include <creaImageIOGimmick.h>
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
 //=====================================================================
 namespace creaImageIO
 {
@@ -106,7 +109,7 @@ namespace creaImageIO
     //    mSplitter = new wxSplitterWindow( this , -1);
 
     // Global sizer
-    wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
+    msizer = new wxBoxSizer(wxHORIZONTAL);
     
     int ctrl_style = wxLC_REPORT | wxLC_VRULES;
     int col_style = wxLIST_FORMAT_LEFT;
@@ -205,25 +208,35 @@ namespace creaImageIO
        Connect( mFilterID, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(WxTreeView::OnPopupFilter) );
 
 
+       ////SubMenuItem EXPORT
+       subExportMenu = new wxMenu;
+       wxMenuItem *subExp1 = subExportMenu->Append(wxID_ANY, _T("&Export to Storage"));
+       Connect( subExp1->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(WxTreeView::OnExportToStorage) );
 
        //ItemMenu
        menuItem =new wxMenu;
        wxMenuItem* m1Item=menuItem->Append(wxID_ANY, _T("&Anonymize"));
        wxMenuItem* m2Item=menuItem->Append(wxID_ANY, _T("&Local Copy"));
        wxMenuItem* m3Item=menuItem->Append(wxID_ANY, _T("&Edit Fields"));
-       
+       wxMenuItem* m4Item=menuItem->Append(wxID_ANY, _T("&Display Dicom Tags"));
+       menuItem->AppendSubMenu(subExportMenu, wxT("&Export"));
+
        mAnonymizingID=m1Item->GetId();
        mLocalCopyID=m2Item->GetId();
        mEditFieldID=m3Item->GetId();
+       mDumpID=m4Item->GetId();
+       
        //Connect( mAnonymizingID, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(WxTreeView::OnAnonymize) );
        Connect( mLocalCopyID, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(WxTreeView::OnLocalCopy) );
        Connect( mEditFieldID, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(WxTreeView::OnEditField) );
+       Connect( mDumpID, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(WxTreeView::OnDumpTags) );
        
+
        
 #endif // wxUSE_MENUS
        /// Initialize the first level splitter
          
-       sizer->Add( mLevelList[0].wxSplitter ,1, wxGROW  ,0);
+       msizer->Add( mLevelList[0].wxSplitter ,1, wxGROW  ,0);
        //      mColumnSelected=1;
        mLastSelected=0;
        mLastLevel=0;
@@ -234,7 +247,7 @@ namespace creaImageIO
        //CreateColorPalette();
     UpdateLevel(1);
 
-    SetSizer( sizer );     
+    SetSizer( msizer );     
     SetAutoLayout(true);
     Layout();
 
@@ -865,6 +878,46 @@ namespace creaImageIO
        GetGimmickView()->CreateEditFieldsDialog(node,names,keys);
        }
   }
+
+  //================================================================
+
+  //================================================================
+
+  void WxTreeView::OnExportToStorage(wxCommandEvent &event)
+  {
+       std::vector<std::string> filesname;
+       std::vector<tree::Node*> nodes;
+       nodes.push_back(((ItemData*)GetCtrl(mLastRightLevel)->GetItemData(mLastRightSelected))->node);
+       GetFilenamesAsString(nodes,filesname);
+       GetGimmickView()->ExportToStorage(filesname);
+  }
+
+  //================================================================
+
+  //================================================================
+
+  void WxTreeView::OnDumpTags(wxCommandEvent &event)
+  {
+         if(mLastRightSelected!=-1)
+       {
+               tree::Node* node=((ItemData*)GetCtrl(mLastRightLevel)->GetItemData(mLastRightSelected))->node;
+               tree::LevelDescriptor::AttributeDescriptorListType::const_iterator a;
+               std::vector<std::string> names;
+               std::vector<std::string> keys;
+               for (a  = GetTreeHandler()->GetTree().GetAttributeDescriptorList(mLastRightLevel+1).begin();
+                        a != GetTreeHandler()->GetTree().GetAttributeDescriptorList(mLastRightLevel+1).end();
+                        ++a)
+                       {
+                               if(a->GetKey()=="FullFileName")
+                               {
+                                       GetGimmickView()->DumpTags(node->GetAttribute("FullFileName"));
+                                       return;
+                               }
+                       }
+         }
+  }
+  
+
   //================================================================
 
   //================================================================