X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWxGUIPackageBrowser2.cxx;h=d95d80dee445b049038efc327f155694e990439a;hb=4ad5b5ee44357ad873bc8c43230defb6d0a79879;hp=02a11a9b9839475b2d7e8727f0560e2bd5cde9eb;hpb=981ac411655ee59f6cf7a6e89099a4366ac4b18b;p=bbtk.git diff --git a/kernel/src/bbtkWxGUIPackageBrowser2.cxx b/kernel/src/bbtkWxGUIPackageBrowser2.cxx index 02a11a9..d95d80d 100644 --- a/kernel/src/bbtkWxGUIPackageBrowser2.cxx +++ b/kernel/src/bbtkWxGUIPackageBrowser2.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUIPackageBrowser2.cxx,v $ Language: C++ -Date: $Date: 2008/04/04 08:04:05 $ -Version: $Revision: 1.1 $ +Date: $Date: 2008/04/18 12:59:16 $ +Version: $Revision: 1.5 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -109,7 +109,7 @@ namespace bbtk #endif } - void WxGUIBlackBoxList::Insert(BlackBoxDescriptor* d) + void WxGUIBlackBoxList::Insert(BlackBoxDescriptor::Pointer d) { if (GetColumnCount()!=3) { @@ -127,8 +127,9 @@ namespace bbtk int nID = this->GetItemCount(); kNewItem.SetId(nID); kNewItem.SetMask(wxLIST_MASK_DATA); - kNewItem.SetData(d); - // BlackBoxDescriptor* d2 = (BlackBoxDescriptor*)kNewItem.GetData(); + // TO DO : STORE SHARED POINTER + // kNewItem.SetData(d.get()); + // BlackBoxDescriptor::Pointer* d2 = (BlackBoxDescriptor::Pointer*)kNewItem.GetData(); // std::cout << "Descr = "<InsertItem(kNewItem); this->SetItem(nID, 0, std2wx(d->GetPackage()->GetName()) ); @@ -312,8 +313,9 @@ namespace bbtk info.m_mask = wxLIST_MASK_DATA; if ( GetItem(info) ) { - BlackBoxDescriptor* d = (BlackBoxDescriptor*)(info.GetData()); - if (d!=0) mUser->WxGUIBlackBoxListUserOnSelected(d); + // TO DO : STORE SHARED + // BlackBoxDescriptor* d = (BlackBoxDescriptor*)(info.GetData()); + // if (d!=0) mUser->WxGUIBlackBoxListUserOnSelected(d); } else { @@ -556,12 +558,12 @@ namespace bbtk WxGUIBlackBoxInfo::WxGUIBlackBoxInfo(wxWindow* parent) : wxPanel(parent, -1), - mDescriptor(0) + mDescriptor() { wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); - mName = new wxStaticText(this,-1,_T("")); - sizer->Add(mName,0,wxGROW); + // mName = new wxStaticText(this,-1,_T("")); + // sizer->Add(mName,0,wxGROW); mDescription = new wxStaticText(this,-1,_T("")); sizer->Add(mDescription,0,wxGROW); mAuthor = new wxStaticText(this,-1,_T("")); @@ -580,8 +582,8 @@ namespace bbtk | wxSUNKEN_BORDER); - inputs->Add(mInputList,0,wxGROW); - sizer->Add(inputs,0,wxGROW); + inputs->Add(mInputList,1,wxGROW); + sizer->Add(inputs,1,wxGROW); wxBoxSizer *outputs = new wxStaticBoxSizer @@ -592,8 +594,8 @@ namespace bbtk wxLC_REPORT //wxLC_LIST | wxSUNKEN_BORDER); - outputs->Add(mOutputList,0,wxGROW); - sizer->Add(outputs,0,wxGROW); + outputs->Add(mOutputList,1,wxGROW); + sizer->Add(outputs,1,wxGROW); SetSizer(sizer); @@ -604,10 +606,10 @@ namespace bbtk //================================================================ - void WxGUIBlackBoxInfo::UpdateInfo(BlackBoxDescriptor* descr) + void WxGUIBlackBoxInfo::UpdateInfo(BlackBoxDescriptor::Pointer descr) { - std::cout << "UpdateInfo "<SetLabel(std2wx(descr->GetTypeName())); + + // mName->SetLabel(std2wx(descr->GetTypeName())); mDescription->SetLabel(std2wx(descr->GetDescription())); mAuthor->SetLabel(std2wx(descr->GetAuthor())); mCategory->SetLabel(std2wx(descr->GetCategory())); @@ -617,7 +619,9 @@ namespace bbtk wxLIST_FORMAT_LEFT, 80 ); mInputList->InsertColumn( 1, _("Type"), wxLIST_FORMAT_LEFT, 100 ); - mInputList->InsertColumn( 2, _("Description"), + mInputList->InsertColumn( 2, _("Nature"), + wxLIST_FORMAT_LEFT, 100 ); + mInputList->InsertColumn( 3, _("Description"), wxLIST_FORMAT_LEFT, 500 ); mOutputList->ClearAll(); @@ -625,7 +629,9 @@ namespace bbtk wxLIST_FORMAT_LEFT, 80 ); mOutputList->InsertColumn( 1, _("Type"), wxLIST_FORMAT_LEFT, 100 ); - mOutputList->InsertColumn( 2, _("Description"), + mOutputList->InsertColumn( 2, _("Nature"), + wxLIST_FORMAT_LEFT, 100 ); + mOutputList->InsertColumn( 3, _("Description"), wxLIST_FORMAT_LEFT, 500 ); @@ -718,14 +724,15 @@ namespace bbtk wxListItem kNewItem; kNewItem.SetAlign(wxLIST_FORMAT_LEFT); int nID = l->GetItemCount(); - std::cout << nID << std::endl; + // std::cout << nID << std::endl; kNewItem.SetId(nID); // kNewItem.SetMask(wxLIST_MASK_DATA); // kNewItem.SetData(d); l->InsertItem(kNewItem); l->SetItem(nID, 0, std2wx(d->GetName()) ); l->SetItem(nID, 1, std2wx(d->GetTypeName()) ); - l->SetItem(nID, 2, std2wx(d->GetDescription()) ); + l->SetItem(nID, 2, std2wx(d->GetNature()) ); + l->SetItem(nID, 3, std2wx(d->GetDescription()) ); } //================================================================ @@ -753,10 +760,11 @@ namespace bbtk WxGUIPackageBrowser2User* user ) : wxPanel(parent, -1), mUser(user), - mInterpreter(0) + mInterpreter() { + m_mgr.SetManagedWindow(this); - wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); + // wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); mBoxList = new WxGUIBlackBoxList(this, LIST_CTRL, wxDefaultPosition, wxDefaultSize, @@ -764,51 +772,103 @@ namespace bbtk | wxSUNKEN_BORDER); mBoxList->SetUser(this); mBoxList->SetBackgroundColour(*wxWHITE); - sizer->Add(mBoxList,5,wxGROW); - mBoxInfo = new WxGUIBlackBoxInfo(this); - sizer->Add(mBoxInfo,3,wxGROW); + m_mgr.AddPane(mBoxList, + wxAuiPaneInfo().Name(wxT("BoxList")) + .Caption(wxT("Black Boxes")) + .MinimizeButton(true) + .MaximizeButton(true) + .Center() + .MinSize(wxSize(100,100)) + ); + // sizer->Add(mBoxList,5,wxGROW); + mBoxInfo = new WxGUIBlackBoxInfo(this); + // sizer->Add(mBoxInfo,3,wxGROW); + + m_mgr.AddPane(mBoxInfo, + wxAuiPaneInfo().Name(wxT("Box")) + .Caption(wxT("")) + .MinimizeButton(true) + .MaximizeButton(true) + .Bottom() + .MinSize(wxSize(100,300)) + ); - wxBoxSizer *fsizer = new wxStaticBoxSizer - ( new wxStaticBox(this, wxID_ANY, _T("Filters")), wxHORIZONTAL ); - - mPackageFilter = new wxTextCtrl(this,id_f1,_T(""), + wxPanel* filters = new wxPanel(this,-1); + wxBoxSizer *fsizer = new wxBoxSizer(wxVERTICAL ); + wxBoxSizer *fpack = + new wxStaticBoxSizer + ( new wxStaticBox(filters, wxID_ANY, _T("Package")), wxHORIZONTAL ); + mPackageFilter = new wxTextCtrl(filters,id_f1,_T(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER); - fsizer->Add(mPackageFilter,1,wxGROW); - mNameFilter = new wxTextCtrl(this,id_f2,_T(""), + fpack->Add(mPackageFilter,1,wxGROW); + fsizer->Add(fpack,0,wxGROW); + wxBoxSizer *fname = + new wxStaticBoxSizer + ( new wxStaticBox(filters, wxID_ANY, _T("Name")), wxHORIZONTAL ); + mNameFilter = new wxTextCtrl(filters,id_f2,_T(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER); - fsizer->Add(mNameFilter,1,wxGROW); - mDescriptionFilter = new wxTextCtrl(this,id_f3,_T(""), + fname->Add(mNameFilter,1,wxGROW); + fsizer->Add(fname,0,wxGROW); + wxBoxSizer *fdescr = + new wxStaticBoxSizer + ( new wxStaticBox(filters, wxID_ANY, _T("Description")), wxHORIZONTAL ); + mDescriptionFilter = new wxTextCtrl(filters,id_f3,_T(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER); - fsizer->Add(mDescriptionFilter,1,wxGROW); - mCategoryFilter = new wxTextCtrl(this,id_f4,_T(""), + fdescr->Add(mDescriptionFilter,1,wxGROW); + fsizer->Add(fdescr,0,wxGROW); + wxBoxSizer *fcat = + new wxStaticBoxSizer + ( new wxStaticBox(filters, wxID_ANY, _T("Category")), wxHORIZONTAL ); + mCategoryFilter = new wxTextCtrl(filters,id_f4,_T(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER); - fsizer->Add(mCategoryFilter,1,wxGROW); - mInputTypeFilter = new wxTextCtrl(this,id_f4,_T(""), + fcat->Add(mCategoryFilter,1,wxGROW); + 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(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER); - fsizer->Add(mInputTypeFilter,1,wxGROW); - mOutputTypeFilter = new wxTextCtrl(this,id_f4,_T(""), + fintype->Add(mInputTypeFilter,1,wxGROW); + fsizer->Add(fintype,0,wxGROW); + wxBoxSizer *fouttype = + new wxStaticBoxSizer + ( new wxStaticBox(filters, wxID_ANY, _T("Output type")), wxHORIZONTAL ); + mOutputTypeFilter = new wxTextCtrl(filters,id_f4,_T(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER); - fsizer->Add(mOutputTypeFilter,1,wxGROW); + fouttype->Add(mOutputTypeFilter,1,wxGROW); + fsizer->Add(fouttype,0,wxGROW); + + filters->SetSizer(fsizer); + + m_mgr.AddPane(filters, + wxAuiPaneInfo().Name(wxT("Filter")) + .Caption(wxT("Filter")) + .MinimizeButton(true) + .MaximizeButton(true) + .Right() + .MinSize(wxSize(100,100)) ); - sizer->Add(fsizer,1,wxGROW); - SetSizer(sizer); + // sizer->Add(fsizer,1,wxGROW); + m_mgr.Update(); + + // SetSizer(sizer); SetAutoLayout(true); Layout(); @@ -824,9 +884,12 @@ namespace bbtk //================================================================ // User callback when a box is selected in the list - void WxGUIPackageBrowser2::WxGUIBlackBoxListUserOnSelected( BlackBoxDescriptor* d) + void WxGUIPackageBrowser2::WxGUIBlackBoxListUserOnSelected( BlackBoxDescriptor::Pointer d) { mBoxInfo->UpdateInfo(d); + std::string title = d->GetPackage()->GetName()+"::"+d->GetTypeName(); + m_mgr.GetPane(mBoxInfo).Caption(std2wx(title)); + m_mgr.Update(); } //================================================================ @@ -834,26 +897,27 @@ namespace bbtk //================================================================ WxGUIPackageBrowser2::~WxGUIPackageBrowser2() { - std::cout << "del interpreter" << std::endl; - if (mInterpreter) delete mInterpreter; - std::cout << "ok" << std::endl; + + // std::cout << "del interpreter" << std::endl; + // if (mInterpreter) delete mInterpreter; + // std::cout << "ok" << std::endl; } //================================================================ //================================================================ void WxGUIPackageBrowser2::IncludeAll() { - if (!mInterpreter) mInterpreter = new bbtk::Interpreter(); + if (!mInterpreter) mInterpreter =bbtk::Interpreter::New(); mInterpreter->SetCommandLine(true); mInterpreter->InterpretLine("include *"); - Factory* F = mInterpreter->GetExecuter()->GetFactory(); + Factory::Pointer F = mInterpreter->GetExecuter()->GetFactory(); BuildFromFactory(F); } //================================================================ //================================================================ - void WxGUIPackageBrowser2::BuildFromFactory(Factory* F) + void WxGUIPackageBrowser2::BuildFromFactory(Factory::Pointer F) { mFactory = F; RebuildList(); @@ -870,7 +934,7 @@ namespace bbtk Factory::PackageMapType::const_iterator i; for (i=M.begin();i!=M.end();++i) { - Package* P = i->second.mPackage; + Package::Pointer P = i->second; if (P->GetName() == "user") continue; Package::BlackBoxMapType::iterator j; @@ -888,7 +952,7 @@ namespace bbtk //================================================================ //================================================================ - bool WxGUIPackageBrowser2::IsVisible(BlackBoxDescriptor* d) + bool WxGUIPackageBrowser2::IsVisible(BlackBoxDescriptor::Pointer d) { // std::cout << " '" << wx2std(mPackageFilter->GetValue())<<"'"<GetPackage()->GetName() << "'"<