]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOWxGimmickView.cpp
#3264 creaImageIO Feature New Normal - Add Dicom Tags to the DB sqlite
[creaImageIO.git] / src / creaImageIOWxGimmickView.cpp
index c538c6a844ba183dd1b9a2f233439ec0fd21f4ce..63d4f4257ad3aac2b3162e1664a315f8fc01c87e 100644 (file)
@@ -131,22 +131,20 @@ namespace creaImageIO
                               const wxPoint& pos, 
                               const wxSize& size,
                               int min_dim,
-                               int max_dim,
+                   int max_dim,
                               int number_of_threads)
     : wxPanel(parent,id,pos,size),
       GimmickView(gimmick, number_of_threads),
-      mProgressDialog(0),
+      mProgressDialog(NULL),
       mConstructed(false)
   {
-    GimmickDebugMessage(1,"WxGimmickView::WxGimmickView"
-                       <<std::endl);
+       mViewer = NULL;
+    GimmickDebugMessage(1,"WxGimmickView::WxGimmickView" <<std::endl);
     // Sets the current directory to the home dir
     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();
@@ -163,8 +161,7 @@ namespace creaImageIO
     mSplitter = new wxSplitterWindow( this , -1);
 
     // Notebook
-    mNotebook = new wxNotebook(mSplitter,
-                              -1, wxDefaultPosition, wxDefaultSize, 0);
+    mNotebook = new wxNotebook(mSplitter, -1, wxDefaultPosition, wxDefaultSize, 0);
 
     //Gimmick
     mGimmick=gimmick;
@@ -195,25 +192,22 @@ namespace creaImageIO
 
     mText = new wxStaticText(mBottomPanel, wxID_ANY, wxT("Welcome to Gimmick!"));
     mbottom_sizer->Add(mText,0,wxGROW,0);
-
-         
-         
+       
     mBottomPanel->SetSizer(mbottom_sizer);
 
     // Splitting
     /// \TODO fix warning: unused variable hsize
     int hsize = size.GetHeight();
 
-    int top_minsize = 450;
-    int bottom_minsize = 50;
+    int top_minsize    = 450;
+    int bottom_minsize         = 50;
 
     mSplitter->SetMinimumPaneSize( bottom_minsize );
-    mSplitter->SplitHorizontally( mNotebook, mBottomPanel, 
-                                 top_minsize);
+    mSplitter->SplitHorizontally( mNotebook, mBottomPanel, top_minsize);
 
     msizer->Add( mSplitter, 1, wxGROW, 0);
 
-    mProgressDialog=0;
+    mProgressDialog=NULL;
     SetSizer( msizer );     
     SetAutoLayout(true);
     Layout();
@@ -233,10 +227,11 @@ namespace creaImageIO
   {
        // stop the viewer before application exit.
     mViewer->StopPlayer();
-    GimmickDebugMessage(1,"WxGimmickView::~WxGimmickView"
-                       <<std::endl);
+    GimmickDebugMessage(1,"WxGimmickView::~WxGimmickView" <<std::endl);
        delete mIcon;
        delete mViewer;
+       mIcon   = NULL;
+       mViewer = NULL;
     //if(mListener->IsAlive())   {        mListener->Delete();    }
   }
   //======================================================================
@@ -313,8 +308,7 @@ namespace creaImageIO
   void WxGimmickView::CreateTreeView( TreeHandler* h)
   {
     std::string name(h->GetTree().GetAttribute("Name"));
-    GimmickMessage(2,"Creating the tree view for '"<<
-                  name<<"'"<<std::endl);
+    GimmickMessage(2,"Creating the tree view for '"<<  name<<"'"<<std::endl);
     // Create the WxTreeView
     WxTreeView* view = new WxTreeView(h, this, mNotebook, -1);
 
@@ -357,18 +351,28 @@ namespace creaImageIO
   void WxGimmickView::getSelectedFiles(std::vector<OutStrGimmick> &outG, std::vector< std::string> i_attr, 
                                        bool mult, const std::string out_model)
   {
+printf("EED WxGimmickView::getSelectedFiles Start\n");
+
        // First we select the files
    std::vector<std::string> files;
+printf("EED WxGimmickView::getSelectedFiles 1.1\n");
        std::string db_name = crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()));
+printf("EED WxGimmickView::getSelectedFiles 1.2\n");
        GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->GetSelectedAsString(files);
+printf("EED WxGimmickView::getSelectedFiles 1.3\n");
 
        std::string asking;
        std::string dim;
-       bool bsingle = isSingle(files.front());
+printf("EED WxGimmickView::getSelectedFiles 1.3.1\n");
+       bool bsingle = isSingle( files.front() );
+printf("EED WxGimmickView::getSelectedFiles 1.3.2\n");
        int i_dim_out;
+printf("EED WxGimmickView::getSelectedFiles 1.4\n");
        mGimmick->GetSetting(SETTINGS_OUTPUT_ASK, asking);
+printf("EED WxGimmickView::getSelectedFiles 1.5\n");
        mGimmick->GetSetting(SETTINGS_OUTPUT_DIM, dim);
 
+printf("EED WxGimmickView::getSelectedFiles 1.6\n");
 
        if (asking == "true")
        {
@@ -376,7 +380,9 @@ namespace creaImageIO
                // get dim
                int idim;
                sscanf(dim.c_str(),"%d",&idim);
+printf("EED WxGimmickView::getSelectedFiles 1.7\n");
                WxOutputDlg *dlg = new WxOutputDlg(this,files, idim -1, bsingle);
+printf("EED WxGimmickView::getSelectedFiles 1.8\n");
                if (dlg->ShowModal() == wxID_OK)
                {
                        dim = dlg->getDim();
@@ -389,6 +395,9 @@ namespace creaImageIO
        }
        sscanf(dim.c_str(),"%d",&i_dim_out);
 
+printf("EED WxGimmickView::getSelectedFiles 2\n");
+
+
        // Next we create the structure for dicom output infos
        OutputAttr Oattr;
 //EED 01/09/2014
@@ -432,6 +441,9 @@ namespace creaImageIO
        }
        // Now we read and create the waiting output (vtkImageData * or OutGimmickData *)
        readImages(outG, sort_files, Oattr, i_dim_out, zspacing);
+
+printf("EED WxGimmickView::getSelectedFiles End\n");
+
   }
 
 
