Edit widget - color off the selection response Happy New Year to all of you. Is there some one who knows how to change the color selection responses in a line so that it is Red as standard? and not cyan blue In select widget i can change the color of a selection line, but not in the edit widget? is there a way change it in a config file, we use ESRI web appbuilder developer edition 2.2
Solved! Go to Solution.
Kim,
The selection symbol is set per layer normally so it will take some code changes in the edit widget to handle this:
define([
'esri/Color',
'esri/symbols/SimpleMarkerSymbol',
'esri/symbols/SimpleLineSymbol',
'esri/symbols/SimpleFillSymbol',
....
Color, SimpleMarkerSymbol, SimpleLineSymbol, SimpleFillSymbol
.....
beginEditingByFeatures: function(features, featureLayer) {
if(features.length === 0) {
return;
}
var firstFeaturePoint;
var firstFeature = features[0];
if(firstFeature.geometry.type === 'point') {
firstFeaturePoint = firstFeature.geometry;
} else {
firstFeaturePoint = firstFeature.geometry.getExtent().getCenter();
}
this._createOverDef.then(lang.hitch(this, function() {
// active if state is deactive
if(this.state !== 'active') {
this.widgetManager.activateWidget(this);
}
// clear selection for all featureLayers.
array.forEach(this._jimuLayerInfos.getLayerInfoArray(), function(jimuLayerInfo) {
if(jimuLayerInfo.layerObject && jimuLayerInfo.layerObject.clearSelection) {
SelectionManager.getInstance().clearSelection(jimuLayerInfo.layerObject);
}
}, this);
// var query = new Query();
// query.where = prepareWhereExpression();
// featureLayer.selectFeatures(query, FeatureLayer.SELECTION_NEW, lang.hitch(this, function(features) {
// }));
//My edit to change selection Color
var type = featureLayer.geometryType;
var selectionColor = new Color("#FF0000");
var defaultPointSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE,
16, null, selectionColor);
var defaultLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
selectionColor, 2);
var defaultFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_NULL,
defaultLineSymbol, selectionColor);
if (type === 'esriGeometryPoint') {
featureLayer.setSelectionSymbol(defaultPointSymbol);
} else if (type === 'esriGeometryPolyline') {
featureLayer.setSelectionSymbol(defaultLineSymbol);
} else if (type === 'esriGeometryPolygon') {
featureLayer.setSelectionSymbol(defaultFillSymbol);
}
SelectionManager.getInstance().setSelection(featureLayer, features).then(lang.hitch(this, function() {
//end my edits
......
Kim,
The selection symbol is set per layer normally so it will take some code changes in the edit widget to handle this:
define([
'esri/Color',
'esri/symbols/SimpleMarkerSymbol',
'esri/symbols/SimpleLineSymbol',
'esri/symbols/SimpleFillSymbol',
....
Color, SimpleMarkerSymbol, SimpleLineSymbol, SimpleFillSymbol
.....
beginEditingByFeatures: function(features, featureLayer) {
if(features.length === 0) {
return;
}
var firstFeaturePoint;
var firstFeature = features[0];
if(firstFeature.geometry.type === 'point') {
firstFeaturePoint = firstFeature.geometry;
} else {
firstFeaturePoint = firstFeature.geometry.getExtent().getCenter();
}
this._createOverDef.then(lang.hitch(this, function() {
// active if state is deactive
if(this.state !== 'active') {
this.widgetManager.activateWidget(this);
}
// clear selection for all featureLayers.
array.forEach(this._jimuLayerInfos.getLayerInfoArray(), function(jimuLayerInfo) {
if(jimuLayerInfo.layerObject && jimuLayerInfo.layerObject.clearSelection) {
SelectionManager.getInstance().clearSelection(jimuLayerInfo.layerObject);
}
}, this);
// var query = new Query();
// query.where = prepareWhereExpression();
// featureLayer.selectFeatures(query, FeatureLayer.SELECTION_NEW, lang.hitch(this, function(features) {
// }));
//My edit to change selection Color
var type = featureLayer.geometryType;
var selectionColor = new Color("#FF0000");
var defaultPointSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE,
16, null, selectionColor);
var defaultLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
selectionColor, 2);
var defaultFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_NULL,
defaultLineSymbol, selectionColor);
if (type === 'esriGeometryPoint') {
featureLayer.setSelectionSymbol(defaultPointSymbol);
} else if (type === 'esriGeometryPolyline') {
featureLayer.setSelectionSymbol(defaultLineSymbol);
} else if (type === 'esriGeometryPolygon') {
featureLayer.setSelectionSymbol(defaultFillSymbol);
}
SelectionManager.getInstance().setSelection(featureLayer, features).then(lang.hitch(this, function() {
//end my edits
......
Thanks i try to fix the code
Kim,
When a person responds with an reply that you will use as the answer to you question you should not mark the post as assumed answered, you should mark that reply as the correct answer by clicking on the "Mark Correct" on that reply. Using the assumed answered is for when you find an answer on your own or the question is no longer ans issue.