Class FilterListModel<T extends GObject>
- All Implemented Interfaces:
Iterable<T>,Collection<T>,List<T>,SequencedCollection<T>,ListModel<T>,SectionModel<T>,Proxy,ListModelJavaList<T>
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 org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClassNested classes/interfaces inherited from interface org.gnome.gio.ListModel
ListModel.ItemsChangedCallback, ListModel.ListModel$Impl, ListModel.ListModelInterfaceNested classes/interfaces inherited from interface org.javagi.gio.ListModelJavaList
ListModelJavaList.SubList<E extends @Nullable GObject,List extends ListModelJavaList<E>> Nested classes/interfaces inherited from interface org.gnome.gtk.SectionModel
SectionModel.SectionModel$Impl, SectionModel.SectionModelInterface, SectionModel.SectionsChangedCallback -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new FilterListModel.FilterListModel(MemorySegment address) Create a FilterListModel proxy 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()Returns 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.@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 classbooleanReturns 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 org.gnome.gobject.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, getMemoryLayout, 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 org.gnome.gobject.TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class org.javagi.base.ProxyInstance
equals, handle, hashCodeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArrayMethods inherited from interface java.util.List
addFirst, addLast, equals, getFirst, getLast, hashCode, removeFirst, removeLast, replaceAll, reversed, sort, spliteratorMethods inherited from interface org.gnome.gio.ListModel
emitItemsChanged, getItem, getItemType, getNItems, itemsChanged, onItemsChangedMethods inherited from interface org.javagi.gio.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 org.gnome.gtk.SectionModel
emitSectionsChanged, getSection, onSectionsChanged, sectionsChanged
-
Constructor Details
-
FilterListModel
Create a FilterListModel proxy instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
FilterListModel
-
FilterListModel
public FilterListModel()Creates a new FilterListModel.
-
-
Method Details
-
getType
Get the GType of the FilterListModel class- Returns:
- the GType
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuperkeyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName(). This will call the native function pointer of this virtual method in the typeclass of the parent type. -
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
-