Loading...
Searching...
No Matches
<NCClusterMapObjectControllerListener> Protocol Reference

Listener for cluster lifecycle events on ClusterMapObjectController. More...

#include <com/navigine/idl/objc/NCClusterMapObjectControllerListener.h>

Inherits <NSObject>.

Instance Methods

(void) - onClusterCreated:cluster:
 A new cluster marker appeared.
 
(void) - onClusterDestroyed:clusterId:
 A cluster marker was removed.
 

Detailed Description

Listener for cluster lifecycle events on ClusterMapObjectController.

Cluster pick is delivered via PickListener (pickMapObjectAt).

onClusterCreated is called when a cluster appears (at least two icons grouped). onClusterDestroyed is called when a cluster is removed (fewer than two icons remain or controller is cleared).

Definition at line 24 of file NCClusterMapObjectControllerListener.h.

Method Documentation

◆ onClusterCreated:cluster:

- (void) onClusterCreated: (nullable NCClusterMapObjectController *) controller
cluster: (nullable NCClusterMapObject *) cluster 

A new cluster marker appeared.

Parameters
controllerCluster controller that owns the cluster.
clusterNewly created cluster. Use getCount() for the initial badge value.

Swift code snippet:

func onClusterCreated(_ controller: NCClusterMapObjectController?, cluster: NCClusterMapObject?) {
guard let cluster else { return }
// [swift_ClusterMapObject_addListener]
cluster.add(clusterChangeListener)
print("Added cluster change listener, initial count: \‍(cluster.count)")
// [swift_ClusterMapObject_addListener]
activeCluster = cluster
}

Objective C code snippet:

- (void)onClusterCreated:(NCClusterMapObjectController *)controller
cluster:(NCClusterMapObject *)cluster {
// [objc_ClusterMapObject_addListener]
[cluster addListener:_clusterChangeListener];
NSLog(@"Added cluster change listener, initial count: %d", [cluster getCount]);
// [objc_ClusterMapObject_addListener]
_activeCluster = cluster;
}

◆ onClusterDestroyed:clusterId:

- (void) onClusterDestroyed: (nullable NCClusterMapObjectController *) controller
clusterId: (int32_t) clusterId 

A cluster marker was removed.

Parameters
controllerCluster controller that owned the cluster.
clusterIdIdentifier of the destroyed cluster (same as ClusterMapObject getId()).

Swift code snippet:

func onClusterDestroyed(_ controller: NCClusterMapObjectController?, clusterId: Int32) {
if let cluster = activeCluster, cluster.id == clusterId {
// [swift_ClusterMapObject_removeListener]
cluster.remove(clusterChangeListener)
print("Removed cluster change listener")
// [swift_ClusterMapObject_removeListener]
activeCluster = nil
}
print("Cluster destroyed, id: \‍(clusterId)")
}

Objective C code snippet:

- (void)onClusterDestroyed:(NCClusterMapObjectController *)controller
clusterId:(int32_t)clusterId {
if (_activeCluster != nil && [_activeCluster getId] == clusterId) {
// [objc_ClusterMapObject_removeListener]
[_activeCluster removeListener:_clusterChangeListener];
NSLog(@"Removed cluster change listener");
// [objc_ClusterMapObject_removeListener]
}
NSLog(@"Cluster destroyed, id: %d", clusterId);
}

The documentation for this protocol was generated from the following file: