Skip to content
Snippets Groups Projects
Commit 2e760e47 authored by François Grand's avatar François Grand
Browse files

refactor: make FieldsetContainerComponent generic, create...

refactor: make FieldsetContainerComponent generic, create StructureFieldsetContainerComponent inherited class

refs #522
parent d0958efb
No related branches found
No related tags found
1 merge request!166Resolve "Prébarrages: Regroupement de la saisie des bassins"
......@@ -64,11 +64,11 @@ export class CalculatorPage {
}
getAddStructureButton() {
return element(by.css("fieldset-container .hyd-window-btns button.add-structure"));
return element(by.css("structure-fieldset-container .hyd-window-btns button.add-structure"));
}
getCopyStructureButton() {
return element(by.css("fieldset-container .hyd-window-btns button.copy-structure"));
return element(by.css("structure-fieldset-container .hyd-window-btns button.copy-structure"));
}
getAllLinkButtons() {
......
......@@ -120,6 +120,7 @@ import { ImmediateErrorStateMatcher } from "./formulaire/immediate-error-state-m
import { LoadSessionURLComponent } from "./components/load-session-url/load-session-url.component";
import { DialogShowMessageComponent } from "./components/dialog-show-message/dialog-show-message.component";
import { DialogConfirmLoadSessionURLComponent } from "./components/dialog-confirm-load-session-url/dialog-confirm-load-session-url.component";
import { StructureFieldsetContainerComponent } from "./components/structure-fieldset-container/structure-fieldset-container.component";
const appRoutes: Routes = [
{ path: "list/search", component: CalculatorListComponent },
......@@ -209,6 +210,7 @@ const appRoutes: Routes = [
DialogConfirmLoadSessionURLComponent,
FieldSetComponent,
FieldsetContainerComponent,
StructureFieldsetContainerComponent,
FixedResultsComponent,
FixedVarResultsComponent,
FlexGtXxsShowHideDirective,
......
......@@ -31,7 +31,7 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
return this._isValid.value;
}
@Input()
private _container: FieldsetContainer;
protected _container: FieldsetContainer;
/**
* liste des composants FieldSet enfants
......@@ -82,16 +82,8 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
* Ajoute un nouveau sous-nub (Structure, PabCloisons, YAXN… selon le cas)
* dans un nouveau fieldset
*/
private addSubNub(after: FieldSet, clone: boolean = false) {
const newFs = this._container.addFromTemplate(0, after.indexAsKid());
if (clone) {
const prms = after.backupParameters();
// replace in-place to change properties (overkill)
// @WTF why only those two ?
newFs.setPropValue("structureType", after.properties.getPropValue("structureType"));
newFs.setPropValue("loiDebit", after.properties.getPropValue("loiDebit"));
newFs.restoreParameters(prms);
}
protected addSubNub(after: FieldSet, clone: boolean = false) {
this._container.addFromTemplate(0, after.indexAsKid());
}
private onFieldsetListChange() {
......
......@@ -104,11 +104,11 @@
(tabPressed)="onTabPressed($event)">
</field-set>
<fieldset-container *ngIf="isFieldsetContainer(fe)"
<structure-fieldset-container *ngIf="isStructureFieldsetContainer(fe)"
[style.display]="getElementStyleDisplay(fe.id)" [_container]=fe
(radio)=onRadioClick($event) (validChange)=onElementValid() (inputChange)=onInputChange($event)
(tabPressed)="onTabPressed($event)">
</fieldset-container>
</structure-fieldset-container>
</ng-template>
</div>
......@@ -130,6 +130,13 @@
fxFlex="1 0 auto">
</fieldset-container>
<structure-fieldset-container *ngIf="isStructureFieldsetContainer(fe)"
[style.display]="getElementStyleDisplay(fe.id)" [_container]=fe
(radio)=onRadioClick($event) (validChange)=onElementValid() (inputChange)=onInputChange($event)
(tabPressed)="onTabPressed($event)"
fxFlex="1 0 auto">
</structure-fieldset-container>
<pab-table *ngIf="isPabTable(fe)" [pabTable]=fe (radio)=onRadioClick($event)
(validChange)=onElementValid() (inputChange)=onInputChange($event)
fxFlex="1 0 auto">
......@@ -206,4 +213,4 @@
</form>
</mat-card>
\ No newline at end of file
</mat-card>
......@@ -199,9 +199,26 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
return fe instanceof FieldSet;
}
/** détermine si un FormulaireElement est du type FieldsetContainer */
/** détermine si un FormulaireElement est du type FieldsetContainer et générique */
public isFieldsetContainer(fe: any): boolean {
return fe instanceof FieldsetContainer;
if (fe instanceof FieldsetContainer) {
switch (fe.getTemplate(0).calcTypeFromConfig) {
case CalculatorType.Structure:
return false;
default:
return true;
}
}
return false;
}
/** détermine si un FormulaireElement est du type FieldsetContainer contenant des structures */
public isStructureFieldsetContainer(fe: any): boolean {
if (fe instanceof FieldsetContainer) {
return fe.getTemplate(0).calcTypeFromConfig === CalculatorType.Structure;
}
return false;
}
/** détermine si un FormulaireElement est du type PabTable */
......
import { Component } from "@angular/core";
import { FieldSet } from "../../formulaire/elements/fieldset";
import { I18nService } from "../../services/internationalisation.service";
import { ApplicationSetupService } from "../../services/app-setup.service";
import { FieldsetContainerComponent } from "../fieldset-container/fieldset-container.component";
@Component({
selector: "structure-fieldset-container",
templateUrl: "../fieldset-container/fieldset-container.component.html",
styleUrls: [
"../fieldset-container/fieldset-container.component.scss"
]
})
export class StructureFieldsetContainerComponent extends FieldsetContainerComponent {
constructor(i18nService: I18nService, appSetupService: ApplicationSetupService) {
super(i18nService, appSetupService);
}
/**
* Ajoute un nouveau sous-nub (Structure, PabCloisons, YAXN… selon le cas)
* dans un nouveau fieldset
*/
protected addSubNub(after: FieldSet, clone: boolean = false) {
const newFs = this._container.addFromTemplate(0, after.indexAsKid());
if (clone) {
const prms = after.backupParameters();
// replace in-place to change properties (overkill)
// @WTF why only those two ?
newFs.setPropValue("structureType", after.properties.getPropValue("structureType"));
newFs.setPropValue("loiDebit", after.properties.getPropValue("loiDebit"));
newFs.restoreParameters(prms);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment