]> Creatis software - bbtk.git/commitdiff
*** empty log message ***
authorguigues <guigues>
Wed, 23 Apr 2008 09:31:23 +0000 (09:31 +0000)
committerguigues <guigues>
Wed, 23 Apr 2008 09:31:23 +0000 (09:31 +0000)
kernel/src/bbtkWxGUIPackageBrowser2.cxx
kernel/src/bbtkWxGUIPackageBrowser2.h

index d95d80dee445b049038efc327f155694e990439a..b6c2730df74e26724d783e9814f53c5cfee8d186 100644 (file)
@@ -3,8 +3,8 @@
 Program:   bbtk
 Module:    $RCSfile: bbtkWxGUIPackageBrowser2.cxx,v $
 Language:  C++
-Date:      $Date: 2008/04/18 12:59:16 $
-Version:   $Revision: 1.5 $
+Date:      $Date: 2008/04/23 09:31:23 $
+Version:   $Revision: 1.6 $
                                                                                 
 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
 l'Image). All rights reserved. See Doc/License.txt or
@@ -114,7 +114,7 @@ namespace bbtk
     if (GetColumnCount()!=3)
       {
        InsertColumn( 0, _("Package"), 
-                     wxLIST_FORMAT_LEFT, 40  ); 
+                     wxLIST_FORMAT_LEFT, 60  ); 
        InsertColumn( 1, _("Box"), 
                      wxLIST_FORMAT_LEFT, 200 ); 
        InsertColumn( 2, _("Description"), 
@@ -127,8 +127,8 @@ namespace bbtk
     int nID = this->GetItemCount();
     kNewItem.SetId(nID);
     kNewItem.SetMask(wxLIST_MASK_DATA);
-    // TO DO : STORE SHARED POINTER
-    //    kNewItem.SetData(d.get());  
+    // TO DO : STORE SMART POINTER ?
+    kNewItem.SetData(d.get());  
     //    BlackBoxDescriptor::Pointer* d2 = (BlackBoxDescriptor::Pointer*)kNewItem.GetData();
     //    std::cout << "Descr = "<<d<<" = "<<d2<<std::endl;
     this->InsertItem(kNewItem);
@@ -313,9 +313,9 @@ namespace bbtk
     info.m_mask = wxLIST_MASK_DATA;
     if ( GetItem(info) )
       {
-       // TO DO : STORE SHARED
-       //      BlackBoxDescriptor* d = (BlackBoxDescriptor*)(info.GetData());
-       //      if (d!=0) mUser->WxGUIBlackBoxListUserOnSelected(d);
+       // TO DO : STORE SMART PTR ?
+       BlackBoxDescriptor* d = (BlackBoxDescriptor*)(info.GetData());
+       if (d!=0) mUser->WxGUIBlackBoxListUserOnSelected(d);
       }
     else
       {
@@ -606,7 +606,7 @@ namespace bbtk
 
     
   //================================================================
-  void WxGUIBlackBoxInfo::UpdateInfo(BlackBoxDescriptor::Pointer descr)
+  void WxGUIBlackBoxInfo::UpdateInfo(BlackBoxDescriptor* descr)
   {
 
     //    mName->SetLabel(std2wx(descr->GetTypeName()));
@@ -750,8 +750,12 @@ namespace bbtk
       id_f3,
       id_f4,
       id_f5,
-      id_f6
-
+      id_f6,
+      id_f7,
+      id_f8,
+      id_fc1,
+      id_fc2,
+      id_fc3
     };
 
 
@@ -836,8 +840,8 @@ namespace bbtk
     fsizer->Add(fcat,0,wxGROW);
     wxBoxSizer *fintype = 
       new wxStaticBoxSizer
-      ( new wxStaticBox(filters, wxID_ANY, _T("Input type")), wxHORIZONTAL );    
-    mInputTypeFilter = new wxTextCtrl(filters,id_f4,_T(""),
+      ( new wxStaticBox(filters, wxID_ANY, _T("Input type")), wxHORIZONTAL );
+    mInputTypeFilter = new wxTextCtrl(filters,id_f5,_T(""),
                                    wxDefaultPosition,
                                    wxDefaultSize,
                                    wxTE_PROCESS_ENTER);
@@ -846,12 +850,43 @@ namespace bbtk
     wxBoxSizer *fouttype = 
       new wxStaticBoxSizer
       ( new wxStaticBox(filters, wxID_ANY, _T("Output type")), wxHORIZONTAL );
-    mOutputTypeFilter = new wxTextCtrl(filters,id_f4,_T(""),
+    mOutputTypeFilter = new wxTextCtrl(filters,id_f6,_T(""),
                                    wxDefaultPosition,
                                    wxDefaultSize,
                                    wxTE_PROCESS_ENTER);
     fouttype->Add(mOutputTypeFilter,1,wxGROW);
     fsizer->Add(fouttype,0,wxGROW);
+    wxBoxSizer *finnat = 
+      new wxStaticBoxSizer
+      ( new wxStaticBox(filters, wxID_ANY, _T("Input nature")),wxHORIZONTAL ); 
+    mInputNatureFilter = new wxTextCtrl(filters,id_f7,_T(""),
+                                       wxDefaultPosition,
+                                       wxDefaultSize,
+                                       wxTE_PROCESS_ENTER);
+    finnat->Add(mInputNatureFilter,1,wxGROW);
+    fsizer->Add(finnat,0,wxGROW);
+    wxBoxSizer *foutnat = 
+      new wxStaticBoxSizer
+      ( new wxStaticBox(filters, wxID_ANY,_T("Output nature")),wxHORIZONTAL ); 
+    mOutputNatureFilter = new wxTextCtrl(filters,id_f8,_T(""),
+                                       wxDefaultPosition,
+                                       wxDefaultSize,
+                                       wxTE_PROCESS_ENTER);
+    foutnat->Add(mOutputNatureFilter,1,wxGROW);
+    fsizer->Add(foutnat,0,wxGROW);
+
+
+    mShowWidgetsFilter = new wxCheckBox(filters,id_fc1,_T("Show widgets"));
+    mShowWidgetsFilter->SetValue(true);
+    fsizer->Add(mShowWidgetsFilter,0,wxGROW);
+
+    mShowAdaptorsFilter = new wxCheckBox(filters,id_fc2,_T("Show adaptors"));
+    mShowAdaptorsFilter->SetValue(false);
+    fsizer->Add(mShowAdaptorsFilter,0,wxGROW);
+
+    mShowGUIsFilter = new wxCheckBox(filters,id_fc3,_T("Show GUIs"));
+    mShowGUIsFilter->SetValue(false);
+    fsizer->Add(mShowGUIsFilter,0,wxGROW);
 
     filters->SetSizer(fsizer);
 
@@ -884,7 +919,8 @@ namespace bbtk
 
   //================================================================
   // User callback when a box is selected in the list 
-  void WxGUIPackageBrowser2::WxGUIBlackBoxListUserOnSelected( BlackBoxDescriptor::Pointer d)
+  void WxGUIPackageBrowser2::WxGUIBlackBoxListUserOnSelected
+  ( BlackBoxDescriptor* d)
   {
     mBoxInfo->UpdateInfo(d);
     std::string title = d->GetPackage()->GetName()+"::"+d->GetTypeName();
@@ -897,10 +933,10 @@ namespace bbtk
   //================================================================
   WxGUIPackageBrowser2::~WxGUIPackageBrowser2()
   {
-
-    //    std::cout << "del interpreter" << std::endl;
-    //    if (mInterpreter) delete mInterpreter;
-    //    std::cout << "ok" << std::endl;
+    mFactory.reset();
+    mInterpreter.reset();
+    //    Object::PrintObjectListInfo("");
+    m_mgr.UnInit();
   }
   //================================================================
 
@@ -909,7 +945,10 @@ namespace bbtk
   {
     if (!mInterpreter) mInterpreter =bbtk::Interpreter::New();
     mInterpreter->SetCommandLine(true);
-    mInterpreter->InterpretLine("include *");
+    std::stringstream* buf = new std::stringstream;
+    *buf << "message max 0" << std::endl; 
+    *buf << "include *" << std::endl;
+    mInterpreter->InterpretBuffer(buf);
 
     Factory::Pointer F = mInterpreter->GetExecuter()->GetFactory();
     BuildFromFactory(F);
@@ -956,6 +995,14 @@ namespace bbtk
   {
     //    std::cout << "   '" << wx2std(mPackageFilter->GetValue())<<"'"<<std::endl;
     //    std::cout << "vs '" << d->GetPackage()->GetName() << "'"<<std::endl;
+    if ((!mShowAdaptorsFilter->IsChecked())&&
+       ((d->GetKind()==BlackBoxDescriptor::ADAPTOR)||
+        (d->GetKind()==BlackBoxDescriptor::DEFAULT_ADAPTOR)))
+      return false;
+    if ((!mShowGUIsFilter->IsChecked())&&
+       ((d->GetKind()==BlackBoxDescriptor::GUI)||
+        (d->GetKind()==BlackBoxDescriptor::DEFAULT_GUI)))
+      return false;
     if (d->GetPackage()->GetName().find( wx2std(mPackageFilter->GetValue()) ) 
        == std::string::npos ) return false;
    if (d->GetTypeName().find( wx2std(mNameFilter->GetValue()) ) 
@@ -964,6 +1011,22 @@ namespace bbtk
        == std::string::npos ) return false;
    if (d->GetCategory().find( wx2std(mCategoryFilter->GetValue()) ) 
        == std::string::npos ) return false;
+   if (!mShowWidgetsFilter->IsChecked())
+     {
+       bool found = false;
+       const BlackBoxDescriptor::OutputDescriptorMapType& imap = 
+        d->GetOutputDescriptorMap();
+       BlackBoxDescriptor::OutputDescriptorMapType::const_iterator in;
+       for ( in = imap.begin();  in != imap.end(); ++in ) 
+        {
+          if (in->second->GetName() == "Widget" )
+            {
+              found = true;
+              break;
+            }
+        }
+       if (found) return false;
+     }
    if (mInputTypeFilter->GetValue().size()>0)
      {
        std::string s = wx2std(mInputTypeFilter->GetValue());
@@ -998,7 +1061,40 @@ namespace bbtk
         }
        if (!found) return false;
      }
-
+   if (mInputNatureFilter->GetValue().size()>0)
+     {
+       std::string s = wx2std(mInputNatureFilter->GetValue());
+       bool found = false;
+       const BlackBoxDescriptor::InputDescriptorMapType& imap = 
+        d->GetInputDescriptorMap();
+       BlackBoxDescriptor::InputDescriptorMapType::const_iterator in;
+       for ( in = imap.begin();  in != imap.end(); ++in ) 
+        {
+          if (in->second->GetNature().find(s)!=std::string::npos)
+            {
+              found = true;
+              break;
+            }
+        }
+       if (!found) return false;
+     }
+   if (mOutputNatureFilter->GetValue().size()>0)
+     {
+       std::string s = wx2std(mOutputNatureFilter->GetValue());
+       bool found = false;
+       const BlackBoxDescriptor::OutputDescriptorMapType& imap = 
+        d->GetOutputDescriptorMap();
+       BlackBoxDescriptor::OutputDescriptorMapType::const_iterator in;
+       for ( in = imap.begin();  in != imap.end(); ++in ) 
+        {
+          if (in->second->GetNature().find(s)!=std::string::npos)
+            {
+              found = true;
+              break;
+            }
+        }
+       if (!found) return false;
+     }
 
     return true;
   }
@@ -1012,6 +1108,11 @@ namespace bbtk
     EVT_TEXT_ENTER(id_f4, WxGUIPackageBrowser2::OnFilter )
     EVT_TEXT_ENTER(id_f5, WxGUIPackageBrowser2::OnFilter )
     EVT_TEXT_ENTER(id_f6, WxGUIPackageBrowser2::OnFilter )
+    EVT_TEXT_ENTER(id_f7, WxGUIPackageBrowser2::OnFilter )
+    EVT_TEXT_ENTER(id_f8, WxGUIPackageBrowser2::OnFilter )
+    EVT_CHECKBOX(  id_fc1, WxGUIPackageBrowser2::OnFilter )
+    EVT_CHECKBOX(  id_fc2, WxGUIPackageBrowser2::OnFilter )
+    EVT_CHECKBOX(  id_fc3, WxGUIPackageBrowser2::OnFilter )
     END_EVENT_TABLE()
   //========================================================================
 
index debebbdb1500fbddb62c2bd755e1a8f3f1c4dd92..869da8b8ab8609f0e962760ef3efbf8ba0cc2a77 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkWxGUIPackageBrowser2.h,v $
   Language:  C++
-  Date:      $Date: 2008/04/18 12:59:16 $
-  Version:   $Revision: 1.3 $
+  Date:      $Date: 2008/04/23 09:31:23 $
+  Version:   $Revision: 1.4 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -79,7 +79,7 @@ namespace bbtk
     WxGUIBlackBoxInfo(wxWindow* parent);
     ~WxGUIBlackBoxInfo();
 
-    void UpdateInfo(BlackBoxDescriptor::Pointer descr);
+    void UpdateInfo(BlackBoxDescriptor* descr);
     void InsertInputOutput(wxListCtrl* l, BlackBoxInputOutputDescriptor* i);
   private:
     BlackBoxDescriptor* mDescriptor;
@@ -101,7 +101,7 @@ namespace bbtk
     virtual ~WxGUIBlackBoxListUser() {}
     
     // User callback when a box is selected in the list 
-    virtual void WxGUIBlackBoxListUserOnSelected( BlackBoxDescriptor::Pointer ) {}
+    virtual void WxGUIBlackBoxListUserOnSelected( BlackBoxDescriptor* ) {}
   };
   //================================================================
 
@@ -191,7 +191,7 @@ private:
     void OnFilter(wxCommandEvent&);
  
     // User callback when a box is selected in the list 
-    void WxGUIBlackBoxListUserOnSelected( BlackBoxDescriptor::Pointer );
+    void WxGUIBlackBoxListUserOnSelected( BlackBoxDescriptor* );
 
   private:
     wxAuiManager m_mgr;
@@ -207,6 +207,12 @@ private:
     wxTextCtrl* mCategoryFilter;
     wxTextCtrl* mInputTypeFilter;
     wxTextCtrl* mOutputTypeFilter;
+    wxTextCtrl* mInputNatureFilter;
+    wxTextCtrl* mOutputNatureFilter;
+
+    wxCheckBox* mShowWidgetsFilter;
+    wxCheckBox* mShowAdaptorsFilter;
+    wxCheckBox* mShowGUIsFilter;
 
    DECLARE_EVENT_TABLE()  
   };