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
if (GetColumnCount()!=3)
{
InsertColumn( 0, _("Package"),
- wxLIST_FORMAT_LEFT, 40 );
+ wxLIST_FORMAT_LEFT, 60 );
InsertColumn( 1, _("Box"),
wxLIST_FORMAT_LEFT, 200 );
InsertColumn( 2, _("Description"),
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);
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
{
//================================================================
- void WxGUIBlackBoxInfo::UpdateInfo(BlackBoxDescriptor::Pointer descr)
+ void WxGUIBlackBoxInfo::UpdateInfo(BlackBoxDescriptor* descr)
{
// mName->SetLabel(std2wx(descr->GetTypeName()));
id_f3,
id_f4,
id_f5,
- id_f6
-
+ id_f6,
+ id_f7,
+ id_f8,
+ id_fc1,
+ id_fc2,
+ id_fc3
};
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);
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);
//================================================================
// 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();
//================================================================
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();
}
//================================================================
{
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);
{
// 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()) )
== 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());
}
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;
}
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()
//========================================================================