- BlackBox::OutputConnectorMapType::const_iterator i
- = bbGetOutputConnectorMap().find("Widget") ;
- if ( i->second->GetConnectionVector().size() != 0 )
-
- {
- BlackBox::Pointer to =
- i->second->GetConnectionVector()[0]->GetBlackBoxTo();
-
- if (caller)
- {
- bbtkDebugMessage("process",3,
- "-> Output 'Widget' connected to '"
- <<to->bbGetFullName()<<"' - caller->to = '"
- <<caller->GetBlackBoxTo()->bbGetFullName()
- <<"'"
- <<std::endl);
- }
- else
- {
- bbtkDebugMessage("process",3,
- "-> Output 'Widget' connected to '"
- <<to->bbGetFullName()<<"'"
- <<std::endl);
- }
- if ((caller==0) ||
- ((caller!=0) &&
- (caller->GetBlackBoxTo() != to))&&
- (!bbGetUpdateTransferedToParent()))
- {
- bbtkDebugMessage("process",3,
- " ... Transfering update order to parent"
- <<std::endl);
-
- bbSetUpdateTransferedToParent(true);
- i->second->GetConnectionVector().front() //.lock()
- ->GetBlackBoxTo()->bbExecute(false);
- }
- else
- {
- bbSetUpdateTransferedToParent(false);
- bbtkDebugMessage("process",3,
- " ... No need to transfer to parent"
- <<std::endl);
- }
- }
- /*
-
- // If the caller is not the connection to the output widget
- // and the output 'Widget' is connected then
- // we must execute the parent box
- // but only one time
- // (this is the role of the flag UpdateTransferedToParent)
- if ( (caller==0) ||
- ((caller!=0)&&(caller->GetBlackBoxFromOutput()!="Widget"))
- )
- {
- }
- */
- // call 'standard' BlackBox execution method
- if (!bbGetUpdateTransferedToParent())
- {
- AtomicBlackBox::bbBackwardUpdate(caller);
- }
-
- bbtkDebugMessageDec("process",3,
- "<= WxBlackBox::bbBackwardUpdate() ["
- <<bbGetFullName()<<"]"<<std::endl);
-
- return bbGetStatus();
-
-
- }
-
- //=========================================================================
- void WxBlackBox::bbProcess()
- {
- if (bbGetOutputWidget()==0) this->bbUserCreateWidget();
- this->bbUserProcess();
- bbShowWindow();
- }
- //=========================================================================