Class MapListModel<T extends GObject>
- All Implemented Interfaces:
Iterable<T>,Collection<T>,List<T>,SequencedCollection<T>,ListModel<T>,SectionModel<T>,Proxy,ListModelJavaList<T>
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 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 MapListModel.MapListModel(MemorySegment address) Create a MapListModel proxy 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()Returns this instance as if it were its parent type.static MapListModel.Builder<? extends MapListModel.Builder> builder()AMapListModel.Builderobject constructs aMapListModelwith the specified properties.@Nullable ListModelgetModel()Gets the model that is currently being mapped ornullif none.static @Nullable TypegetType()Get the GType of the MapListModel classbooleanhasMap()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 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
-
MapListModel
Create a MapListModel proxy 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()Creates a new MapListModel.
-
-
Method Details
-
getType
-
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. -
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
-