Skip to content

Commit 20bb94f

Browse files
committed
add subwidget example
1 parent 63135ce commit 20bb94f

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

builder-2d/widgets/MyWidget/Widget.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import Query from 'esri/tasks/query';
1616
import * as on from 'dojo/on';
1717

1818
import IConfig from './config';
19+
import Subwidget from './widgets/Subwidget';
1920

2021
interface IWidget {
2122
baseClass: string;
@@ -29,13 +30,20 @@ class Widget implements IWidget {
2930

3031
private map: EsriMap;
3132
private widgetWrapper: HTMLElement;
33+
private subwidget: Subwidget;
3234

3335
private postCreate(args: any): void {
3436
const self: any = this;
3537
self.inherited(arguments);
3638

3739
this.widgetWrapper.innerHTML = this.config.demoSetting;
3840
this.createLayer();
41+
42+
// create a new instance of "Subwidget" wich is just a plain old dojo Widget.
43+
this.subwidget = new Subwidget({
44+
text: 'This is a subwidget.'
45+
});
46+
this.subwidget.placeAt(this.widgetWrapper, 'last');
3947
}
4048

4149
/**
@@ -45,8 +53,7 @@ class Widget implements IWidget {
4553
const layer: FeatureLayer = new FeatureLayer(
4654
'https://sampleserver6.arcgisonline.com/arcgis/rest/services/Recreation/FeatureServer/0',
4755
);
48-
on.once(this.map, 'update-end', (evt) => {
49-
console.log('evt', evt);
56+
on.once(this.map, 'update-end', () => {
5057
this.queryLayer(layer);
5158
});
5259
this.map.addLayers([layer]);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<div>
2+
Subwidget!
3+
</div>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/// <amd-dependency path="dojo/text!./Subwidget.html" name="template" />
2+
declare var template: any;
3+
4+
import declare from '../support/declareDecorator';
5+
import WidgetBase from 'dijit/_WidgetBase';
6+
import _TemplatedMixin from 'dijit/_TemplatedMixin';
7+
import _WidgetsInTemplateMixin from 'dijit/_WidgetsInTemplateMixin';
8+
9+
// This line tells Typescript that our Subwidget extends from WidgetBase,
10+
// so when we call built-in properties or functions (like .placeAt()),
11+
// Typescript will not error:
12+
interface Subwidget extends WidgetBase {};
13+
14+
@declare(WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin)
15+
class Subwidget {
16+
private templateString: string = template;
17+
18+
baseClass: string = 'subwidget';
19+
20+
constructor(params?: any, srcNodeRef?: dojo.NodeOrString) {
21+
// lang.mixin(this, params);
22+
}
23+
}
24+
25+
export default Subwidget;

0 commit comments

Comments
 (0)