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

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

Showing with 61 additions and 0 deletions
+61 -0
...@@ -125,6 +125,41 @@ export class NubFactory { ...@@ -125,6 +125,41 @@ export class NubFactory {
return undefined; return undefined;
} }
/**
* 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
*/
public moveStructureNubUp(sn: SessionNub) {
// recherche du nub ouvrages parallèles possédant l'ouvrage
let psn;
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;
}
// déplacement
if (psn) {
let i = 0;
for (const n of this._session) {
if (n.uid == sn.uid && i > 0) {
const n = this._session[i - 1];
this._session[i - 1] = this._session[i];
this._session[i] = n;
psn.moveStructureUp(sn.nub as Structure);
return;
}
i++;
}
}
throw new Error(`NubFactory.moveStructureNubUp() : la structure (uid ${sn.uid}) à déplacer n'a pas été trouvée`);
}
/** /**
* créé un Nub * créé un Nub
* @param calcType type de Nub * @param calcType type de Nub
......
...@@ -80,6 +80,32 @@ export class ParallelStructure extends Nub { ...@@ -80,6 +80,32 @@ export class ParallelStructure extends Nub {
} }
} }
/**
* @return true si la structure donnée est dans la liste
*/
public hasStructure(structure: Nub): boolean {
for (const s of this.structures)
if (s.uid == structure.uid)
return true;
return false;
}
/**
* déplace une structure d'une position vers le début de la liste
*/
public moveStructureUp(structure: Structure) {
let i = 0;
for (const s of this.structures) {
if (s.uid == structure.uid && i > 0) {
const t = this.structures[i - 1];
this.structures[i - 1] = this.structures[i];
this.structures[i] = t;
return;
}
i++;
}
}
/** /**
* Supprime une structure hydraulique * Supprime une structure hydraulique
* @param index numéro de la structure dans le tableau * @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