Skip to content
This repository has been archived by the owner on Mar 8, 2023. It is now read-only.

Commit

Permalink
MINOR: Makes default style handling in TextStylesCache independent of…
Browse files Browse the repository at this point in the history
… DEFAULT_FONT_CATALOG

Signed-off-by: Frauke Fritz <frauke.fritz@here.com>
  • Loading branch information
Frauke Fritz committed Dec 16, 2020
1 parent 7cf9aae commit 7dde5f9
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
2 changes: 1 addition & 1 deletion @here/harp-mapview/lib/text/TextElementsRenderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,7 @@ export class TextElementsRenderer {
// TODO: this is an intermeditate solution, in the end this
// should not create a new cache, but update the former one
this.m_textStyleCache = new TextStyleCache(textStyles, defaultTextStyle);
this.m_textStyleCache.initializeDefaultTextElementStyle(DEFAULT_FONT_CATALOG_NAME);
this.m_textStyleCache.initializeDefaultTextElementStyle();
await this.waitLoaded();
this.m_textStyleCache.initializeTextElementStyles(this.m_textCanvases);
}
Expand Down
35 changes: 23 additions & 12 deletions @here/harp-mapview/lib/text/TextStyleCache.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,12 @@ export class TextStyleCache {
private readonly m_defaultTextStyleDefinition?: TextStyleDefinition
) {}

initializeDefaultTextElementStyle(defaultFontCatalogName: string) {
initializeDefaultTextElementStyle() {
if (this.m_textStyleDefinitions === undefined) {
this.m_textStyleDefinitions = [];
}
const styles = this.m_textStyleDefinitions;
this.m_defaultStyle.fontCatalog = undefined;

const themedDefaultStyle = styles.find(style => style.name === DEFAULT_STYLE_NAME);
if (themedDefaultStyle !== undefined) {
Expand All @@ -109,7 +110,6 @@ export class TextStyleCache {
} else if (styles.length > 0) {
this.m_defaultStyle = this.createTextElementStyle(styles[0], DEFAULT_STYLE_NAME);
}
this.m_defaultStyle.fontCatalog = defaultFontCatalogName;
this.m_defaultStyle.textCanvas = undefined;
}

Expand Down Expand Up @@ -362,28 +362,39 @@ export class TextStyleCache {
return;
}
}
// specified canvas not found
if (style.textCanvas === undefined) {
if (style.fontCatalog !== undefined) {
if (
style.fontCatalog !== undefined &&
style.fontCatalog !== DEFAULT_FONT_CATALOG_NAME
) {
logger.warn(
`FontCatalog '${style.fontCatalog}' set in TextStyle
'${style.name}' not found`
);
}
const defaultCanvas = textCanvases.get(DEFAULT_FONT_CATALOG_NAME);
if (defaultCanvas) {
style.textCanvas = defaultCanvas;
logger.info(`using default fontCatalog(${style.textCanvas?.fontCatalog.name}).`);
} else if (textCanvases.size > 0) {

// find another canvas to use then
let alternativeTextCanvas = textCanvases.get(DEFAULT_FONT_CATALOG_NAME);
if (!alternativeTextCanvas && textCanvases.size > 0) {
for (const [, canvas] of textCanvases) {
if (canvas) {
style.textCanvas = canvas;
logger.info(
`using default fontCatalog(${style.textCanvas?.fontCatalog.name}).`
);
alternativeTextCanvas = canvas;
break;
}
}
}

// if an alternative canvas is found, use it
if (alternativeTextCanvas) {
style.textCanvas = alternativeTextCanvas;
if (style.fontCatalog !== undefined) {
logger.info(
`fontCatalog: '${style.fontCatalog}' not found,
using default fontCatalog(${style.textCanvas?.name}).`
);
}
}
}
}

Expand Down

0 comments on commit 7dde5f9

Please sign in to comment.