| rapport/part/implantation.tex |
| 58 | 58 | station_src.addDestinations(segment); |
| 59 | 59 | } |
| 60 | 60 | \end{lstlisting} |
| 61 | | On commence d'abord par supprimer les lignes qui commence par un ou plusieurs '\#', ce sont les noms de ligne et les stations qui n'existe plus.\\ |
| 62 | | Étant donné que c'est le cas de la première ligne, on va récupérer le numéro, le sens de la ligne et la station source en alternant les délimiteurs, puis on passe tout les éléments du début pour récupérer juste le nom de la station de destination.\\ |
| 63 | | Dans les autres cas, la station source devient la station destination puis on récupère juste le nom de la station de destination (en se servant des informations récupérer sur la première station de la ligne).\\ |
| 61 | On commence d'abord par supprimer les lignes qui commence par un ou plusieurs '\#', ce sont les noms de ligne et les stations qui n'existe plus. |
| 62 | Étant donné que c'est le cas de la première ligne, on va récupérer le numéro, le sens de la ligne et la station source en alternant les délimiteurs, puis on passe tout les éléments du début pour récupérer juste le nom de la station de destination. |
| 63 | |
| 64 | Dans les autres cas, la station source devient la station destination puis on récupère juste le nom de la station de destination (en se servant des informations récupérer sur la première station de la ligne). |
| 64 | 65 | On ajoute ensuite le tout dans le \texttt{HashSet} \texttt{destinations} de la station source. On retrouve dans cette construction basé sur le couple source/destination la relation entre \texttt{Station} et \texttt{Segment} sur le diagramme de classe d'origine, qui à été adapté pour simplifier la réutilisation par l'algorithme. |
| 65 | 66 | |
| 66 | 67 | \section{Package vue} |
| 67 | 68 | |
| 68 | | % Construction du menuStation |
| 69 | \subsection{Construction du menuStation} |
| 70 | |
| 71 | Le \texttt{menuStation} est l'élément qui va contenir les différentes contraintes que l'on applique à chacunes des stations du trajet. Il doit permettre de garder l'ordre des stations parcourus. Étant donné qu'en Java, les structures de type \texttt{List} ou \texttt{Set} ne conservent pas l'ordre dans lequel on ajoute les éléments. Nous avons donc décidé d'utiliser un \texttt{TreeMap} avec des index numérique qui représente l'ordre dans la station. On utilise deux constantes pour le départ et l'arrivée afin d'être sur |
| 72 | \begin{lstlisting} |
| 73 | /** |
| 74 | * Position de la station de depart |
| 75 | */ |
| 76 | private static final int DEPART = 0; |
| 77 | |
| 78 | /** |
| 79 | * Position de la station d'arrivee |
| 80 | */ |
| 81 | private static final int ARRIVEE = 9999; |
| 82 | \end{lstlisting} |
| 83 | |
| 84 | A chaque station que l'on ajoute (autre que le départ ou l'arrivée), on incrémente l'index actuel et on l'attribut à la contrainte. Les index augmentent toujours, si on retire une station on ne pourra pas réutiliser son index pour des raisons pratique, mais on conservera l'ordre car l'index des prochaines stations sera forcément supérieur. |
| 85 | \begin{lstlisting} |
| 86 | else |
| 87 | { |
| 88 | ++this.index; |
| 89 | ContrainteStation contrainte = new ContrainteStation(this, type, station, this.index); |
| 90 | |
| 91 | this.contrainteStation.put(this.index, contrainte); |
| 92 | } |
| 93 | this.refresh(); |
| 94 | \end{lstlisting} |
| 95 | |
| 96 | La méthode refresh se charge d'enlever tout les éléments du Panel et de les y replacer dans l'ordre pour être sur que le nouvel ordre est bien respecté. |
| 97 | \begin{lstlisting} |
| 98 | private void refresh() |
| 99 | { |
| 100 | this.removeAll(); |
| 101 | for(ContrainteStation contrainte : this.contrainteStation.values()) |
| 102 | this.add(contrainte); |
| 103 | this.updateUI(); |
| 104 | } |
| 105 | |
| 106 | \end{lstlisting} |
| 107 | |
| 108 | |
| 69 | 109 | % Construction de la requête (event) |
| 70 | 110 | |
| 71 | 111 | \section{Package controleur} |