]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxGimmickView.cpp
move directory
[creaImageIO.git] / src2 / creaImageIOWxGimmickView.cpp
index 3b9e04187c78ed2b8435c7370c886b5fd0d34fda..0cab09e7fb79d2a49630e6922e13b093f0831421 100644 (file)
@@ -8,6 +8,8 @@
 #include <creaImageIOWxEditFieldsPanel.h>
 #include <creaImageIOWxAttributeSelectionPanel.h>
 #include <creaImageIOWxDescriptorPanel.h>
+#include <creaImageIOWxDumpPanel.h>
+#include <creaImageIOWxExportDlg.h>
 
 using namespace crea;
 // Icons
@@ -31,6 +33,8 @@ using namespace crea;
        #include "bruker2dicom.h"
 #endif
 
+
+#include <creaImageIOGimmick.h>
 #ifdef _DEBUG
 #define new DEBUG_NEW
 #endif
@@ -108,18 +112,18 @@ namespace creaImageIO
     mCurrentDirectory =  std2wx(gimmick->GetHomeDirectory());
 
      // Connect the AddProgress callback
-    gimmick->ConnectAddProgressObserver
-      ( boost::bind( &WxGimmickView::OnAddProgress , this, _1 ) );
+    gimmick->ConnectAddProgressObserver 
+     ( boost::bind( &WxGimmickView::OnAddProgress , this, _1 ) );
 
     // Create the list of icons (mIcon)
     CreateIconList();
 
     // Global sizer
-    wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
+    msizer = new wxBoxSizer(wxVERTICAL);
 
     // Create the tool bar
     CreateToolBar(); 
-    sizer->Add( mToolBar, 0, wxGROW, 0);
+    msizer->Add( mToolBar, 0, wxGROW, 0);
 
     // Split part below toolbar into notebook for views and panel
     // for preview, messages...
@@ -141,7 +145,7 @@ namespace creaImageIO
     // Bottom panel 
     mBottomPanel = new wxPanel(mSplitter,-1);
     
-    wxBoxSizer *bottom_sizer = new wxBoxSizer(wxVERTICAL); //HORIZONTAL);
+    mbottom_sizer = new wxBoxSizer(wxVERTICAL); //HORIZONTAL);
     
     
     // Previewer
@@ -153,15 +157,15 @@ namespace creaImageIO
        mViewer->StartPlayer();
 
 
-    bottom_sizer->Add(mViewer,1,wxGROW,1);
+    mbottom_sizer->Add(mViewer,1,wxGROW,1);
     //    mViewer->Show();
 
     mText = new wxStaticText(mBottomPanel, wxID_ANY, wxT("Welcome to Gimmick!"));
-    bottom_sizer->Add(mText,0,wxGROW,0);
+    mbottom_sizer->Add(mText,0,wxGROW,0);
 
          
          
-    mBottomPanel->SetSizer(bottom_sizer);
+    mBottomPanel->SetSizer(mbottom_sizer);
 
     // Splitting
     int hsize = size.GetHeight();
@@ -173,17 +177,17 @@ namespace creaImageIO
     mSplitter->SplitHorizontally( mNotebook, mBottomPanel, 
                                  top_minsize);
 
-    sizer->Add( mSplitter, 1, wxGROW, 0);
+    msizer->Add( mSplitter, 1, wxGROW, 0);
 
     mProgressDialog=0;
-    SetSizer( sizer );     
+    SetSizer( msizer );     
     SetAutoLayout(true);
     Layout();
-    mListener=new Listener();
-    mListener->ConnectObserver(boost::bind( &WxGimmickView::OnDriveMount, this, _1 ) );
-    mListener->Create();
-    mListener->Run();
-    mListener->Pause();
+    //mListener=new Listener();
+    //mListener->ConnectObserver(boost::bind( &WxGimmickView::OnDriveMount, this, _1 ) );
+    //mListener->Create();
+   // mListener->Run();
+   // mListener->Pause();
 
     mConstructed = true;
   }
@@ -198,10 +202,8 @@ namespace creaImageIO
     GimmickDebugMessage(1,"WxGimmickView::~WxGimmickView"
                        <<std::endl);
        delete mIcon;
-    if(mListener->IsAlive())
-    {
-        mListener->Delete();
-    }
+       delete mViewer;
+    //if(mListener->IsAlive())   {        mListener->Delete();    }
   }
   //======================================================================
   
@@ -463,6 +465,7 @@ namespace creaImageIO
                DisplayAddSummary();
          }
     mViewer->StartPlayer();
+       delete FD;
   }
 
 
@@ -649,6 +652,7 @@ namespace creaImageIO
 
   //==================================================
 
+#if defined(WIN32)
   //==================================================
    void  WxGimmickView::OnInternalIdle()
    {
@@ -665,7 +669,15 @@ namespace creaImageIO
         mViewer->RefreshIfNecessary();
      }
   }
-
+#else
+  void WxGimmickView::UpdateWindowUI(long flags)
+  {
+         if(mViewer)
+     {
+        mViewer->RefreshIfNecessary();
+     }
+  }
+#endif
    //==================================================
 
   //==================================================
@@ -906,7 +918,7 @@ namespace creaImageIO
          nb->AddPage( pacs, crea::std2wx("Connect to PACS") );
 
          //Third page: CD/DVD Watch
-         WxListenerPanel* cdWatch=new WxListenerPanel(nb,dial, this, mListener->IsPaused());
+         WxListenerPanel* cdWatch=new WxListenerPanel(nb,dial, this,true);//, mListener->IsPaused());
          nb->AddPage( cdWatch, crea::std2wx("CD/DVD") );
 
          //Fourth page: Selection of attributes to show
@@ -1016,6 +1028,46 @@ namespace creaImageIO
     dial->ShowModal();  
   }
 
+ //========================================================================
+  void WxGimmickView::DumpTags(std::string i_filename)
+  {
+    WxDumpPanel* pan= new WxDumpPanel (this,i_filename);
+    pan->ShowModal();  
+  }
+
+  //========================================================================
+  void WxGimmickView::ExportToStorage(const std::vector<std::string> i_filenames)
+  {
+       std::vector<std::string> storages;
+       Gimmick::TreeHandlerMapType::iterator it = mGimmick->GetTreeHandlerMap().begin();
+       for(;it != mGimmick->GetTreeHandlerMap().end(); it++)
+       {
+               storages.push_back(it->first);
+       }
+
+    WxExportDlg* exp= new WxExportDlg(this,storages);
+       if ( exp->ShowModal() ==ID_EXPORT_OK)
+       {
+               std::string storage = exp->GetStorage();
+               mProgressDialog = 
+           new wxProgressDialog(_T("Adding file(s)"),
+                              _T(""),
+                              1000,
+                              this,
+                              wxPD_ELAPSED_TIME |
+                              // wxPD_ESTIMATED_TIME |
+                              // wxPD_REMAINING_TIME |
+                              wxPD_CAN_ABORT );
+               mGimmick->AddFiles(storage,i_filenames);
+               mProgressDialog->Pulse(_T("Updating view..."));
+               UpdateTreeViewLevel(storage,1);
+               delete mProgressDialog;
+               DisplayAddSummary();    
+       }
+  }
+
+
+
   //========================================================================
   void WxGimmickView::OnFieldsEdited(tree::Node* node, const std::string& name, const std::string& key, const std::string& val)
   {