James,
Try this. All I did was change the order of the modules in the define. It is recommended that basewidget and mixins be at the beginning of your array.
define(["dojo/_base/declare",
"dijit/_WidgetsInTemplateMixin",
"jimu/BaseWidget",
"dojo/_base/lang",
"dojo/_base/Color",
"dojo/_base/array",
"dojo/dom-construct",
"dojo/dom-class",
"dojo/keys",
"dojo/on",
"dojo/Deferred",
"dijit/layout/TabContainer"
],
function(
declare,
_WidgetsInTemplateMixin,
BaseWidget,
lang,
Color,
array,
domConstruct,
domClass,
keys,
on,
Deferred,
TabContainer
) {
return declare([BaseWidget, _WidgetsInTemplateMixin], {
baseClass: "jimu-widget-customwidget",
LoadingIndicator: null,
currentFeatures: null,
printOutlineLayer: null,
printOutlineConnects: [],
_isPreparedExhibit: false,
startup: function() {
this.tab = new TabContainer({
tabs: [{
title: this.nls.input,
content: this.inputPaneNode
}, {
title: this.nls.output,
content: this.outputPaneNode
}],
selected: this.nls.input
});
this.tab.placeAt(this.domNode);
this.tab.startup();
window.map = this.map;
window.widget = this;