Commit d5ada9e3 authored by Grand Francois's avatar Grand Francois
Browse files

#47 ouvrages parallèles : déplacement d'un ouvrage d'un cran vers la fin de la liste

Showing with 58 additions and 11 deletions
+58 -11
......@@ -126,22 +126,27 @@ export class NubFactory {
}
/**
* déplace un SessionNub associé à un nub Structure vers le début de la liste de structures
* @param sn SessionNub à remplacer
* @param params propriété du nouveau SessionNub
* recherche du nub ouvrages parallèles possédant l'ouvrage donné
*/
public moveStructureNubUp(sn: SessionNub) {
// recherche du nub ouvrages parallèles possédant l'ouvrage
let psn;
private findParallelStructureWithNub(n: Nub) {
for (const s of this._session)
if (s.nub instanceof ParallelStructure) {
psn = s.nub as ParallelStructure;
if (psn.hasStructure(sn.nub))
break;
else
psn = undefined;
const res = s.nub as ParallelStructure;
if (res.hasStructure(n))
return res;
}
return undefined;
}
/**
* déplace un SessionNub associé à un nub Structure d'une position vers le début de la liste de structures
* @param sn SessionNub à remplacer
* @param params propriété du nouveau SessionNub
*/
public moveStructureNubUp(sn: SessionNub) {
const psn = this.findParallelStructureWithNub(sn.nub);
// déplacement
if (psn) {
let i = 0;
......@@ -160,6 +165,32 @@ export class NubFactory {
throw new Error(`NubFactory.moveStructureNubUp() : la structure (uid ${sn.uid}) à déplacer n'a pas été trouvée`);
}
/**
* déplace un SessionNub associé à un nub Structure d'une position vers la fin de la liste de structures
* @param sn SessionNub à remplacer
* @param params propriété du nouveau SessionNub
*/
public moveStructureNubDown(sn: SessionNub) {
const psn = this.findParallelStructureWithNub(sn.nub);
// déplacement
if (psn) {
let i = 0;
for (const n of this._session) {
if (n.uid == sn.uid && i < this._session.length - 1) {
const n = this._session[i];
this._session[i] = this._session[i + 1];
this._session[i + 1] = n;
psn.moveStructureDown(sn.nub as Structure);
return;
}
i++;
}
}
throw new Error(`NubFactory.moveStructureNubDown() : la structure (uid ${sn.uid}) à déplacer n'a pas été trouvée`);
}
/**
* créé un Nub
* @param calcType type de Nub
......
......@@ -106,6 +106,22 @@ export class ParallelStructure extends Nub {
}
}
/**
* déplace une structure d'une position vers la fin de la liste
*/
public moveStructureDown(structure: Structure) {
let i = 0;
for (const s of this.structures) {
if (s.uid == structure.uid && i < this.structures.length - 1) {
const t = this.structures[i];
this.structures[i] = this.structures[i + 1];
this.structures[i + 1] = t;
return;
}
i++;
}
}
/**
* Supprime une structure hydraulique
* @param index numéro de la structure dans le tableau
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment