RangeInputFilter

A range filter allows a start and end value to be entered by the user. More...

#include <unity/scopes/RangeInputFilter.h>

Inheritance diagram for unity::scopes::RangeInputFilter:
Inheritance graph
[legend]

Public Member Functions

std::string start_prefix_label () const
 Get the prefix label of start value. More...
 
std::string start_postfix_label () const
 Get the postfix label of start value. More...
 
std::string end_prefix_label () const
 Get the prefix label of end value. More...
 
std::string end_postfix_label () const
 Get the postfix label of end value. More...
 
std::string central_label () const
 Get the central label for this filter. More...
 
Variant default_start_value () const
 Get the default start value if set (int, double or null). More...
 
Variant default_end_value () const
 Get default end value if set (int, double or null). More...
 
bool has_start_value (FilterState const &filter_state) const
 Check if filter state holds a start value for this filter instance. More...
 
bool has_end_value (FilterState const &filter_state) const
 Check if filter state holds an end value for this filter instance. More...
 
double start_value (FilterState const &filter_state) const
 Get the start value for this filter instance. More...
 
double end_value (FilterState const &filter_state) const
 Get end value for this filter instance. More...
 
void update_state (FilterState &filter_state, Variant const &start_value, Variant const &end_value) const
 Store start and end value for this filter in the filter state. More...
 
- Public Member Functions inherited from unity::scopes::FilterBase
void set_display_hints (int hints)
 Sets display hints for the Shell UI. More...
 
int display_hints () const
 Get display hints of this filter. More...
 
std::string id () const
 Get the identifier of this filter. More...
 
std::string filter_type () const
 Get the type name of this filter. More...
 
void set_title (std::string const &title)
 Set an optional title of this filter. More...
 
std::string title () const
 Get the optional title of this filter. More...
 
FilterGroup::SCPtr filter_group () const
 Get the filter group this filter belongs to. More...
 

Static Public Member Functions

static RangeInputFilter::SPtr create (std::string const &id, std::string const &start_prefix_label, std::string const &start_postfix_label, std::string const &central_label, std::string const &end_prefix_label, std::string const &end_postfix_label)
 Creates a RangeInputFilter. More...
 
static RangeInputFilter::SPtr create (std::string const &id, Variant const &default_start_value, Variant const &default_end_value, std::string const &start_prefix_label, std::string const &start_postfix_label, std::string const &central_label, std::string const &end_prefix_label, std::string const &end_postfix_label)
 Creates a RangeInputFilter with specific default values for start and end. More...
 
static RangeInputFilter::SPtr create (std::string const &id, std::string const &start_prefix_label, std::string const &start_postfix_label, std::string const &central_label, std::string const &end_prefix_label, std::string const &end_postfix_label, FilterGroup::SCPtr const &group)
 Creates a RangeInputFilter inside a FilterGroup. More...
 
static RangeInputFilter::SPtr create (std::string const &id, Variant const &default_start_value, Variant const &default_end_value, std::string const &start_prefix_label, std::string const &start_postfix_label, std::string const &central_label, std::string const &end_prefix_label, std::string const &end_postfix_label, FilterGroup::SCPtr const &group)
 Creates a RangeInputFilter with specific default values for start and end, inside a FilterGroup. More...
 
static void update_state (FilterState &filter_state, std::string const &filter_id, Variant const &start_value, Variant const &end_value)
 Store start and end value in the filter state, without having an instance of RangeInputFilter. More...
 

Additional Inherited Members

- Public Types inherited from unity::scopes::FilterBase
enum  DisplayHints { Default = 0, Primary = 1 }
 Display hints for the Shell UI. More...
 

Detailed Description

A range filter allows a start and end value to be entered by the user.

A RangeInputFilter is composed of two input boxes that accept numeric values (both of them optional). The filter can have prefix and/or postfix labels for the start and end value, respectively, plus a single label that is displayed between the two input boxes. The filter can provide defaults for that start and end value, which are used by the UI if the user does not enter explicit values.

Member Function Documentation

std::string unity::scopes::RangeInputFilter::central_label ( ) const

Get the central label for this filter.

Returns
The central label.
RangeInputFilter::SPtr unity::scopes::RangeInputFilter::create ( std::string const &  id,
std::string const &  start_prefix_label,
std::string const &  start_postfix_label,
std::string const &  central_label,
std::string const &  end_prefix_label,
std::string const &  end_postfix_label 
)
static

Creates a RangeInputFilter.

Parameters
idA unique identifier for the filter that can be used to later identify it among several filters.
start_prefix_labelA display label for the input box for the start value, displayed to the left (can be empty).
start_postfix_labelA display label for the input box for the start value, displayed to the right (can be empty).
central_labelA display label that is displayed between the two input boxes (can be empty).
end_prefix_labelA display label for the input box for the end value, displayed to the left (can be empty).
end_postfix_labelA display label for the input box for the end value, displayed to the right (can be empty).
Returns
Instance of RangeInputFilter.
RangeInputFilter::SPtr unity::scopes::RangeInputFilter::create ( std::string const &  id,
Variant const &  default_start_value,
Variant const &  default_end_value,
std::string const &  start_prefix_label,
std::string const &  start_postfix_label,
std::string const &  central_label,
std::string const &  end_prefix_label,
std::string const &  end_postfix_label 
)
static

Creates a RangeInputFilter with specific default values for start and end.

