void C3DViewBuilder::signal_create_3dview(SignalArgs &args) { SignalOptions options( args ); std::string name = options.value<std::string>("3DView name"); URI parent = options.value<URI>("Parent"); // some checks if(name.empty()) throw BadValue(FromHere(), "The 3DView name is empty."); if(parent.empty()) throw BadValue(FromHere(), "The parent is empty."); if(parent.scheme() != URI::Scheme::CPATH) throw InvalidURI(FromHere(), "The parent scheme is not CPATH"); // create and add the component Handle<Component> parent_comp = Core::instance().root().access_component(parent); Handle<C3DView> view = parent_comp->create_component<C3DView>( name ); view->mark_basic(); }
void CPlotter::signal_create_xyplot(SignalArgs &args) { SignalOptions options( args ); std::string name = options.value<std::string>("Plot name"); URI parent = options.value<URI>("Parent"); // some checks if(name.empty()) throw BadValue(FromHere(), "The plot name is empty."); if(parent.empty()) throw BadValue(FromHere(), "The parent is empty."); if(parent.scheme() != URI::Scheme::CPATH) throw InvalidURI(FromHere(), "The parent scheme is not CPATH"); // create and add the component Handle< Component > parent_comp = Core::instance().root().access_component(parent); boost::shared_ptr< CPlotXY > plot(common::allocate_component<CPlotXY>(name)); parent_comp->add_component( plot ); plot->mark_basic(); plot->set_data(m_data); }