Hide Table of Contents
esri/dijit/util
esri/layer/pixelFilters
esri/process
esri/support
esri/workers
Class: WidgetConfigurationProxy

require(["esri/opsdashboard/WidgetConfigurationProxy"], function(WidgetConfigurationProxy) { /* code goes here */ });

Description

(Added at v3.14)
(Currently in Mature Support) WidgetConfigurationProxy is a class used to provide the configuration user experience for an operations dashboard extension widget. WidgetConfigurationProxy can be directly instantiated to communicate with the host operations dashboard application or used as a mixin in a Dojo or Dijit class, see declare. When the proxy is instantiated, it will automatically start an initialization process with the the host operations dashboard. If the initialization is successful, the event host-ready will fired, or if using as a mixin, the function hostReady will be called. It's only when the initialization is finished that configuration properties, functions to communicate with the host will be available, and host's events will be fired. If an error occured during the initialization process, the event initialization-error is fired, or for mixin the function hostInitializationError is called, passing the error as argument. Some of the configuration properties can be automatically captured by the host and controlled by properties in the manifest, such as 'requireDataSource' or 'requireMapWidget'. Anything else should be captured by a user experience built with the WidgetConfigurationProxy.

Example 1: Used as a mixin in dijit class
require([
  "dojo/_base/declare",
  "dijit/_WidgetBase",
  "dijit/_TemplatedMixin",
  "esri/opsdashboard/WidgetConfigurationProxy"
], function(declare, _WidgetBase, _TemplatedMixin, WidgetConfigurationProxy){
  return declare("MyWidgetExtensionConfiguration", [_WidgetBase, _TemplatedMixin, WidgetConfigurationProxy], {
    templateString: "<div>hello operation dashboard</div>",
    hostReady: function(){},
    dataSourceSelectionChanged: function(dataSourceProxy, dataSourceConfig){
      this.config.propertyIWantoSave = "Hello";
      dataSourceConfig.xField = "income";
      this.readyToPersistConfig(true);
    }
  });
});


Example 2: Used as plain proxy object
require([
  "esri/opsdashboard/WidgetConfigurationProxy"
], function(WidgetConfigurationProxy){
  var proxy = new WidgetConfigurationProxy();
  proxy.on("host-ready", function(){});
  proxy.on("data-source-selection-changed", function(dataSourceProxy, dataSourceConfig){
    this.config.propertyIWantoSave = "Hello";
    dataSourceConfig.xField = "income";
    this.readyToPersistConfig(true);
  });
});
An extension is defined by the json manifest file. Some configuration properties could or could not be available based on the manifest properties. The same is applicable to functions and callbacks exposed by the mixin (see the manifest documentation).

See also

Samples

Search for samples that use this class.

Class hierarchy

esri/opsdashboard/ExtensionBase
|_esri/opsdashboard/ExtensionConfigurationBase
  |_esri/opsdashboard/WidgetConfigurationProxy

Properties

NameTypeSummary
configObjectThe object that will store the Widget/MapTool/FeatureAction configuration.
isNativeBooleanRead-only: Indicates if the host application is the Windows Operations Dashboard.
portalHelperServicesObjectRead-only: It will list all of the Portal helper services.
portalUrlStringRead-only: The URL to the ArcGIS.com site or in-house portal that you are currently signed in to.

Methods

NameReturn typeSummary
dataSourceSelectionChanged(dataSourceProxy, dataSourceConfig)NoneCalled by the host application when the user has changed the selected data source in the data source selector.
getDataSourceConfig(dataSourceProxyOrDataSourceId)ObjectGet the data source config for a data source.
getDataSourceProxies()PromiseGet the collection of data sources from the host application.
getDataSourceProxy(dataSourceId)PromiseGet the data source corresponding to the data source id from the host application.
getMapWidgetProxies()PromiseGet the collection of map widgets from the host application.
getMapWidgetProxy(mapWidgetId)PromiseGet the map widget corresponding to the map widget id from the host application.
hostInitializationError(err)NoneCalled when an error occurred during the initialization process with the host application.
hostReady()NoneCalled by the host application when the relationship has been established with the extension.
mapWidgetAdded(mapWidgetProxy)NoneCalled by the host application when a map widget has been added to the current view.
mapWidgetRemoved(mapWidgetId)NoneCalled by the host application when a map widget has been removed from the current view.
mapWidgetSelectionChanged(mapWidgetProxy)NoneCalled by the host application when the user has changed the selected map widget in the map widget selector.
readyToPersistConfig(ready)NoneIndicates if the configuration is ready to be persisted or not.

Events

[ On Style Events | Connect Style Event ]
All On Style event listeners receive a single event object. Additionally, the event object also contains a 'target' property whose value is the object which fired the event.

Events

