Managing a Custom Widget State
Enabling GeneWidgetStateAware
allows you to save and restore some state properties of a widget. For more details, please refer to Section Understanding Widget State.
GeneBaseDataWidgetComponent
provides a base implementation of the Widget state management, and when using this class as the base class of a Widget the only methods that need to be overridden are:
restoreWidgetState(state: T); getDefaultWidgetState(): T;
The provided Sample Map Widget illustrates how to use this API to save and restore the map position and zoom level.
/** * Method that is being called when Platform Framework injects a widget state. * * This method restore the Map center from the saved stated. * @param widgetState */ applyWidgetState(widgetState:SampleMapState) { if(widgetState) { this.center = {lat: widgetState.lat, lng: widgetState.lng}; this.zoom = widgetState.zoom; } } /** * When the Map center or zoom change, this code saves the Widget state * through the Platform API updateWidgetState(S) method. */ onMapChanged() { const center = this.googleMap.getCenter(); const zoom = this.googleMap.getZoom(); this.updateWidgetState( { lat: center.lat(), lng: center.lng(), zoom: zoom}); } getDefaultWidgetState(): SampleMapState { return { zoom: 5, lat: NYC_COORDINATES.lat, lng: NYC_COORDINATES.lng, } }