From e3b0d14c9588be7dccd56ced603f19ee393a2661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20Russ?= Date: Wed, 6 Sep 2023 11:22:45 +0200 Subject: [PATCH 1/2] ref: separate ui and business logic --- src/editors/IED.ts | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/editors/IED.ts b/src/editors/IED.ts index 5d414e6c0..47e4b6a77 100644 --- a/src/editors/IED.ts +++ b/src/editors/IED.ts @@ -129,12 +129,22 @@ export default class IedPlugin extends LitElement { this.selectedIEDs = [iedName]; } } - this.selectedLNClasses = this.lnClassList.map( - lnClassInfo => lnClassInfo[0] - ); } } + private calcSelectedLNClasses(): string[] { + const somethingSelected = this.selectedLNClasses.length > 0; + const lnClasses = this.lnClassList.map( lnClassInfo => lnClassInfo[0] ); + + let selectedLNClasses = lnClasses; + + if(somethingSelected){ + selectedLNClasses = lnClasses.filter( lnClass => this.selectedLNClasses.includes(lnClass)); + } + + return selectedLNClasses; + } + render(): TemplateResult { const iedList = this.iedList; if (iedList.length > 0) { @@ -195,17 +205,9 @@ export default class IedPlugin extends LitElement { multi="true" .header="${translate('iededitor.lnFilter')}" @selected-items-changed="${(e: SelectedItemsChangedEvent) => { - let selectedItems = e.detail.selectedItems; - const nothingSelected = selectedItems.length === 0; - if (nothingSelected) { - selectedItems = this.lnClassList.map( - lnClassInfo => lnClassInfo[0] - ); - } - this.selectedLNClasses = selectedItems; + this.selectedLNClasses = e.detail.selectedItems; this.requestUpdate('selectedIed'); - this.lNClassListOpenedOnce = true; }}" > ${getIcon('lNIcon')} @@ -214,8 +216,7 @@ export default class IedPlugin extends LitElement { const label = lnClassInfo[1]; return html` ${label} `; @@ -229,7 +230,7 @@ export default class IedPlugin extends LitElement { .editCount=${this.editCount} .doc=${this.doc} .element=${this.selectedIed} - .selectedLNClasses=${this.selectedLNClasses} + .selectedLNClasses=${this.calcSelectedLNClasses()} .nsdoc=${this.nsdoc} > `; From 2664171181e26b473b106e5bc16e1421c2bd6215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20Russ?= Date: Fri, 8 Sep 2023 15:33:48 +0200 Subject: [PATCH 2/2] fix: reset selection if IED changes --- src/editors/IED.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/editors/IED.ts b/src/editors/IED.ts index 47e4b6a77..296411a0d 100644 --- a/src/editors/IED.ts +++ b/src/editors/IED.ts @@ -175,9 +175,7 @@ export default class IedPlugin extends LitElement { this.lNClassListOpenedOnce = false; this.selectedIEDs = e.detail.selectedItems; - this.selectedLNClasses = this.lnClassList.map( - lnClassInfo => lnClassInfo[0] - ); + this.selectedLNClasses = []; this.requestUpdate('selectedIed'); }}" >