NameEvent ObjectSummary
data-source-added
{
  dataSourceProxy: <Object>
}
Event indicating that a new data source has been added into the host operation view.
data-source-removed
{
  dataSourceId: <String>
}
Event indicating that a data source has been removed from the host operation view.
data-source-selection-changed
{
  dataSourceConfig: <Object>,
  dataSourceProxy: <DataSourceProxy>
}
Event indicating the user has changed the selected data source for the configuration.
host-readyEvent indicating that the initialization process was successful.
initialization-error
{
  error: <Error>
}
Event indicating that the initialization process encountered an error.
map-widget-added
{
  mapWidgetProxy: <MapWidgetProxy>
}
Event indicating that a new map widget has been added into the host operation view.
map-widget-removed
{
  mapWidgetId: <String>
}
Event indicating that a map widget has been removed from the host operation view.
map-widget-selection-changed
{
  mapWidgetProxy: <MapWidgetProxy>
}
Event indicating the user has changed the selected map widget for the configuration.
Property Details

<Object> config

The object that will store the Widget/MapTool/FeatureAction configuration.

<Boolean> isNative

Read-only: Indicates if the host application is the Windows Operations Dashboard. If false, the host application is the browser based Operations Dashboard.

<Object> portalHelperServices

Read-only: It will list all of the Portal helper services. (Added at v3.16)

<String> portalUrl

Read-only: The URL to the ArcGIS.com site or in-house portal that you are currently signed in to. (Added at v3.15)
Method Details

dataSourceSelectionChanged(dataSourceProxy, dataSourceConfig)

Called by the host application when the user has changed the selected data source in the data source selector. Note: This function will only be invoked if the property "configuration.requireDataSource" and "useDataFromView" in the manifest are set to true.
Parameters:
<DataSourceProxy> dataSourceProxy Required The selected data source.
<Object> dataSourceConfig Required The associated data source config.

getDataSourceConfig(dataSourceProxyOrDataSourceId)

Get the data source config for a data source.
Return type: Object
Parameters:
<DataSourceProxy | String> dataSourceProxyOrDataSourceId Required A data source or a data source id.

getDataSourceProxies()

Get the collection of data sources from the host application. Note: The promise this function returns will fail if the extension manifest do not have a property "useDataFromView" set to true. Deprecated at v3.18
Return type: Promise

getDataSourceProxy(dataSourceId)

Get the data source corresponding to the data source id from the host application. Note: The promise this function returns will fail if the extension manifest do not have a property "useDataFromView" set to true.
Return type: Promise
Parameters:
<String> dataSourceId Required The data source id

getMapWidgetProxies()

Get the collection of map widgets from the host application.
Return type: Promise

getMapWidgetProxy(mapWidgetId)

Get the map widget corresponding to the map widget id from the host application.
Return type: Promise
Parameters:
<String> mapWidgetId Required A map widget id

hostInitializationError(err)

Called when an error occurred during the initialization process with the host application.
Parameters:
<Error> err Required The error that occurred.

hostReady()

Called by the host application when the relationship has been established with the extension. All the configuration properties will be available and the extension functions will be usable when this function has been invoked.

mapWidgetAdded(mapWidgetProxy)

Called by the host application when a map widget has been added to the current view. It could occur when a publisher is adding a map widget when configuring the operation view.
Parameters:
<MapWidgetProxy> mapWidgetProxy Required A map widget id.

mapWidgetRemoved(mapWidgetId)

Called by the host application when a map widget has been removed from the current view. It could occur when a publisher is removing a map widget when configuring the operation view.
Parameters:
<String> mapWidgetId Required A map widget id.

mapWidgetSelectionChanged(mapWidgetProxy)

Called by the host application when the user has changed the selected map widget in the map widget selector. Note: This function will only be invoked if the property "configuration.requireMapWidget" is set to 'true' in the manifest.
Parameters:
<MapWidgetProxy> mapWidgetProxy Required The selected map widget.

readyToPersistConfig(ready)

Indicates if the configuration is ready to be persisted or not.
Parameters:
<Boolean> ready Required Indicates that the configuration is ready to be persisted or not. If 'true', indicates that all the properties in the config property are valid and can be persisted by the host application.
Event Details
[ On Style Events | Connect Style Event ]

data-source-added

Event indicating that a new data source has been added into the host operation view.
Event Object Properties:
<Object> dataSourceProxy The new data source that has been added in the host operation view.

data-source-removed

Event indicating that a data source has been removed from the host operation view.
Event Object Properties:
<String> dataSourceId None

data-source-selection-changed

Event indicating the user has changed the selected data source for the configuration. This event is raised only if the property "configuration.requireDataSource" is set to true in the extension manifest.
Event Object Properties:
<Object> dataSourceConfig The associated data source config object.
<DataSourceProxy> dataSourceProxy The selected data source.

host-ready

Event indicating that the initialization process was successful. The configuration properties are available, the proxy functions are available, and the proxy events will be fired.

initialization-error

Event indicating that the initialization process encountered an error.
Event Object Properties:
<Error> error None

map-widget-added

Event indicating that a new map widget has been added into the host operation view.
Event Object Properties:
<MapWidgetProxy> mapWidgetProxy The new map widget that has been added in the host operation view.

map-widget-removed

Event indicating that a map widget has been removed from the host operation view.
Event Object Properties:
<String> mapWidgetId None

map-widget-selection-changed

Event indicating the user has changed the selected map widget for the configuration. This event is raised only if the property "configuration.requireMapWidget" is set to true in the extension manifest.
Event Object Properties:
<MapWidgetProxy> mapWidgetProxy The selected map widget.
Show Modal