Class MapListModel<T extends GObject>
- All Implemented Interfaces:
Proxy
,ListModelJavaList<T>
,Iterable<T>
,Collection<T>
,List<T>
,SequencedCollection<T>
,ListModel<T>
,SectionModel<T>
GtkMapListModel
maps the items in a list 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
Modifier and TypeClassDescriptionstatic class
MapListModel.Builder<B extends MapListModel.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.static class
MapListModel.MapListModelClass<T extends GObject>
Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass
Nested classes/interfaces inherited from interface org.gnome.gio.ListModel
ListModel.ItemsChangedCallback, ListModel.ListModelImpl, ListModel.ListModelInterface
Nested classes/interfaces inherited from interface org.gnome.gtk.SectionModel
SectionModel.SectionModelImpl, SectionModel.SectionModelInterface, SectionModel.SectionsChangedCallback
-
Constructor Summary
ConstructorDescriptionMapListModel
(MemorySegment address) Create a MapListModel proxy instance for the provided memory address.MapListModel
(@Nullable ListModel model, @Nullable MapListModelMapFunc mapFunc) Creates a newGtkMapListModel
for the given arguments. -
Method Summary
Modifier and TypeMethodDescriptionprotected MapListModel
asParent()
Returns this instance as if it were its parent type.static MapListModel.Builder
<? extends MapListModel.Builder> builder()
AMapListModel.Builder
object constructs aMapListModel
with the specified properties.getModel()
Gets the model that is currently being mapped ornull
if none.static Type
getType()
Get the GType of the MapListModel classboolean
hasMap()
Checks if a map function is currently set on this MapListModel.void
setMapFunc
(@Nullable MapListModelMapFunc mapFunc) Sets the function used to map items.void
Sets the model to be mapped.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, 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, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.List
addFirst, addLast, equals, getFirst, getLast, hashCode, removeFirst, removeLast, replaceAll, reversed, sort, spliterator
Methods inherited from interface org.gnome.gio.ListModel
emitItemsChanged, getItem, getItemType, getNItems, itemsChanged, onItemsChanged
Methods inherited from interface io.github.jwharm.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, toArray
Methods inherited from interface org.gnome.gtk.SectionModel
emitSectionsChanged, getSection, onSectionsChanged, sectionsChanged
-
Constructor Details
-
MapListModel
Create a MapListModel proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
MapListModel
public MapListModel(@Nullable @Nullable ListModel model, @Nullable @Nullable MapListModelMapFunc mapFunc) Creates a newGtkMapListModel
for the given arguments.- Parameters:
model
- The model to mapmapFunc
- map function
-
-
Method Details
-
getType
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, 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. -
getModel
Gets the model that is currently being mapped ornull
if none.- Returns:
- The model that gets mapped
-
hasMap
public boolean hasMap()Checks if a map function is currently set on this MapListModel.- Returns:
true
if 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
GtkMapListModel
may 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
mapFunc
conforms to the item type of this MapListModel. 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
model
conforms 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.Builder
object constructs aMapListModel
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withMapListModel.Builder.build()
.
-