///////////////////////////////////////////////////////////////////////////
|
// Copyright © 2014 - 2018 Esri. All Rights Reserved.
|
//
|
// Licensed under the Apache License Version 2.0 (the "License");
|
// you may not use this file except in compliance with the License.
|
// You may obtain a copy of the License at
|
//
|
// http://www.apache.org/licenses/LICENSE-2.0
|
//
|
// Unless required by applicable law or agreed to in writing, software
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// See the License for the specific language governing permissions and
|
// limitations under the License.
|
///////////////////////////////////////////////////////////////////////////
|
|
define([
|
'dojo/_base/declare',
|
'dojo/_base/html',
|
'jimu/BaseWidgetSetting',
|
'dijit/_WidgetsInTemplateMixin',
|
'jimu/dijit/SimpleTable',
|
'dijit/form/Button',
|
'dijit/form/ValidationTextBox'
|
],
|
function(
|
declare, html,
|
BaseWidgetSetting,
|
_WidgetsInTemplateMixin,
|
Table) {
|
return declare([BaseWidgetSetting, _WidgetsInTemplateMixin], {
|
|
baseClass: 'jimu-widget-headercontroller-setting',
|
openAll: "openAll",
|
dropDown: "dropDown",
|
|
startup: function() {
|
this.inherited(arguments);
|
if (!this.config.groupSetting) {
|
this.config.groupSetting = [];
|
}
|
|
var fields = [{
|
name: 'group',
|
title: this.nls.group,
|
type: 'text'
|
}, {
|
name: 'openAll',
|
title: this.nls.openAll,
|
type: 'radio',
|
radio: 'row'
|
}, {
|
name: 'dropDown',
|
title: this.nls.dropDown,
|
type: 'radio',
|
radio: 'row'
|
}];
|
var args = {
|
fields: fields,
|
selectable: false
|
};
|
this.displayFieldsTable = new Table(args);
|
this.displayFieldsTable.placeAt(this.tableInfo);
|
this.displayFieldsTable.startup();
|
this.setConfig(this.config);
|
},
|
|
setConfig: function(config) {
|
this.config = config;
|
this.displayFieldsTable.clear();
|
if (this.appConfig.widgetPool.groups === undefined ||
|
this.appConfig.widgetPool.groups.length === 0) {
|
html.setStyle(this.noGroupTip, 'display', 'block');
|
html.setStyle(this.tableInfo, 'display', 'none');
|
} else {
|
html.setStyle(this.noGroupTip, 'display', 'none');
|
html.setStyle(this.tableInfo, 'display', 'block');
|
var len = this.appConfig.widgetPool.groups.length;
|
for (var i = 0; i < len; i++) {
|
var json = {};
|
json.group = this.appConfig.widgetPool.groups[i].label;
|
json.openAll = this.isOpenAll(config, json.group);
|
json.dropDown = !this.isOpenAll(config, json.group);
|
this.displayFieldsTable.addRow(json);
|
}
|
}
|
},
|
|
isOpenAll: function(config, label) {
|
var len = config.groupSetting.length;
|
for (var i = 0; i < len; i++) {
|
if (config.groupSetting[i].label === label) {
|
if (config.groupSetting[i].type === this.openAll) {
|
return true;
|
} else {
|
return false;
|
}
|
}
|
}
|
return true;
|
},
|
|
getConfig: function() {
|
var data = this.displayFieldsTable.getData();
|
var json = [];
|
var len = data.length;
|
for (var i = 0; i < len; i++) {
|
var g = {};
|
g.label = data[i].group;
|
if (data[i].openAll) {
|
g.type = this.openAll;
|
} else {
|
g.type = this.dropDown;
|
}
|
json.push(g);
|
}
|
this.config.groupSetting = json;
|
return this.config;
|
}
|
|
|
});
|
});
|