Skip to content

Commit d75dcb7

Browse files
author
Dennis Labordus
committed
Saved selection while scl is open.
Signed-off-by: Dennis Labordus <[email protected]>
1 parent 9387cee commit d75dcb7

File tree

1 file changed

+27
-8
lines changed

1 file changed

+27
-8
lines changed

src/compas-editors/CompasVersions.ts

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ import {getTypeFromDocName, updateDocumentInOpenSCD} from "../compas/foundation.
88
import {getElementByName, getOpenScdElement, styles} from './foundation.js';
99
import {addVersionToCompasWizard} from "../compas/CompasUploadVersion.js";
1010
import {compareWizard} from "../compas/CompasCompareDialog.js";
11+
import {MultiSelectedEvent} from "@material/mwc-list/mwc-list-foundation";
12+
13+
// Save the selection for the current document.
14+
let selectedVersionsOnCompasVersionsEditor: Set<number> = new Set();
1115

1216
/** An editor [[`plugin`]] for selecting the `Substation` section. */
1317
export default class CompasVersionsPlugin extends LitElement {
@@ -21,6 +25,18 @@ export default class CompasVersionsPlugin extends LitElement {
2125
@property()
2226
scls!: Element[];
2327

28+
constructor() {
29+
super();
30+
31+
// Add event to get a notification when a new document is opened.
32+
getOpenScdElement().addEventListener('open-doc', this.resetSelection);
33+
}
34+
35+
resetSelection() {
36+
// When a new document is loaded the selection will be reset.
37+
selectedVersionsOnCompasVersionsEditor = new Set();
38+
}
39+
2440
firstUpdated(): void {
2541
if (!this.docId) {
2642
this.scls = [];
@@ -55,11 +71,9 @@ export default class CompasVersionsPlugin extends LitElement {
5571

5672
private getSelectedVersions(): Array<string> {
5773
const selectedVersions: Array<string> = [];
58-
this.shadowRoot!.querySelectorAll('mwc-check-list-item')
59-
.forEach(checkListItem => {
60-
if (checkListItem.selected) {
61-
selectedVersions.push(checkListItem.value);
62-
}
74+
const listItems = this.shadowRoot!.querySelectorAll('mwc-check-list-item');
75+
selectedVersionsOnCompasVersionsEditor.forEach(index => {
76+
selectedVersions.push(listItems.item(index).value);
6377
});
6478
return selectedVersions;
6579
}
@@ -148,7 +162,10 @@ export default class CompasVersionsPlugin extends LitElement {
148162
<div id="containerCompasVersions">
149163
<section tabindex="0">
150164
<h1>${translate('compas.versions.title')}</h1>
151-
<mwc-list multi>
165+
<mwc-list multi
166+
@selected=${(evt: MultiSelectedEvent) => {
167+
selectedVersionsOnCompasVersionsEditor = evt.detail.index;
168+
}}>
152169
${this.scls.map( (item, index, items) => {
153170
let element = getElementByName(item, SDS_NAMESPACE, "Name");
154171
if (element === null) {
@@ -159,7 +176,8 @@ export default class CompasVersionsPlugin extends LitElement {
159176
if (items.length - 1 === index) {
160177
return html`<mwc-check-list-item value="${version}"
161178
tabindex="0"
162-
graphic="icon">
179+
graphic="icon"
180+
.selected=${selectedVersionsOnCompasVersionsEditor.has(index)}>
163181
${name} (${version})
164182
<span slot="graphic">
165183
<mwc-icon @click=${() => {
@@ -170,7 +188,8 @@ export default class CompasVersionsPlugin extends LitElement {
170188
}
171189
return html`<mwc-check-list-item value="${version}"
172190
tabindex="0"
173-
graphic="icon">
191+
graphic="icon"
192+
.selected=${selectedVersionsOnCompasVersionsEditor.has(index)}>
174193
${name} (${version})
175194
<span slot="graphic">
176195
<mwc-icon @click=${() => {

0 commit comments

Comments
 (0)