+ // Look for the interpreter or the executer if no interpreter
+ bbtk::Interpreter::Pointer I;
+ bbtk::VirtualExec::Pointer E;
+ if (mBox->bbGetParent() != 0)
+ {
+ bbtk::Factory::Pointer f = boost::dynamic_pointer_cast<bbtk::ComplexBlackBoxDescriptor>(mBox->bbGetParent()->bbGetDescriptor())->GetFactory();
+ if ((f != 0)&&
+ (f->GetExecuter()))
+ {
+ E = f->GetExecuter();
+ I = E->GetInterpreter();
+ }
+ }
+ if (I==0)
+ {
+ // bbtkError("CommandButton::DoProcess() : could not find interpreter");
+ if (E==0)
+ {
+ // If no executer : create a totally independant interpreter
+ I = bbtk::Interpreter::New();
+ }
+ else
+ {
+ // If executer : create an interpreter using E
+ I = bbtk::Interpreter::New(E);
+ }
+ }
+
+ std::string commandstr(mBox->bbGetInputIn());