Kanzi Connect 3.9.10
kanzi::connect::DefaultSortFilterDataSource Class Reference

Default sort filter implementation for a data source. More...

#include <default_sort_filter_datasource.hpp>

Inheritance diagram for kanzi::connect::DefaultSortFilterDataSource:
kanzi::connect::SortFilterProxyDataSourceAbs kanzi::connect::SortFilterDataObjectList::SortFilterInterface

Public Types

enum  SortOrder { Ascending = 0 , Descending , NoSorting }
 defines the sort order of items in the list More...
 

Public Member Functions

 KZ_METACLASS_END ()
 
virtual void onPropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason) override
 
virtual ~DefaultSortFilterDataSource () override=default
 dtor
 
- Public Member Functions inherited from kanzi::connect::SortFilterProxyDataSourceAbs
virtual DataObjectSharedPtr getData () override
 
 KZ_METACLASS_END ()
 
virtual void unloadOverride ()
 
virtual ~SortFilterProxyDataSourceAbs () override
 dtor
 

Static Public Member Functions

static shared_ptr< DefaultSortFilterDataSourcecreate (Domain *domain, string_view name)
 Creates new instance of Kanzi Connect DataSource.
 

Static Public Attributes

static PropertyType< int > FilterColumnProperty
 
static PropertyType< string > FilterConditionProperty
 
static PropertyType< int > SortColumnProperty
 
static PropertyType< SortOrderSortOrderProperty
 
- Static Public Attributes inherited from kanzi::connect::SortFilterProxyDataSourceAbs
static PropertyType< string > ItemSourceProperty
 
static PropertyType< ResourceSharedPtrOriginalDataContextProperty
 

Protected Member Functions

template<typename DataType >
bool compare (DataType leftValue, DataType rightValue) const
 Compare two values based on the currently active sort order.
 
 DefaultSortFilterDataSource (Domain *domain, string_view name)
 Constructor.
 
virtual bool isIncluded (const DataObjectSharedPtr &object) const override
 
virtual bool isLessThan (const DataObjectSharedPtr &lhs, const DataObjectSharedPtr &rhs) const override
 Subclasses may override this to implement sorting functionality.
 
virtual void onOriginalDataSourceChangedOverride () override
 Subclasses may override this to get event that the original data source has changed and may do validation on sort/filter conditions.
 
- Protected Member Functions inherited from kanzi::connect::SortFilterProxyDataSourceAbs
size_t getColumnCount () const
 How many columns (fields) the list item has.
 
string getStringValueFromColumnFieldItem (DataObjectSharedPtr item) const
 Convenience function to get value in string format from DataObject.
 
string getStringValueFromListItem (const DataObjectSharedPtr listItem, unsigned int column) const
 Convenience function to get value in string format from given list item.
 
virtual void onLoaded () override
 Called by Kanzi after loading the KZB file of the application.
 
void refreshFiltering ()
 Request filtering and then sorting the list contents.
 
void refreshSorting ()
 Request resorting the list contents.
 
 SortFilterProxyDataSourceAbs (Domain *domain, string_view name)
 Constructor.
 

Additional Inherited Members

- Static Protected Member Functions inherited from kanzi::connect::SortFilterProxyDataSourceAbs
static const DataObjectSharedPtr findColumnItemFromListItem (const DataObjectSharedPtr listItem, unsigned int column)
 Find the data object that contains the value within individual list item.
 

Detailed Description

Default sort filter implementation for a data source.

Member Enumeration Documentation

◆ SortOrder

defines the sort order of items in the list

Enumerator
Ascending 
Descending 
NoSorting 

Constructor & Destructor Documentation

◆ ~DefaultSortFilterDataSource()

virtual kanzi::connect::DefaultSortFilterDataSource::~DefaultSortFilterDataSource ( )
overridevirtualdefault

dtor

◆ DefaultSortFilterDataSource()

kanzi::connect::DefaultSortFilterDataSource::DefaultSortFilterDataSource ( Domain * domain,
string_view name )
explicitprotected

Constructor.

Member Function Documentation

◆ compare()

template<typename DataType >
bool kanzi::connect::DefaultSortFilterDataSource::compare ( DataType leftValue,
DataType rightValue ) const
inlineprotected

Compare two values based on the currently active sort order.

See also
SortOrder
Template Parameters
DataTypeThe data type to compare ( must implement operator< )
Parameters
leftValueThe value to place on left side of '<' on ascending sort order
rightValueThe value to place on right side of '<' on ascending sort order

◆ create()

static shared_ptr< DefaultSortFilterDataSource > kanzi::connect::DefaultSortFilterDataSource::create ( Domain * domain,
string_view name )
static

Creates new instance of Kanzi Connect DataSource.

Parameters
domainUI domain.
nameName of the new data source.
Returns
New data source instance.

◆ isIncluded()

virtual bool kanzi::connect::DefaultSortFilterDataSource::isIncluded ( const DataObjectSharedPtr & object) const
overrideprotectedvirtual

◆ isLessThan()

virtual bool kanzi::connect::DefaultSortFilterDataSource::isLessThan ( const DataObjectSharedPtr & lhs,
const DataObjectSharedPtr & rhs ) const
overrideprotectedvirtual

Subclasses may override this to implement sorting functionality.

Parameters
lhsThe left side of <
rhsThe right side of <
Returns
True if lhs < rhs

Reimplemented from kanzi::connect::SortFilterProxyDataSourceAbs.

◆ KZ_METACLASS_END()

kanzi::connect::DefaultSortFilterDataSource::KZ_METACLASS_END ( )

◆ onOriginalDataSourceChangedOverride()

virtual void kanzi::connect::DefaultSortFilterDataSource::onOriginalDataSourceChangedOverride ( )
overrideprotectedvirtual

Subclasses may override this to get event that the original data source has changed and may do validation on sort/filter conditions.

Reimplemented from kanzi::connect::SortFilterProxyDataSourceAbs.

◆ onPropertyChanged()

virtual void kanzi::connect::DefaultSortFilterDataSource::onPropertyChanged ( AbstractPropertyType propertyType,
PropertyNotificationReason reason )
overridevirtual
See also
PropertyObject::onPropertyChanged

Member Data Documentation

◆ FilterColumnProperty

PropertyType<int> kanzi::connect::DefaultSortFilterDataSource::FilterColumnProperty
static

◆ FilterConditionProperty

PropertyType<string> kanzi::connect::DefaultSortFilterDataSource::FilterConditionProperty
static

◆ SortColumnProperty

PropertyType<int> kanzi::connect::DefaultSortFilterDataSource::SortColumnProperty
static

◆ SortOrderProperty

PropertyType<SortOrder> kanzi::connect::DefaultSortFilterDataSource::SortOrderProperty
static

The documentation for this class was generated from the following file: