Skip to content

Commit 86207e4

Browse files
author
Flurb
committed
Merged functions for creating textfields into 1 function
1 parent 058ac13 commit 86207e4

File tree

4 files changed

+37
-80
lines changed

4 files changed

+37
-80
lines changed

src/editors/protocol104/foundation/foundation.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1+
import { html, TemplateResult } from "lit-element";
2+
import { ifDefined } from "lit-html/directives/if-defined.js";
3+
import { translate } from "lit-translate";
14
import {
25
Create,
36
getInstanceAttribute,
47
getNameAttribute,
58
newWizardEvent
69
} from "../../../foundation.js";
10+
import { typeMaxLength } from "../../../wizards/foundation/p-types.js";
711
import { editAddressWizard } from "../wizards/address.js";
812
import { TiInformation } from "./cdc.js";
13+
import { typeDescriptiveNameKeys, typePattern } from "./p-types.js";
914

1015
export const PRIVATE_TYPE_104 = "IEC_60870_5_104";
1116

@@ -241,6 +246,22 @@ export function createCheckActions(
241246
return actions;
242247
}
243248

249+
/**
250+
* Create a wizard-textfield element for the wizards within the Network part of the 104 plugin.
251+
* @param pType - The type of P a Text Field has to be created for.
252+
* @returns - A Text Field created for a specific type for the Create wizard.
253+
*/
254+
export function createNetworkTextField(pType: string, maybeValue?: string): TemplateResult {
255+
return html`<wizard-textfield
256+
required
257+
label="${pType}"
258+
pattern="${ifDefined(typePattern[pType])}"
259+
.maybeValue=${maybeValue ?? null}
260+
maxLength="${ifDefined(typeMaxLength[pType])}"
261+
helper="${translate(typeDescriptiveNameKeys[pType])}"
262+
></wizard-textfield>`
263+
}
264+
244265
/**
245266
* Enumeration stating the active view of the 104 plugin.
246267
*/

src/editors/protocol104/wizards/foundation.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/editors/protocol104/wizards/logiclink.ts

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import { html, TemplateResult } from 'lit-element';
2-
import { get, translate } from 'lit-translate';
1+
import { html } from 'lit-element';
2+
import { get } from 'lit-translate';
33

44
import '../../../wizard-textfield.js';
55
import {
6-
pTypesLogicLink104,
7-
typeDescriptiveNameKeys,
8-
typePattern,
6+
pTypesLogicLink104
97
} from '../foundation/p-types.js';
108
import {
119
cloneElement,
@@ -21,9 +19,7 @@ import {
2119
WizardInputElement,
2220
WizardMenuActor
2321
} from '../../../foundation.js';
24-
import { ifDefined } from 'lit-html/directives/if-defined';
25-
import { typeMaxLength } from '../../../wizards/foundation/p-types.js';
26-
import { createCreateTextField } from './foundation.js';
22+
import { createNetworkTextField } from '../foundation/foundation.js';
2723

2824
export function editLogicLinkWizard(parent: Element, rGNumber: number, lLNumber: number): Wizard {
2925
return [
@@ -48,7 +44,9 @@ export function editLogicLinkWizard(parent: Element, rGNumber: number, lLNumber:
4844
.maybeValue=${lLNumber}
4945
></wizard-textfield>
5046
${pTypesLogicLink104.map(
51-
pType => html`${createEditTextField(parent, pType, rGNumber, lLNumber)}`
47+
pType => html`${createNetworkTextField(pType, parent.querySelector(
48+
`Address > P[type$="RG${rGNumber}-LL${lLNumber}-${pType}"]`
49+
)?.innerHTML)}`
5250
)}`
5351
],
5452
},
@@ -77,7 +75,7 @@ export function createLogicLinkWizard(parent: Element, rGNumber: number, occupie
7775
value="${lLNumber}"
7876
></wizard-textfield>
7977
${pTypesLogicLink104.map(
80-
pType => html`${createCreateTextField(pType)}`
78+
pType => html`${createNetworkTextField(pType)}`
8179
)}`
8280
],
8381
},
@@ -183,24 +181,3 @@ function addLogicLinkAction(parent: Element, rGNumber: number, lLNumber: number)
183181
return [complexAction];
184182
};
185183
}
186-
187-
/**
188-
* Create a wizard-textfield element for the Edit wizard.
189-
* @param parent - The parent element of the P to create.
190-
* @param pType - The type of P a Text Field has to be created for.
191-
* @param rGNumber - The Redundancy Group number of the Text Field used in the type.
192-
* @param lLNumber - The Logic Link Group number of the Text Field used in the type.
193-
* @returns - A Text Field created for a specific type for the Edit wizard.
194-
*/
195-
function createEditTextField(parent: Element, pType: string, rGNumber: number, lLNumber: number): TemplateResult {
196-
return html`<wizard-textfield
197-
required
198-
label="${pType}"
199-
pattern="${ifDefined(typePattern[pType])}"
200-
.maybeValue=${parent.querySelector(
201-
`Address > P[type$="RG${rGNumber}-LL${lLNumber}-${pType}"]`
202-
)?.innerHTML ?? null}
203-
maxLength="${ifDefined(typeMaxLength[pType])}"
204-
helper="${translate(typeDescriptiveNameKeys[pType])}"
205-
></wizard-textfield>`
206-
}

src/editors/protocol104/wizards/redundancygroup.ts

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { html, TemplateResult } from 'lit-element';
2-
import { get, translate } from 'lit-translate';
1+
import { html } from 'lit-element';
2+
import { get } from 'lit-translate';
33

44
import '../../../wizard-textfield.js';
55
import {
6-
pTypesRedundancyGroup104, typeDescriptiveNameKeys, typePattern,
6+
pTypesRedundancyGroup104
77
} from '../foundation/p-types.js';
88
import {
99
cloneElement,
@@ -20,11 +20,9 @@ import {
2020
WizardInputElement,
2121
WizardMenuActor
2222
} from '../../../foundation.js';
23-
import { ifDefined } from 'lit-html/directives/if-defined';
24-
import { typeMaxLength } from '../../../wizards/foundation/p-types.js';
2523
import { SingleSelectedEvent } from '@material/mwc-list/mwc-list-foundation';
2624
import { createLogicLinkWizard, editLogicLinkWizard } from './logiclink.js';
27-
import { createCreateTextField } from './foundation.js';
25+
import { createNetworkTextField } from '../foundation/foundation.js';
2826

2927
export function editRedundancyGroupWizard(parent: Element, rGNumber: number): Wizard {
3028
const usedLLNumbers = getLogicLinkNumbers(parent, rGNumber);
@@ -55,7 +53,9 @@ export function editRedundancyGroupWizard(parent: Element, rGNumber: number): Wi
5553
.maybeValue=${rGNumber}
5654
></wizard-textfield>
5755
${pTypesRedundancyGroup104.map(
58-
pType => html`${createEditTextField(parent, pType, rGNumber)}`
56+
pType => html`${createNetworkTextField(pType, parent.querySelector(
57+
`Address > P[type$="RG${rGNumber}-${pType}"]`
58+
)?.innerHTML)}`
5959
)}
6060
<h3>${get('protocol104.network.redundancyGroup.wizard.logicLinkGroupTitle')}</h3>
6161
<mwc-list
@@ -101,7 +101,7 @@ export function createRedundancyGroupWizard(parent: Element, occupiedRGNumbers:
101101
value="${rGNumber}"
102102
></wizard-textfield>
103103
${pTypesRedundancyGroup104.map(
104-
pType => html`${createCreateTextField(pType)}`
104+
pType => html`${createNetworkTextField(pType)}`
105105
)}`
106106
],
107107
},
@@ -233,23 +233,3 @@ function getLogicLinkNumbers(parent: Element, rGNumber: number): number[] {
233233

234234
return usedNumbers.sort();
235235
}
236-
237-
/**
238-
* Create a wizard-textfield element for the Edit wizard.
239-
* @param parent - The parent element of the P to create.
240-
* @param pType - The type of P a Text Field has to be created for.
241-
* @param rGNumber - The Redundancy Group number of the Text Field used in the type.
242-
* @returns - A Text Field created for a specific type for the Edit wizard.
243-
*/
244-
function createEditTextField(parent: Element, pType: string, rGNumber: number): TemplateResult {
245-
return html`<wizard-textfield
246-
required
247-
label="${pType}"
248-
pattern="${ifDefined(typePattern[pType])}"
249-
.maybeValue=${parent.querySelector(
250-
`Address > P[type$="RG${rGNumber}-${pType}"]`
251-
)?.innerHTML ?? null}
252-
maxLength="${ifDefined(typeMaxLength[pType])}"
253-
helper="${translate(typeDescriptiveNameKeys[pType])}"
254-
></wizard-textfield>`
255-
}

0 commit comments

Comments
 (0)