chore: switch to an UI class getter

This commit is contained in:
David Larlet 2024-08-02 14:20:55 -04:00 committed by Yohan Boniface
parent 00c384bf25
commit 7863cebc32

View file

@ -114,8 +114,7 @@ class Feature {
} }
makeUI() { makeUI() {
const klass = this.getUIClass() this._ui = new this.uiClass(this, this.toLatLngs())
this._ui = new klass(this, this.toLatLngs())
} }
getClassName() { getClassName() {
@ -569,7 +568,7 @@ class Feature {
redraw() { redraw() {
if (this.datalayer?.isVisible()) { if (this.datalayer?.isVisible()) {
if (this.getUIClass() !== this.ui.getClass()) { if (this.uiClass !== this.ui.getClass()) {
this.datalayer.hideFeature(this) this.datalayer.hideFeature(this)
this.makeUI() this.makeUI()
this.datalayer.showFeature(this) this.datalayer.showFeature(this)
@ -581,6 +580,8 @@ class Feature {
} }
export class Point extends Feature { export class Point extends Feature {
uiClass = LeafletMarker
constructor(datalayer, geojson, id) { constructor(datalayer, geojson, id) {
super(datalayer, geojson, id) super(datalayer, geojson, id)
this.staticOptions = { this.staticOptions = {
@ -597,10 +598,6 @@ export class Point extends Feature {
return { coordinates: GeoJSON.latLngToCoords(latlng), type: 'Point' } return { coordinates: GeoJSON.latLngToCoords(latlng), type: 'Point' }
} }
getUIClass() {
return LeafletMarker
}
hasGeom() { hasGeom() {
return Boolean(this.coordinates) return Boolean(this.coordinates)
} }
@ -787,6 +784,8 @@ class Path extends Feature {
} }
export class LineString extends Path { export class LineString extends Path {
uiClass = LeafletPolyline
constructor(datalayer, geojson, id) { constructor(datalayer, geojson, id) {
super(datalayer, geojson, id) super(datalayer, geojson, id)
this.staticOptions = { this.staticOptions = {
@ -816,10 +815,6 @@ export class LineString extends Path {
return !this.coordinates.length return !this.coordinates.length
} }
getUIClass() {
return LeafletPolyline
}
isSameClass(other) { isSameClass(other) {
return other instanceof LineString return other instanceof LineString
} }
@ -913,6 +908,11 @@ export class Polygon extends Path {
} }
} }
get uiClass() {
if (this.getOption('mask')) return MaskPolygon
return LeafletPolygon
}
toLatLngs() { toLatLngs() {
return GeoJSON.coordsToLatLngs(this.coordinates, this.type === 'Polygon' ? 1 : 2) return GeoJSON.coordsToLatLngs(this.coordinates, this.type === 'Polygon' ? 1 : 2)
} }
@ -933,11 +933,6 @@ export class Polygon extends Path {
return !this.coordinates.length || !this.coordinates[0].length return !this.coordinates.length || !this.coordinates[0].length
} }
getUIClass() {
if (this.getOption('mask')) return MaskPolygon
return LeafletPolygon
}
isSameClass(other) { isSameClass(other) {
return other instanceof Polygon return other instanceof Polygon
} }