@@ -659,9 +671,7 @@ namespace creaImageIO
   //=================================================
   void WxGimmickView::OnSelectionChange(const std::vector<tree::Node*>& sel, bool isSelection, int selection, bool needProcess)
   {      
-    GimmickDebugMessage(5,
-                       "WxGimmickView::OnSelectionChange"
-                       <<std::endl);
+       GimmickDebugMessage(5,"WxGimmickView::OnSelectionChange"<<std::endl);
     wxBusyCursor busy;
        bool valid=true;
        
@@ -670,9 +680,7 @@ namespace creaImageIO
                valid= ValidateSelected(NULL,
                                mSelectionMinDimension,
                                mSelectionMaxDimension );
-       }
-       else if(needProcess)
-       {
+       } else if(needProcess) {
                ResetExtent();
                std::vector<tree::Node*>::const_iterator i;
                for(i=sel.begin();i!=sel.end()&&valid;++i)
@@ -680,16 +688,12 @@ namespace creaImageIO
                        valid= ValidateSelected((*i),
                                mSelectionMinDimension,
                                mSelectionMaxDimension );
-               }
-       }
-       else if(isSelection)
-       {
+               } // for
+       } else if(isSelection) {
                valid= ValidateSelected(sel.front(),
                                mSelectionMinDimension,
                                mSelectionMaxDimension );
-       }
-       else
-       {
+       } else {
                ResetExtent();
                std::vector<tree::Node*>::const_iterator i;
                for(i=sel.begin();i!=sel.end()&&valid;++i)
@@ -697,18 +701,22 @@ namespace creaImageIO
                        valid= ValidateSelected((*i),
                                mSelectionMinDimension,
                                mSelectionMaxDimension );
-               }
-       }
+               } // for 
+       } // if sel.size 
        mText->SetLabel(crea::std2wx(GetMessage()));
