##// END OF EJS Templates
DjxWidgetBase: implemented copying content from srcNode to contentNode
cin -
r57:f2499237b5bf v1.0.9 default
parent child
Show More
@@ -10,7 +10,7
10 10 ],
11 11 "author": "Implab team",
12 12 "license": "BSD-2-Clause",
13 "repository": "https://hg.code.sf.net/p/implabjs/djx",
13 "repository": "https://code.implab.org/implab/implabjs-djx",
14 14 "publishConfig": {
15 15 "access": "public"
16 16 },
@@ -21,7 +21,7 export interface DjxWidgetBase<Attrs = a
21 21
22 22 on<K extends keyof Events & string>(eventName: K, cb: (evt: Events[K]) => void): dojo.WatchHandle;
23 23
24 emit<K extends keyof Events & string>(eventName: K, evt: Omit<Events[K], keyof Event> & EventArgs ): void;
24 emit<K extends keyof Events & string>(eventName: K, evt: Omit<Events[K], keyof Event> & EventArgs): void;
25 25 }
26 26
27 27 @djclass
@@ -30,6 +30,16 export abstract class DjxWidgetBase<Attr
30 30 buildRendering() {
31 31 this.domNode = this.render().getDomNode();
32 32 super.buildRendering();
33
34 // now we should get assigned data-dojo-attach-points
35 // place the contents of the original srcNode to the containerNode
36 const src = this.srcNodeRef;
37 const dest = this.containerNode;
38
39 if (src && dest) {
40 while (src.firstChild)
41 dest.appendChild(src.firstChild);
42 }
33 43 }
34 44
35 45 abstract render(): BuildContext<HTMLElement>;
@@ -68,7 +78,8 export abstract class DjxWidgetBase<Attr
68 78 }
69 79
70 80 /** Starts current widget and all its supporting widgets (placed outside
71 * `containerNode`) and child widgets (placed inside `containerNode`)*/
81 * `containerNode`) and child widgets (placed inside `containerNode`)
82 */
72 83 startup() {
73 84 // startup supporting widgets
74 85 startupWidgets(this.domNode, this.containerNode);
@@ -27,7 +27,7 export class MyWidget extends djbase(Djx
27 27
28 28 render() {
29 29 const Frame = (props: any) => <div>{props.children}</div>;
30 return <div className="myWidget" tabIndex={3} style={{ alignContent: "center", border: "1px solid" }} >
30 return <div className="myWidget" onsubmit={e => this._onSubmit(e)} tabIndex={3} style={{ alignContent: "center", border: "1px solid" }} >
31 31 <h1 data-dojo-attach-point="titleNode"></h1>
32 32 <Frame>
33 33 <span class="up-button" onclick={e => this._onIncClick(e)}>[+]</span>
@@ -36,6 +36,10 export class MyWidget extends djbase(Djx
36 36 </div>;
37 37 }
38 38
39 _onSubmit(e: Event) {
40
41 }
42
39 43 _onIncClick(e: MouseEvent) {
40 44 this.emit("count-inc", { bubbles: false });
41 45 }
General Comments 0
You need to be logged in to leave comments. Login now