Parameters
idA unique identifier for the filter that can be used to later identify it among several filters.
default_start_valueA default start value (double, int, or null).
default_end_valueA default end value (double, int, or null).
start_prefix_labelA display label for the input box for the start value, displayed to the left (can be empty).
start_postfix_labelA display label for the input box for the start value, displayed to the right (can be empty).
central_labelA display label displayed between the two input boxes (can be empty).
end_prefix_labelA display label for the input box for the end value, displayed to the left (can be empty).
end_postfix_labelA display label for the input box for the end value, displayed to the right (can be empty).
Returns
Instance of RangeInputFilter.
RangeInputFilter::SPtr unity::scopes::RangeInputFilter::create ( std::string const &  id,
std::string const &  start_prefix_label,
std::string const &  start_postfix_label,
std::string const &  central_label,
std::string const &  end_prefix_label,
std::string const &  end_postfix_label,
FilterGroup::SCPtr const &  group 
)
static

Creates a RangeInputFilter inside a FilterGroup.

Parameters
idA unique identifier for the filter that can be used to later identify it among several filters.
start_prefix_labelA display label for the input box for the start value, displayed to the left (can be empty).
start_postfix_labelA display label for the input box for the start value, displayed to the right (can be empty).
central_labelA display label displayed between the two input boxes (can be empty).
end_prefix_labelA display label for the input box for the end value, displayed to the left (can be empty).
end_postfix_labelA display label for the input box for the end value, displayed to the right (can be empty).
groupA filter group this filter should be added to.
Returns
Instance of RangeInputFilter.
RangeInputFilter::SPtr unity::scopes::RangeInputFilter::create ( std::string const &  id,
Variant const &  default_start_value,
Variant const &  default_end_value,
std::string const &  start_prefix_label,
std::string const &  start_postfix_label,
std::string const &  central_label,
std::string const &  end_prefix_label,
std::string const &  end_postfix_label,
FilterGroup::SCPtr const &  group 
)
static

Creates a RangeInputFilter with specific default values for start and end, inside a FilterGroup.

Parameters
idA unique identifier for the filter that can be used to later identify it among several filters.
default_start_valueThe default start value (double, int, or null).
default_end_valueThe default end value (double, int, or null).
start_prefix_labelA display label for the input box for the start value, displayed to the left (can be empty).
start_postfix_labelA display label for the input box for the start value, displayed to the right (can be empty).
central_labelA display label displayed between the two input boxes (can be empty).
end_prefix_labelA display label for the input box for the end value, displayed to the left (can be empty).
end_postfix_labelA display label for the input box for the end value, displayed to the right (can be empty).
groupA filter group this filter should be added to.
Returns
Instance of RangeInputFilter.
Variant unity::scopes::RangeInputFilter::default_end_value ( ) const

Get default end value if set (int, double or null).

The default value should be used unless a value is present in the FilterState - use unity::scopes::RangeInputFilter::has_end_value() and unity::scopes::RangeInputFilter::end_value() before resorting to the default value.

Variant unity::scopes::RangeInputFilter::default_start_value ( ) const

Get the default start value if set (int, double or null).

The default value should be used unless a value is present in the FilterState - use unity::scopes::RangeInputFilter::has_start_value() and unity::scopes::RangeInputFilter::start_value() before resorting to the default value.

std::string unity::scopes::RangeInputFilter::end_postfix_label ( ) const

Get the postfix label of end value.

Returns
The postfix label of end value.
std::string unity::scopes::RangeInputFilter::end_prefix_label ( ) const

Get the prefix label of end value.

Returns
The prefix label of end value.
double unity::scopes::RangeInputFilter::end_value ( FilterState const &  filter_state) const

Get end value for this filter instance.

Returns
The end value or the default end value if not null.
Exceptions
unity::scopes::NotFoundExceptionif the end value is not set and the default end value is null.
bool unity::scopes::RangeInputFilter::has_end_value ( FilterState const &  filter_state) const

Check if filter state holds an end value for this filter instance.

Parameters
filter_stateThe state of filters.
Returns
true if filter_state has an end value for this filter.
bool unity::scopes::RangeInputFilter::has_start_value ( FilterState const &  filter_state) const

Check if filter state holds a start value for this filter instance.

Parameters
filter_stateThe state of filters.
Returns
true if filter_state has a start value for this filter.
std::string unity::scopes::RangeInputFilter::start_postfix_label ( ) const

Get the postfix label of start value.

Returns
The postfix label of start value.
std::string unity::scopes::RangeInputFilter::start_prefix_label ( ) const

Get the prefix label of start value.

Returns
The prefix label of start value.
double unity::scopes::RangeInputFilter::start_value ( FilterState const &  filter_state) const

Get the start value for this filter instance.

Returns
The start value or the default start value if not null.
Exceptions
unity::scopes::NotFoundExceptionif the start value is not set and the default start value is null.
void unity::scopes::RangeInputFilter::update_state ( FilterState filter_state,
Variant const &  start_value,
Variant const &  end_value 
) const

Store start and end value for this filter in the filter state.

Updates filter_state with start and end values for this filter instance. Allowed data types for start_value and end_value are Variant::Type::Null, Variant::Type::Double and Variant::Type::Int. Integer values are converted to double when returned via unity::scopes::RangeInputFilter::start_value() and unity::scopes::RangeInputFilter::end_value() methods. Pass Variant::null() as start_value or end_value if that value is unspecified (hasn't been entered or was erased by the user from the input box).

Parameters
filter_stateFilterState instance to update
start_valueStart value
end_valueEnd value
void unity::scopes::RangeInputFilter::update_state ( FilterState filter_state,
std::string const &  filter_id,
Variant const &  start_value,
Variant const &  end_value 
)
static

Store start and end value in the filter state, without having an instance of RangeInputFilter.

Updates filter_state with start and end values without an instance of RangeInputFilter. This is meant to be used when creating a CannedQuery that references another scope.

Parameters
filter_stateFilterState instance to update
filter_idUnique identifier of filter
start_valueStart value
end_valueEnd value