-    /*if(valid)
-      {
-       ReadImageThreaded(sel);
-      }
-    else
-      {
-                 ClearSelection();
-      }*/
-       ReadImageThreaded(sel);
+/*
+       if(valid)
+    {
+               ReadImageThreaded(sel);
+    } else {
+               ClearSelection();
+    }
+*/
+         
+         
+//EED1 2018-08  
+//     ReadImageThreaded(sel);
+
    }
 
   //==================================================
@@ -717,9 +725,7 @@ namespace creaImageIO
   ///Reads Images (Threaded)
   void WxGimmickView::ReadImageThreaded(const std::vector<tree::Node*>& sel)
   {    
-   GimmickDebugMessage(5,
-                      "ReadImageThreaded"
-                      <<std::endl);
+   GimmickDebugMessage(5,  "ReadImageThreaded"   <<std::endl);
    int maxprio = GetMaximalPriority();
    int prio = maxprio + 2000;
 
@@ -780,17 +786,15 @@ namespace creaImageIO
                RequestReading(*iterDown,prio,-1,ph);
                //              AddEntryToMap(*iterDown);
                prio--;
-               if (prio == maxprio) break;
-       }
-   }
-   else
-   {
+               if (prio == maxprio) { break; }
+       } // for
+   } else {
           pointers.clear();
           //ImagePointerHolder* ph=new ImagePointerHolder(GetDefaultImage());
           boost::shared_ptr<ImagePointerHolder> ph(new ImagePointerHolder(GetDefaultImage()));
           pointers.push_back(ph);
           mViewer->SetImageVector(pointers);
-   }
+   } // if
   }
 
   //==================================================
@@ -801,15 +805,16 @@ namespace creaImageIO
   //==================================================
    void  WxGimmickView::OnInternalIdle()
    {
-     if (!mConstructed) return;
+       if (!mConstructed) return;
      static bool first_time = true;
+        
      if (false)
      {
        first_time = false;
      }
    //   GimmickMessage(1,"WxGimmickView : Refresh viewer"<<std::endl);
        //  mViewer->StartPlayer();
-     if(mViewer)
+     if(mViewer!=NULL)
      {
         mViewer->RefreshIfNecessary();
      }
@@ -817,9 +822,11 @@ namespace creaImageIO
 #else
   void WxGimmickView::UpdateWindowUI(long flags)
   {
-         if(mViewer)
+         if(mViewer!=NULL)
      {
-        mViewer->RefreshIfNecessary();
+// EED 2018-08-23
+// GL Conflict because window is not showing the fist time
+//EED        mViewer->RefreshIfNecessary();
      }
   }
 #endif
@@ -1183,9 +1190,9 @@ namespace creaImageIO
   //========================================================================
   void WxGimmickView::CreateEditFieldsDialog(tree::Node* node, std::vector<std::string> names, std::vector<std::string> keys)
   {
-    wxDialogdial= new wxDialog (this,-1,crea::std2wx("Edit Fields for node "+node->GetLabel()),wxDefaultPosition, wxSize(350,155));
-    wxBoxSizer *siz = new wxBoxSizer(wxVERTICAL);
-    WxEditFieldsPanel* ef = new WxEditFieldsPanel(dial, dial, this, node, names, keys);
+    wxDialog           *dial= new wxDialog (this,-1,crea::std2wx("Edit Fields for node "+node->GetLabel()),wxDefaultPosition, wxSize(350,155));
+    wxBoxSizer         *siz = new wxBoxSizer(wxVERTICAL);
+    WxEditFieldsPanel  *ef  = new WxEditFieldsPanel(dial, dial, this, node, names, keys);
 
     siz->Add( ef,1,wxGROW  ,0); 
     dial->SetSizer(siz);
@@ -1258,7 +1265,7 @@ namespace creaImageIO
     wxString s(wxString::From8BitData(mess));
     //  std::cout << "Pulse"<<std::endl;
 
-       if(mProgressDialog != 0)
+       if(mProgressDialog != NULL)
        {
                if (!mProgressDialog->Pulse(s)) 
                  {
@@ -1354,7 +1361,7 @@ namespace creaImageIO
   {
                mProgressDialog->Resume();
                mProgressDialog->Destroy();
-               mProgressDialog = 0;
+               mProgressDialog = NULL;
   }
 
    //=================================================