From 9975f1cd1b678eade5dbecbe0ff61136fc22af7f Mon Sep 17 00:00:00 2001 From: rhenck <richard.henck@iqb.hu-berlin.de> Date: Mon, 18 Oct 2021 15:52:18 +0200 Subject: [PATCH] Use serialized parameters when building elements Before the defaults were simply set on any field regardless of the passed object. --- projects/common/models/button-element.ts | 4 ++-- projects/common/models/checkbox-element.ts | 4 ++-- projects/common/models/dropdown-element.ts | 4 ++-- .../models/radio-button-group-element.ts | 4 ++-- projects/common/models/text-area-element.ts | 4 ++-- projects/common/models/text-element.ts | 2 +- projects/common/models/text-field-element.ts | 4 ++-- .../common/util/unit-interface-initializer.ts | 19 ++++++++++--------- 8 files changed, 23 insertions(+), 22 deletions(-) diff --git a/projects/common/models/button-element.ts b/projects/common/models/button-element.ts index 70d1e4376..c988c4e2b 100644 --- a/projects/common/models/button-element.ts +++ b/projects/common/models/button-element.ts @@ -20,7 +20,7 @@ export class ButtonElement extends UIElement implements FontElement, SurfaceUIEl constructor(serializedElement: UIElement, coordinates?: { x: number; y: number }) { super(serializedElement, coordinates); Object.assign(this, serializedElement); - Object.assign(this, initFontElement()); - Object.assign(this, initSurfaceElement()); + Object.assign(this, initFontElement(serializedElement)); + Object.assign(this, initSurfaceElement(serializedElement)); } } diff --git a/projects/common/models/checkbox-element.ts b/projects/common/models/checkbox-element.ts index 62122fc41..b9cfb3a72 100644 --- a/projects/common/models/checkbox-element.ts +++ b/projects/common/models/checkbox-element.ts @@ -15,8 +15,8 @@ export class CheckboxElement extends InputElement implements FontElement, Surfac constructor(serializedElement: UIElement, coordinates?: { x: number; y: number }) { super(serializedElement, coordinates); Object.assign(this, serializedElement); - Object.assign(this, initFontElement()); - Object.assign(this, initSurfaceElement()); + Object.assign(this, initFontElement(serializedElement)); + Object.assign(this, initSurfaceElement(serializedElement)); this.value = serializedElement.value as boolean || false; // booleans are always initialized false diff --git a/projects/common/models/dropdown-element.ts b/projects/common/models/dropdown-element.ts index 45833bba4..3aa5578ae 100644 --- a/projects/common/models/dropdown-element.ts +++ b/projects/common/models/dropdown-element.ts @@ -18,8 +18,8 @@ export class DropdownElement extends InputElement implements FontElement, Surfac constructor(serializedElement: UIElement, coordinates?: { x: number; y: number }) { super(serializedElement, coordinates); Object.assign(this, serializedElement); - Object.assign(this, initFontElement()); - Object.assign(this, initSurfaceElement()); + Object.assign(this, initFontElement(serializedElement)); + Object.assign(this, initSurfaceElement(serializedElement)); this.height = serializedElement.height || 83; } diff --git a/projects/common/models/radio-button-group-element.ts b/projects/common/models/radio-button-group-element.ts index 0047de1a0..96d732186 100644 --- a/projects/common/models/radio-button-group-element.ts +++ b/projects/common/models/radio-button-group-element.ts @@ -18,8 +18,8 @@ export class RadioButtonGroupElement extends InputElement implements FontElement constructor(serializedElement: UIElement, coordinates?: { x: number; y: number }) { super(serializedElement, coordinates); Object.assign(this, serializedElement); - Object.assign(this, initFontElement()); - Object.assign(this, initSurfaceElement()); + Object.assign(this, initFontElement(serializedElement)); + Object.assign(this, initSurfaceElement(serializedElement)); this.height = serializedElement.height || 85; this.backgroundColor = serializedElement.backgroundColor as string || 'transparent'; diff --git a/projects/common/models/text-area-element.ts b/projects/common/models/text-area-element.ts index 3571580e5..63dd5641b 100644 --- a/projects/common/models/text-area-element.ts +++ b/projects/common/models/text-area-element.ts @@ -20,8 +20,8 @@ export class TextAreaElement extends InputElement implements FontElement, Surfac constructor(serializedElement: UIElement, coordinates?: { x: number; y: number }) { super(serializedElement, coordinates); Object.assign(this, serializedElement); - Object.assign(this, initFontElement()); - Object.assign(this, initSurfaceElement()); + Object.assign(this, initFontElement(serializedElement)); + Object.assign(this, initSurfaceElement(serializedElement)); this.height = serializedElement.height || 132; this.backgroundColor = serializedElement.backgroundColor as string || 'transparent'; diff --git a/projects/common/models/text-element.ts b/projects/common/models/text-element.ts index 225823c1f..397233398 100644 --- a/projects/common/models/text-element.ts +++ b/projects/common/models/text-element.ts @@ -16,7 +16,7 @@ export class TextElement extends UIElement implements SurfaceUIElement { constructor(serializedElement: UIElement, coordinates?: { x: number; y: number }) { super(serializedElement, coordinates); Object.assign(this, serializedElement); - Object.assign(this, initSurfaceElement()); + Object.assign(this, initSurfaceElement(serializedElement)); this.fontColor = serializedElement.fontColor as string || 'black'; this.font = serializedElement.font as string || 'Roboto'; this.bold = serializedElement.bold as boolean || false; diff --git a/projects/common/models/text-field-element.ts b/projects/common/models/text-field-element.ts index 50bd8deb2..a1c9b4506 100644 --- a/projects/common/models/text-field-element.ts +++ b/projects/common/models/text-field-element.ts @@ -27,8 +27,8 @@ export class TextFieldElement extends InputElement implements FontElement, Surfa constructor(serializedElement: UIElement, coordinates?: { x: number; y: number }) { super(serializedElement, coordinates); Object.assign(this, serializedElement); - Object.assign(this, initFontElement()); - Object.assign(this, initSurfaceElement()); + Object.assign(this, initFontElement(serializedElement)); + Object.assign(this, initSurfaceElement(serializedElement)); this.height = serializedElement.height || 100; this.backgroundColor = serializedElement.backgroundColor as string || 'transparent'; diff --git a/projects/common/util/unit-interface-initializer.ts b/projects/common/util/unit-interface-initializer.ts index 24e3f4241..f3db614b7 100644 --- a/projects/common/util/unit-interface-initializer.ts +++ b/projects/common/util/unit-interface-initializer.ts @@ -1,16 +1,17 @@ import { FontElement, SurfaceUIElement } from '../interfaces/UIElementInterfaces'; +import { UIElement } from '../models/uI-element'; -export function initFontElement(): FontElement { +export function initFontElement(serializedElement: UIElement): FontElement { return { - fontColor: 'black', - font: 'Roboto', - fontSize: 18, - bold: false, - italic: false, - underline: false + fontColor: serializedElement.fontColor as string || 'black', + font: serializedElement.font as string || 'Roboto', + fontSize: serializedElement.fontSize as number || 18, + bold: serializedElement.bold as boolean || false, + italic: serializedElement.italic as boolean || false, + underline: serializedElement.underline as boolean || false }; } -export function initSurfaceElement(): SurfaceUIElement { - return { backgroundColor: 'lightgrey' }; +export function initSurfaceElement(serializedElement: UIElement): SurfaceUIElement { + return { backgroundColor: serializedElement.backgroundColor as string || 'lightgrey' }; } -- GitLab