Class FilterListModel<T extends GObject>
- All Implemented Interfaces:
Iterable<T>, Collection<T>, List<T>, SequencedCollection<T>, ListModel<T>, SectionModel<T>, Proxy, ListModelJavaList<T>
A list model that filters the elements of another model.
It hides some elements from the underlying model according to
criteria given by a GtkFilter.
The model can be set up to do incremental filtering, so that
filtering long lists doesn't block the UI. See
setIncremental(boolean) for details.
GtkFilterListModel passes through sections from the underlying model.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classFilterListModel.Builder<B extends FilterListModel.Builder<B>>Inner class implementing a builder pattern to construct a GObject with properties.static classFilterListModel.FilterListModelClass<T extends GObject>Nested classes/interfaces inherited from class GObject
GObject.NotifyCallback, GObject.ObjectClassNested classes/interfaces inherited from interface ListModel
ListModel.ItemsChangedCallback, ListModel.ListModel$Impl, ListModel.ListModelInterfaceNested classes/interfaces inherited from interface ListModelJavaList
ListModelJavaList.SubList<E,List> Nested classes/interfaces inherited from interface SectionModel
SectionModel.SectionModel$Impl, SectionModel.SectionModelInterface, SectionModel.SectionsChangedCallback -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new FilterListModel.FilterListModel(MemorySegment address) Create a FilterListModel instance for the provided memory address.FilterListModel(@Nullable ListModel model, @Nullable Filter filter) Creates a newGtkFilterListModelthat will filtermodelusing the givenfilter. -
Method Summary
Modifier and TypeMethodDescriptionprotected FilterListModelasParent()Return this instance as if it were its parent type.static FilterListModel.Builder<? extends FilterListModel.Builder> builder()AFilterListModel.Builderobject constructs aFilterListModelwith the specified properties.@Nullable FilterGets theGtkFiltercurrently set onself.booleanReturns whether incremental filtering is enabled.static MemoryLayoutThe memory layout of the native struct.@Nullable ListModelgetModel()Gets the model currently filtered ornullif none.intReturns the number of items that have not been filtered yet.static @Nullable TypegetType()Get the GType of the FilterListModel class.booleanReturns whether watching items is enabled.voidSets the filter used to filter items.voidsetIncremental(boolean incremental) Sets the filter model to do an incremental sort.voidSets the model to be filtered.voidsetWatchItems(boolean watchItems) Sets the filter model to monitor properties of its items.Methods inherited from class GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newv, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withPropertiesMethods inherited from class TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class ProxyInstance
equals, handle, hashCodeMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Collection
parallelStream, removeIf, stream, toArrayMethods inherited from interface List
addFirst, addLast, equals, getFirst, getLast, hashCode, removeFirst, removeLast, replaceAll, reversed, sort, spliteratorMethods inherited from interface ListModel
emitItemsChanged, getItem, getItemType, getNItems, itemsChanged, onItemsChangedMethods inherited from interface ListModelJavaList
add, add, addAll, addAll, clear, contains, containsAll, get, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, retainAll, set, size, subList, toArray, toArrayMethods inherited from interface SectionModel
emitSectionsChanged, getSection, onSectionsChanged, sectionsChanged
-
Constructor Details
-
FilterListModel
Create a FilterListModel instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
FilterListModel
-
FilterListModel
public FilterListModel()Create a new FilterListModel.
-
-
Method Details
-
getType
Get the GType of the FilterListModel class.- Returns:
- the GType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Return this instance as if it were its parent type. Comparable to the Javasuperkeyword, but ensures the parent typeclass is also used in native code. -
getFilter
Gets theGtkFiltercurrently set onself.- Returns:
- The filter currently in use
-
getIncremental
public boolean getIncremental()Returns whether incremental filtering is enabled.
- Returns:
trueif incremental filtering is enabled
-
getModel
Gets the model currently filtered ornullif none.- Returns:
- The model that gets filtered
-
getPending
public int getPending()Returns the number of items that have not been filtered yet.
You can use this value to check if this FilterListModel is busy filtering by comparing the return value to 0 or you can compute the percentage of the filter remaining by dividing the return value by the total number of items in the underlying model:
pending = gtk_filter_list_model_get_pending (self); model = gtk_filter_list_model_get_model (self); percentage = pending / (double) g_list_model_get_n_items (model);If no filter operation is ongoing - in particular when
Gtk.FilterListModel:incrementalisfalse- this function returns 0.- Returns:
- The number of items not yet filtered
-
getWatchItems
public boolean getWatchItems()Returns whether watching items is enabled.
- Returns:
trueif watching items is enabled- Since:
- 4.20
-
setFilter
Sets the filter used to filter items.- Parameters:
filter- filter to use
-
setIncremental
public void setIncremental(boolean incremental) Sets the filter model to do an incremental sort.
When incremental filtering is enabled, the
GtkFilterListModelwill not run filters immediately, but will instead queue an idle handler that incrementally filters the items and adds them to the list. This of course means that items are not instantly added to the list, but only appear incrementally.When your filter blocks the UI while filtering, you might consider turning this on. Depending on your model and filters, this may become interesting around 10,000 to 100,000 items.
By default, incremental filtering is disabled.
See
getPending()for progress information about an ongoing incremental filtering operation.- Parameters:
incremental-trueto enable incremental filtering
-
setModel
Sets the model to be filtered.
Note that GTK makes no effort to ensure that
modelconforms to the item type ofself.It assumes that the caller knows what they are doing and have set up an appropriate filter to ensure that item types match.- Parameters:
model- The model to be filtered
-
setWatchItems
public void setWatchItems(boolean watchItems) Sets the filter model to monitor properties of its items.
This allows implementations of
Filterthat support expression watching to react to property changes. This property has no effect if the current filter doesn't support watching items.By default, watching items is disabled.
- Parameters:
watchItems-trueto watch items for property changes- Since:
- 4.20
-
builder
AFilterListModel.Builderobject constructs aFilterListModelwith the specified properties. Use the variousset...()methods to set properties, and finish construction withFilterListModel.Builder.build().- Returns:
- the builder object
-