UNPKG

terriajs

Version:

Geospatial data visualization platform.

83 lines 3.24 kB
import i18next from "i18next"; import { runInAction } from "mobx"; import ReferenceMixin from "../../../ModelMixins/ReferenceMixin"; import UrlMixin from "../../../ModelMixins/UrlMixin"; import ThreddsItemReferenceTraits from "../../../Traits/TraitsClasses/ThreddsItemReferenceTraits"; import CatalogMemberFactory from "../CatalogMemberFactory"; import CreateModel from "../../Definition/CreateModel"; import LoadableStratum from "../../Definition/LoadableStratum"; import StratumOrder from "../../Definition/StratumOrder"; import WebMapServiceCatalogGroup from "../Ows/WebMapServiceCatalogGroup"; export class ThreddsDatasetStratum extends LoadableStratum(ThreddsItemReferenceTraits) { threddsItemReference; threddsDataset; static stratumName = "threddsDataset"; constructor(threddsItemReference, threddsDataset) { super(); this.threddsItemReference = threddsItemReference; this.threddsDataset = threddsDataset; } duplicateLoadableStratum(_newModel) { return new ThreddsDatasetStratum(this.threddsItemReference, this.threddsDataset); } static load(threddsItemReference, threddsDataset) { return new ThreddsDatasetStratum(threddsItemReference, threddsDataset); } get name() { if (this.threddsDataset === undefined) return undefined; return this.threddsDataset.name; } get url() { if (this.threddsDataset === undefined) return undefined; return this.threddsDataset.wmsUrl; } } StratumOrder.addLoadStratum(ThreddsDatasetStratum.stratumName); export default class ThreddsItemReference extends UrlMixin(ReferenceMixin(CreateModel(ThreddsItemReferenceTraits))) { static type = "thredds-item"; get type() { return ThreddsItemReference.type; } get typeName() { return i18next.t("models.threddsItem.name"); } _threddsDataset = undefined; _threddsCatalogGroup = undefined; setDataset(dataset) { this._threddsDataset = dataset; } setThreddsCatalogGroup(group) { this._threddsCatalogGroup = group; } setThreddsStrata(model) { if (this._threddsDataset === undefined) return; if (model.strata.get(ThreddsDatasetStratum.stratumName) !== undefined) return; const stratum = ThreddsDatasetStratum.load(this, this._threddsDataset); if (stratum === undefined) return; runInAction(() => { model.strata.set(ThreddsDatasetStratum.stratumName, stratum); }); } passThreddsStrata(model) { const threddsStrata = this.strata.get(ThreddsDatasetStratum.stratumName); if (threddsStrata === undefined) return; runInAction(() => { model.strata.set(ThreddsDatasetStratum.stratumName, threddsStrata); }); } async forceLoadReference(_previousTarget) { this.setThreddsStrata(this); const model = CatalogMemberFactory.create(WebMapServiceCatalogGroup.type, this.uniqueId, this.terria, this); if (model === undefined) return; this.setThreddsStrata(model); return model; } } //# sourceMappingURL=ThreddsItemReference.js.map