Class MapListModel<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 maps the items in another model to different items.
GtkMapListModel uses a Gtk.MapListModelMapFunc.
Example: Create a list of GtkEventControllers
static gpointer
map_to_controllers (gpointer widget,
gpointer data)
{
gpointer result = gtk_widget_observe_controllers (widget);
g_object_unref (widget);
return result;
}
widgets = gtk_widget_observe_children (widget);
controllers = gtk_map_list_model_new (widgets,
map_to_controllers,
NULL, NULL);
model = gtk_flatten_list_model_new (GTK_TYPE_EVENT_CONTROLLER,
controllers);
GtkMapListModel will attempt to discard the mapped objects as soon as
they are no longer needed and recreate them if necessary.
GtkMapListModel passes through sections from the underlying model.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classMapListModel.Builder<B extends MapListModel.Builder<B>>Inner class implementing a builder pattern to construct a GObject with properties.static classMapListModel.MapListModelClass<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 MapListModel.MapListModel(MemorySegment address) Create a MapListModel instance for the provided memory address.MapListModel(@Nullable ListModel model, @Nullable MapListModelMapFunc mapFunc) Creates a newGtkMapListModelfor the given arguments. -
Method Summary
Modifier and TypeMethodDescriptionprotected MapListModelasParent()Return this instance as if it were its parent type.static MapListModel.Builder<? extends MapListModel.Builder> builder()AMapListModel.Builderobject constructs aMapListModelwith the specified properties.static MemoryLayoutThe memory layout of the native struct.@Nullable ListModelgetModel()Gets the model that is currently being mapped ornullif none.static @Nullable TypegetType()Get the GType of the MapListModel class.booleanhasMap()Checks if a map function is currently set onself.voidsetMapFunc(@Nullable MapListModelMapFunc mapFunc) Sets the function used to map items.voidSets the model to be mapped.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
-
MapListModel
Create a MapListModel instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
MapListModel
Creates a newGtkMapListModelfor the given arguments.- Parameters:
model- The model to mapmapFunc- map function
-
MapListModel
public MapListModel()Create a new MapListModel.
-
-
Method Details
-
getType
-
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. -
getModel
Gets the model that is currently being mapped ornullif none.- Returns:
- The model that gets mapped
-
hasMap
public boolean hasMap()Checks if a map function is currently set onself.- Returns:
trueif a map function is set
-
setMapFunc
Sets the function used to map items.
The function will be called whenever an item needs to be mapped and must return the item to use for the given input item.
Note that
GtkMapListModelmay call this function multiple times on the same item, because it may delete items it doesn't need anymore.GTK makes no effort to ensure that
mapFuncconforms to the item type ofself.It assumes that the caller knows what they are doing and the map function returns items of the appropriate type.- Parameters:
mapFunc- map function
-
setModel
Sets the model to be mapped.
GTK makes no effort to ensure that
modelconforms to the item type expected by the map function. It assumes that the caller knows what they are doing and have set up an appropriate map function.- Parameters:
model- The model to be mapped
-
builder
AMapListModel.Builderobject constructs aMapListModelwith the specified properties. Use the variousset...()methods to set properties, and finish construction withMapListModel.Builder.build().- Returns:
- the builder object
-