Skip to content

Commit 81fa0a7

Browse files
committed
make baseoverlay abstract
1 parent acd7690 commit 81fa0a7

File tree

6 files changed

+49
-41
lines changed

6 files changed

+49
-41
lines changed

examples/introduction.ipynb

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
{
2525
"data": {
2626
"application/vnd.jupyter.widget-view+json": {
27-
"model_id": "be83a201afd04d6092afa4c08da8c79e",
27+
"model_id": "a2c23fa0e6b94f6a88fa314ff02fe502",
2828
"version_major": 2,
2929
"version_minor": 0
3030
},
@@ -223,21 +223,21 @@
223223
},
224224
{
225225
"cell_type": "code",
226-
"execution_count": 17,
226+
"execution_count": 5,
227227
"metadata": {},
228228
"outputs": [
229229
{
230230
"data": {
231231
"application/vnd.jupyter.widget-view+json": {
232-
"model_id": "96f6ebdbfbdf40758ddc3d6a7e1cfb0c",
232+
"model_id": "89eb9976b4ec4065a24275a247fe2318",
233233
"version_major": 2,
234234
"version_minor": 0
235235
},
236236
"text/plain": [
237237
"ImageOverlay(position=[0, 0])"
238238
]
239239
},
240-
"execution_count": 17,
240+
"execution_count": 5,
241241
"metadata": {},
242242
"output_type": "execute_result"
243243
}
@@ -249,7 +249,7 @@
249249
},
250250
{
251251
"cell_type": "code",
252-
"execution_count": 19,
252+
"execution_count": 6,
253253
"metadata": {},
254254
"outputs": [],
255255
"source": [
@@ -258,7 +258,7 @@
258258
},
259259
{
260260
"cell_type": "code",
261-
"execution_count": 20,
261+
"execution_count": 7,
262262
"metadata": {},
263263
"outputs": [],
264264
"source": [
@@ -267,7 +267,7 @@
267267
},
268268
{
269269
"cell_type": "code",
270-
"execution_count": 21,
270+
"execution_count": 8,
271271
"metadata": {},
272272
"outputs": [],
273273
"source": [
@@ -276,7 +276,7 @@
276276
},
277277
{
278278
"cell_type": "code",
279-
"execution_count": 22,
279+
"execution_count": 9,
280280
"metadata": {},
281281
"outputs": [],
282282
"source": [
@@ -285,16 +285,16 @@
285285
},
286286
{
287287
"cell_type": "code",
288-
"execution_count": 23,
288+
"execution_count": 9,
289289
"metadata": {},
290290
"outputs": [
291291
{
292292
"data": {
293293
"text/plain": [
294-
"[ImageOverlay(image_url='https://i.imgur.com/ZF6s192.png', position=[-70, 70])]"
294+
"[ImageOverlay(image_url='https://i.imgur.com/06Q1fSz.png', position=[-70, 70])]"
295295
]
296296
},
297-
"execution_count": 23,
297+
"execution_count": 9,
298298
"metadata": {},
299299
"output_type": "execute_result"
300300
}
@@ -324,16 +324,16 @@
324324
},
325325
{
326326
"cell_type": "code",
327-
"execution_count": 28,
327+
"execution_count": 10,
328328
"metadata": {},
329329
"outputs": [],
330330
"source": [
331-
"m.remove_overlay(imaget)"
331+
"m.remove_overlay(image)"
332332
]
333333
},
334334
{
335335
"cell_type": "code",
336-
"execution_count": 29,
336+
"execution_count": 11,
337337
"metadata": {},
338338
"outputs": [],
339339
"source": [
@@ -342,7 +342,7 @@
342342
},
343343
{
344344
"cell_type": "code",
345-
"execution_count": 30,
345+
"execution_count": 12,
346346
"metadata": {},
347347
"outputs": [],
348348
"source": [
@@ -351,7 +351,7 @@
351351
},
352352
{
353353
"cell_type": "code",
354-
"execution_count": 31,
354+
"execution_count": 13,
355355
"metadata": {},
356356
"outputs": [],
357357
"source": [
@@ -360,7 +360,7 @@
360360
},
361361
{
362362
"cell_type": "code",
363-
"execution_count": 32,
363+
"execution_count": 14,
364364
"metadata": {},
365365
"outputs": [],
366366
"source": [
@@ -369,7 +369,7 @@
369369
},
370370
{
371371
"cell_type": "code",
372-
"execution_count": 33,
372+
"execution_count": 15,
373373
"metadata": {},
374374
"outputs": [],
375375
"source": [
@@ -378,7 +378,7 @@
378378
},
379379
{
380380
"cell_type": "code",
381-
"execution_count": 34,
381+
"execution_count": 16,
382382
"metadata": {},
383383
"outputs": [],
384384
"source": [
@@ -388,7 +388,7 @@
388388
},
389389
{
390390
"cell_type": "code",
391-
"execution_count": 35,
391+
"execution_count": 17,
392392
"metadata": {},
393393
"outputs": [],
394394
"source": [
@@ -397,7 +397,7 @@
397397
},
398398
{
399399
"cell_type": "code",
400-
"execution_count": 36,
400+
"execution_count": 18,
401401
"metadata": {},
402402
"outputs": [],
403403
"source": [
@@ -406,7 +406,7 @@
406406
},
407407
{
408408
"cell_type": "code",
409-
"execution_count": 37,
409+
"execution_count": 19,
410410
"metadata": {},
411411
"outputs": [],
412412
"source": [
@@ -415,21 +415,21 @@
415415
},
416416
{
417417
"cell_type": "code",
418-
"execution_count": 38,
418+
"execution_count": 20,
419419
"metadata": {},
420420
"outputs": [
421421
{
422422
"data": {
423423
"application/vnd.jupyter.widget-view+json": {
424-
"model_id": "90f1687285754dd8aefc8364d2d741d2",
424+
"model_id": "5692329a9806438fbb2be2bc0334475e",
425425
"version_major": 2,
426426
"version_minor": 0
427427
},
428428
"text/plain": [
429429
"PopupOverlay(position=[0, 0])"
430430
]
431431
},
432-
"execution_count": 38,
432+
"execution_count": 20,
433433
"metadata": {},
434434
"output_type": "execute_result"
435435
}
@@ -441,16 +441,16 @@
441441
},
442442
{
443443
"cell_type": "code",
444-
"execution_count": 39,
444+
"execution_count": 21,
445445
"metadata": {},
446446
"outputs": [],
447447
"source": [
448-
"popup.popup_content='hellooooo'"
448+
"popup.popup_content='Maap'"
449449
]
450450
},
451451
{
452452
"cell_type": "code",
453-
"execution_count": 40,
453+
"execution_count": 22,
454454
"metadata": {},
455455
"outputs": [],
456456
"source": [
@@ -459,12 +459,19 @@
459459
},
460460
{
461461
"cell_type": "code",
462-
"execution_count": 41,
462+
"execution_count": 23,
463463
"metadata": {},
464464
"outputs": [],
465465
"source": [
466466
"m.remove_overlay(popup)"
467467
]
468+
},
469+
{
470+
"cell_type": "code",
471+
"execution_count": null,
472+
"metadata": {},
473+
"outputs": [],
474+
"source": []
468475
}
469476
],
470477
"metadata": {

src/baseoverlay.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import { MODULE_NAME, MODULE_VERSION } from './version';
1111
import '../css/widget.css';
1212
import Overlay from 'ol/Overlay';
1313

14-
export * from './tilelayer';
15-
1614
export class BaseOverlayModel extends DOMWidgetModel {
1715
defaults() {
1816
return {
@@ -35,15 +33,17 @@ export class BaseOverlayModel extends DOMWidgetModel {
3533
static view_module_version = MODULE_VERSION;
3634
}
3735

38-
export class BaseOverlayView extends DOMWidgetView {
36+
export abstract class BaseOverlayView extends DOMWidgetView {
3937
overlay: Overlay;
4038
element: HTMLElement;
4139

4240
render() {
4341
super.render();
42+
this.createElement();
4443
this.createOverlay();
4544
this.model_events();
4645
}
46+
abstract createElement(): void;
4747

4848
createOverlay() {
4949
const position = this.model.get('position');

src/imageoverlay.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,12 @@ export class ImageOverlayModel extends BaseOverlayModel {
3636

3737
export class ImageOverlayView extends BaseOverlayView {
3838
render() {
39-
this.element = document.createElement('img');
4039
super.render();
4140
this.updateImageElement();
4241
}
43-
42+
createElement() {
43+
this.element = document.createElement('img');
44+
}
4445
model_events() {
4546
super.model_events();
4647
this.listenTo(this.model, 'change:image_url', this.updateImageElement);

src/popupoverlay.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,12 @@ export class PopupOverlayModel extends BaseOverlayModel {
3434
}
3535
export class PopupOverlayView extends BaseOverlayView {
3636
render() {
37-
this.element = document.createElement('div');
3837
super.render();
3938
this.updatePopupElement();
4039
}
40+
createElement() {
41+
this.element = document.createElement('div');
42+
}
4143

4244
model_events() {
4345
super.model_events();

src/video_overlay.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import { MODULE_NAME, MODULE_VERSION } from './version';
66
import '../css/widget.css';
77
import { BaseOverlayModel, BaseOverlayView } from './baseoverlay';
88

9-
export * from './tilelayer';
10-
119
export class VideoOverlayModel extends BaseOverlayModel {
1210
defaults() {
1311
return {
@@ -18,7 +16,6 @@ export class VideoOverlayModel extends BaseOverlayModel {
1816
_view_name: VideoOverlayModel.view_name,
1917
_view_module: VideoOverlayModel.view_module,
2018
_view_module_version: VideoOverlayModel.view_module_version,
21-
image_url: '',
2219
};
2320
}
2421

@@ -38,12 +35,14 @@ export class VideoOverlayView extends BaseOverlayView {
3835
videoElement: HTMLVideoElement;
3936

4037
render() {
38+
super.render();
39+
this.updateVideoElement();
40+
}
41+
createElement() {
4142
this.element = document.createElement('div');
4243
this.videoElement = document.createElement('video');
4344
this.videoElement.controls = true;
4445
this.element.appendChild(this.videoElement);
45-
super.render();
46-
this.updateVideoElement();
4746
}
4847

4948
model_events() {

src/widget.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import { MODULE_NAME, MODULE_VERSION } from './version';
1919
import '../css/widget.css';
2020
import { useGeographic } from 'ol/proj';
2121

22-
export * from './baseoverlay';
2322
export * from './imageoverlay';
2423
export * from './video_overlay';
2524
export * from './popupoverlay';

0 commit comments

Comments
 (0)