31 #include <boost/tokenizer.hpp>
34 #include "exceptions/WPropertyUnknown.h"
36 #include "WPropertyHelper.h"
38 #include "WPropertyGroup.h"
60 return boost::shared_ptr< WPropertyGroup >(
new WPropertyGroup( *
this ) );
89 template<
typename T >
90 T _addDefaultConstraints( T prop )
104 WPropSelection _addDefaultConstraints( WPropSelection prop )
119 WPropFilename _addDefaultConstraints( WPropFilename prop )
134 template<
typename T >
135 T addDefaultConstraints( T prop )
137 if( prop->getPurpose() == PV_PURPOSE_INFORMATION )
142 return _addDefaultConstraints( prop );
156 return set( v, std::vector< std::string >(), recommendedOnly );
159 bool WPropertyGroup::set( boost::shared_ptr< WPropertyGroup > value, std::vector< std::string > exclude,
bool recommendedOnly )
161 return setImpl( value,
"", exclude, recommendedOnly );
164 bool WPropertyGroup::setImpl( boost::shared_ptr< WPropertyGroup > value, std::string path, std::vector< std::string > exclude,
bool recommendedOnly )
185 completePath = ( *it )->getName();
189 if( std::find( exclude.begin(), exclude.end(), completePath ) != exclude.end() )
198 if( inputAsGroup && meAsGroup )
201 c += meAsGroup->setImpl( inputAsGroup, completePath, exclude, recommendedOnly );
203 else if( inputAsGroup || meAsGroup )
209 c += prop->set( *it, recommendedOnly );
215 return ( c == r->get().size() );
227 l->get().erase( std::remove( l->get().begin(), l->get().end(), prop ), l->get().end() );
233 WPropGroup p = WPropGroup(
new WPropertyGroup( name, description ) );
234 p->setHidden( hide );
254 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_BOOL >( name, description, initial, hide ) );
259 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_INT >( name, description, initial, hide ) );
264 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_DOUBLE >( name, description, initial, hide ) );
269 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_STRING >( name, description, initial, hide ) );
274 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_PATH >( name, description, initial, hide ) );
279 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_SELECTION >( name, description, initial, hide ) );
284 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_POSITION >( name, description, initial, hide ) );
289 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_COLOR >( name, description, initial, hide ) );
294 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_TRIGGER >( name, description, initial, hide ) );
305 boost::shared_ptr< WCondition > condition,
bool hide )
307 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_BOOL >( name, description, initial, condition, hide ) );
311 boost::shared_ptr< WCondition > condition,
bool hide )
313 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_INT >( name, description, initial, condition, hide ) );
317 boost::shared_ptr< WCondition > condition,
bool hide )
319 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_DOUBLE >( name, description, initial, condition, hide ) );
323 boost::shared_ptr< WCondition > condition,
bool hide )
325 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_STRING >( name, description, initial, condition, hide ) );
329 boost::shared_ptr< WCondition > condition,
bool hide )
331 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_PATH >( name, description, initial, condition, hide ) );
335 boost::shared_ptr< WCondition > condition,
bool hide )
337 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_SELECTION >( name, description, initial, condition, hide ) );
341 boost::shared_ptr< WCondition > condition,
bool hide )
343 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_POSITION >( name, description, initial, condition, hide ) );
347 boost::shared_ptr< WCondition > condition,
bool hide )
349 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_COLOR >( name, description, initial, condition, hide ) );
353 boost::shared_ptr< WCondition > condition,
bool hide )
355 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_TRIGGER >( name, description, initial, condition, hide ) );
368 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_BOOL >( name, description, initial, notifier, hide ) );
374 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_INT >( name, description, initial, notifier, hide ) );
380 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_DOUBLE >( name, description, initial, notifier, hide ) );
386 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_STRING >( name, description, initial, notifier, hide ) );
392 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_PATH >( name, description, initial, notifier, hide ) );
398 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_SELECTION >( name, description, initial, notifier, hide ) );
404 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_POSITION >( name, description, initial, notifier, hide ) );
410 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_COLOR >( name, description, initial, notifier, hide ) );
416 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_TRIGGER >( name, description, initial, notifier, hide ) );
428 boost::shared_ptr< WCondition > condition,
431 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_BOOL >( name, description, initial, condition, notifier, hide ) );
435 boost::shared_ptr< WCondition > condition,
438 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_INT >( name, description, initial, condition, notifier, hide ) );
442 boost::shared_ptr< WCondition > condition,
445 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_DOUBLE >( name, description, initial, condition, notifier, hide ) );
449 boost::shared_ptr< WCondition > condition,
452 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_STRING >( name, description, initial, condition, notifier, hide ) );
456 boost::shared_ptr< WCondition > condition,
459 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_PATH >( name, description, initial, condition, notifier, hide ) );
463 boost::shared_ptr< WCondition > condition,
466 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_SELECTION >( name, description, initial, condition, notifier, hide ) );
470 boost::shared_ptr< WCondition > condition,
473 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_POSITION >( name, description, initial, condition, notifier, hide ) );
477 boost::shared_ptr< WCondition > condition,
480 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_COLOR >( name, description, initial, condition, notifier, hide ) );
484 boost::shared_ptr< WCondition > condition,
487 return addDefaultConstraints( addProperty< WPVBaseTypes::PV_TRIGGER >( name, description, initial, condition, notifier, hide ) );