diff --git a/DEV.1.1/CM2/CM2B/1.Décomposition.c b/DEV.1.1/CM2/CM2B/1.Décomposition.c deleted file mode 100644 index 631afd6..0000000 --- a/DEV.1.1/CM2/CM2B/1.Décomposition.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include -#include - -int main(int argc, char *argv[]) { - long int x, y; - ldiv_t result; - - sscanf(argv[1], "%ld", &x); - sscanf(argv[2], "%ld", &y); - - result = ldiv(x, y); - printf("quotient : %ld\n", result.quot); - printf("reste : %ld\n", result.rem); - - return EXIT_SUCCESS; -} diff --git a/DEV.1.1/Débogueur/doubleur.c b/DEV.1.1/Débogueur/doubleur.c new file mode 100644 index 0000000..d3e91cc --- /dev/null +++ b/DEV.1.1/Débogueur/doubleur.c @@ -0,0 +1,16 @@ +#include +#include + +int somme(int n, int m) { + return n+m; +} + +int main(void) { + int valeur; + int* p = NULL; + printf("Entrez un entier : "); + scanf("%d", p); + + printf("Le double vaut %d\n", somme(*p, *p)); + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/DEV.1.1/Piles_et_Files/1.Chainée.c b/DEV.1.1/Piles_et_Files/1.Chainée.c index 0577197..12643ce 100644 --- a/DEV.1.1/Piles_et_Files/1.Chainée.c +++ b/DEV.1.1/Piles_et_Files/1.Chainée.c @@ -1,6 +1,14 @@ #include #include +typedef struct { + char tab[50]; + int indice_debut; + int indice_fin; + int taille; +} pile; + + struct maillon_s { char valeurs; struct maillon_s* suivant; diff --git a/DEV.2.1/CM-blanc/CM-1/2.Morpion/Configuration.java b/DEV.2.1/CM-blanc/CM-1/2.Morpion/Configuration.java index 99f75f8..0f8991d 100644 --- a/DEV.2.1/CM-blanc/CM-1/2.Morpion/Configuration.java +++ b/DEV.2.1/CM-blanc/CM-1/2.Morpion/Configuration.java @@ -1,27 +1,43 @@ public class Configuration { - private char[9] grille; + private char[] grille; /* On veut que chaque case soit un x ou un o et que si elle est vide alors n la première case est 1 la deuxième 2, etc... */ public Configuration() { - this.grille = {'n','n','n','n','n','n','n','n','n'}; + this.grille = new char[]{'n','n','n','n','n','n','n','n','n'}; } - public static int estLibre(int posGrille) { - if(this.grille[posGrille-1] == 'n') { - return true; - } + public boolean estLibre(int posGrille) { + if (posGrille < 1 || posGrille > 9) { + throw new IllegalArgumentException("La position doit être entre 1 et 9."); + } + return this.grille[posGrille - 1] == 'n'; } public void jouer(int position, char joueur) { - if(joueur == 'x') { - this.grille[position-1] = 'x'; - } else if(joueur == 'o') { - this.grille[position-1] = 'o'; - } - } + if (position < 1 || position > 9) { + throw new IllegalArgumentException("La position doit être entre 1 et 9."); + } + if (joueur != 'x' && joueur != 'o') { + throw new IllegalArgumentException("Le joueur doit être 'x' ou 'o'."); + } + if (!estLibre(position)) { + throw new IllegalArgumentException("Cette case est déjà occupée."); + } + this.grille[position - 1] = joueur; + + } + + public void afficherGrille() { + for (int i = 0; i < 9; i++) { + System.out.print(this.grille[i] + " "); + if ((i + 1) % 3 == 0) { + System.out.println(); + } + } + } } \ No newline at end of file diff --git a/DEV.2.1/CM-blanc/CM-1/2.Morpion/Main.java b/DEV.2.1/CM-blanc/CM-1/2.Morpion/Main.java index e69de29..5f7c25c 100644 --- a/DEV.2.1/CM-blanc/CM-1/2.Morpion/Main.java +++ b/DEV.2.1/CM-blanc/CM-1/2.Morpion/Main.java @@ -0,0 +1,38 @@ +public class Main { + public static void main(String[] args) { + Configuration jeu = new Configuration(); + + // Affichage de la grille initiale + jeu.afficherGrille(); + System.out.println(); + + // Test de estLibre + System.out.println("Case 1 libre ? " + jeu.estLibre(1)); // true + + // Test de jouer + jeu.jouer(1, 'x'); + jeu.afficherGrille(); + System.out.println("Case 1 libre ? " + jeu.estLibre(1)); // false + + // Test de jouer sur une case occupée + try { + jeu.jouer(1, 'o'); // Doit lever une exception + } catch (Exception e) { + System.out.println(e.getMessage()); + } + + // Test de jouer avec une position invalide + try { + jeu.jouer(10, 'x'); // Doit lever une exception + } catch (Exception e) { + System.out.println(e.getMessage()); + } + + // Test de jouer avec un mauvais symbole + try { + jeu.jouer(2, 'z'); // Doit lever une exception + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Declinaisons.class b/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Declinaisons.class deleted file mode 100644 index e53136c..0000000 Binary files a/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Declinaisons.class and /dev/null differ diff --git a/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Declinaisons.java b/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Declinaisons.java index f4c9d03..17b19af 100644 --- a/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Declinaisons.java +++ b/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Declinaisons.java @@ -3,10 +3,11 @@ import java.awt.*; public class Declinaisons extends JComponent { - public Declinaisons(String form, String fond) { - if(inst % 2 == 0) { - secondPinceau.setColor("") - } + private Color couleurTri; + + public Declinaisons(Color couleurTri) { + super(); + this.couleurTri = couleurTri; } @Override diff --git a/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Fenetre.class b/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Fenetre.class deleted file mode 100644 index 0a4f839..0000000 Binary files a/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Fenetre.class and /dev/null differ diff --git a/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Fenetre.java b/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Fenetre.java index 2a80612..37e24ea 100644 --- a/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Fenetre.java +++ b/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Fenetre.java @@ -8,6 +8,16 @@ public class Fenetre extends JFrame { this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(500,500); this.setLocation(500,250); + + JPanel[] panneaux = {new JPanel(), new JPanel(), new JPanel(), new JPanel()}; + Color[] couleursTriangles = {Color.MAGENTA, Color.YELLOW, Color.CYAN, Color.BLUE}; + Color[] couleursFonds = {Color.CYAN, Color.PINK, Color.MAGENTA, Color.YELLOW}; + for (int i = 0; i != 4; i++) { + panneaux[i].setBackground(couleursFonds[i]); + panneaux[i].setLayout(new BorderLayout()); + panneaux[i].add(new Declinaisons(couleursTriangles[i]), BorderLayout.CENTER); + fenetre.add(panneaux[i]); + } } } \ No newline at end of file diff --git a/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Main.class b/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Main.class deleted file mode 100644 index 967f2e0..0000000 Binary files a/DEV.2.1/CM-blanc/CM-1/3.Declinaisons/Main.class and /dev/null differ diff --git a/DEV.2.1/CM-blanc/CM-1/4.Acharnements/Acharnement.java b/DEV.2.1/CM-blanc/CM-1/4.Acharnements/Acharnement.java new file mode 100644 index 0000000..f75fcbe --- /dev/null +++ b/DEV.2.1/CM-blanc/CM-1/4.Acharnements/Acharnement.java @@ -0,0 +1,21 @@ +import java.awt.*; +import javax.swing.*; +import java.awt.event.*; + +public class Acharnement extends WindowAdapter{ + + private int compteur; + + public Acharnement() { + this.compteur = 0; + } + @Override + public void windowClosing(WindowEvent evenement) { + if (this.compteur == 2) { + System.exit(0); + } + else { + this.compteur++; + } + } +} \ No newline at end of file diff --git a/DEV.2.1/CM-blanc/CM-1/4.Acharnements/AcharnementMain.java b/DEV.2.1/CM-blanc/CM-1/4.Acharnements/AcharnementMain.java new file mode 100644 index 0000000..16e4f78 --- /dev/null +++ b/DEV.2.1/CM-blanc/CM-1/4.Acharnements/AcharnementMain.java @@ -0,0 +1,14 @@ +import java.awt.*; +import javax.swing.*; + +public class AcharnementMain { + public static void main(String[] args) { + JFrame fenetre = new JFrame(); + fenetre.setSize(300, 200); + fenetre.setLocation(100, 100); + fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); + + fenetre.addWindowListener(new Acharnement()); + fenetre.setVisible(true); + } +} \ No newline at end of file diff --git a/DEV.2.1/CM-blanc/CM-1/Duplication.java b/DEV.2.1/CM-blanc/CM-1/Duplication.java deleted file mode 100644 index 2b42f59..0000000 --- a/DEV.2.1/CM-blanc/CM-1/Duplication.java +++ /dev/null @@ -1,11 +0,0 @@ -import java.util.Arrays; - -public class Duplication { - public static void main(String[] args) { - double[] tableau = new double[10]; - - Arrays.fill(tableau, 5.8); - - System.out.println(Arrays.toString(tableau)); - } -} diff --git a/DEV.2.1/CM1/ex1/Filtre.java b/DEV.2.1/CM1/ex1/Filtre.java new file mode 100644 index 0000000..1568b4c --- /dev/null +++ b/DEV.2.1/CM1/ex1/Filtre.java @@ -0,0 +1,22 @@ +/*Emmanuel SRIVASTAVA-TIAMZON*/ + +public class Filtre { + + private String[] chaine; + private String[] newChaine; + + public Filtre(String[] chaine) { + this.chaine = chaine; + } + + public String filtrage(String[] chaine) { + for(int i = 0;i != this.chaine.length(); i++) { + if(chaine[i].isLowerCase()) { + this.newChaine += chaine[i]; + } + } + return this.newChaine; + } + +} + diff --git a/DEV.2.1/CM1/ex1/FiltreII.java b/DEV.2.1/CM1/ex1/FiltreII.java new file mode 100644 index 0000000..d5b3a15 --- /dev/null +++ b/DEV.2.1/CM1/ex1/FiltreII.java @@ -0,0 +1,13 @@ +/*Emmanuel SRIVASTAVA-TIAMZON*/ + +public class FiltreII { + public static void main(String[] args) { + for(int i = 0;i != args.length(); i++) { + if(args[i].isLowerCase() || é || è || à || ù || ç){ + System.out.print(args[i]); + } + if (args[i].isWhitespace()) { + System.out.println(""); + } + } +} \ No newline at end of file diff --git a/DEV.2.1/CM1/ex2/Excquis.java b/DEV.2.1/CM1/ex2/Excquis.java new file mode 100644 index 0000000..bce21b0 --- /dev/null +++ b/DEV.2.1/CM1/ex2/Excquis.java @@ -0,0 +1,16 @@ +/*Emmanuel SRIVASTAVA-TIAMZON*/ + +public class Excquis { + private String[] tab; + + public Excquis(String[] tab) { + this.tab = tab; + } + + public String toString(String[] randomTab) { + indiceRandom = nextInt(this.tab.length()); + + for(this.tab[indiceRandom] : + + } +} \ No newline at end of file diff --git a/DEV.2.1/CM1/ex2/Main.java b/DEV.2.1/CM1/ex2/Main.java new file mode 100644 index 0000000..ee131e9 --- /dev/null +++ b/DEV.2.1/CM1/ex2/Main.java @@ -0,0 +1,7 @@ +/*Emmanuel SRIVASTAVA-TIAMZON*/ + +public class Main { + public static void main(String[] args) { + Excquis phraseI = new Excquis("John Mary Jack", "embrasse épouse tue", "chien voisin facteur", "le"); + } +} \ No newline at end of file diff --git a/DEV.2.1/CM1/ex3/Compteurs.class b/DEV.2.1/CM1/ex3/Compteurs.class new file mode 100644 index 0000000..0f6dc16 Binary files /dev/null and b/DEV.2.1/CM1/ex3/Compteurs.class differ diff --git a/DEV.2.1/CM1/ex3/Compteurs.java b/DEV.2.1/CM1/ex3/Compteurs.java new file mode 100644 index 0000000..2c88a1a --- /dev/null +++ b/DEV.2.1/CM1/ex3/Compteurs.java @@ -0,0 +1,27 @@ +/*Emmanuel SRIVASTAVA-TIAMZON*/ + +import javax.swing.*; +import java.awt.*; + +public class Compteurs extends JComponent { + + private Image img; + + public Compteurs() { + super(); + this.img = Toolkit.getDefaultToolkit().getImage("img.png"); + } + + @Override + protected void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + + if (this.isOpaque()) { + secondPinceau.setColor(this.getBackground()); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + secondPinceau.setColor(this.getForeground()); + + secondPinceau.drawImage(this.img, this.getWidth()/2, this.getHeight()/2, this); +} +} \ No newline at end of file diff --git a/DEV.2.1/CM1/ex3/Fenetre.class b/DEV.2.1/CM1/ex3/Fenetre.class new file mode 100644 index 0000000..21241f3 Binary files /dev/null and b/DEV.2.1/CM1/ex3/Fenetre.class differ diff --git a/DEV.2.1/CM1/ex3/Fenetre.java b/DEV.2.1/CM1/ex3/Fenetre.java new file mode 100644 index 0000000..9ba3d08 --- /dev/null +++ b/DEV.2.1/CM1/ex3/Fenetre.java @@ -0,0 +1,28 @@ +/*Emmanuel SRIVASTAVA-TIAMZON*/ + +import java.awt.*; +import javax.swing.*; + +public class Fenetre extends JFrame { + public Fenetre() { + super("Compteurs"); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setSize(500,500); + this.setLocation(500,250); + + Compteurs image6 = new Compteurs(); + this.add(image6); + + JButton up = new JButton("up"); + up.setSize(50,50); + up.setLocation(this.getWidth()/2, this.getHeight()/4); + + JButton down = new JButton("down"); + down.setSize(50,50); + down.setLocation(this.getWidth()/2, this.getHeight()*4); + + this.add(up); + this.add(down); + + } +} \ No newline at end of file diff --git a/DEV.2.1/CM1/ex3/Main.class b/DEV.2.1/CM1/ex3/Main.class new file mode 100644 index 0000000..287b51d Binary files /dev/null and b/DEV.2.1/CM1/ex3/Main.class differ diff --git a/DEV.2.1/CM1/ex3/Main.java b/DEV.2.1/CM1/ex3/Main.java new file mode 100644 index 0000000..aeb314e --- /dev/null +++ b/DEV.2.1/CM1/ex3/Main.java @@ -0,0 +1,8 @@ +/*Emmanuel SRIVASTAVA-TIAMZON*/ +public class Main { + public static void main(String[] args) { + Fenetre fenetre = new Fenetre(); + fenetre.setVisible(true); + + } +} \ No newline at end of file diff --git a/DEV.2.1/CM1/ex3/img.png b/DEV.2.1/CM1/ex3/img.png new file mode 100644 index 0000000..0ff21d3 Binary files /dev/null and b/DEV.2.1/CM1/ex3/img.png differ diff --git a/DEV.2.1/TP/TP9-Event..suite/1./Volume.java b/DEV.2.1/CM1/ex4/Illumination.java similarity index 58% rename from DEV.2.1/TP/TP9-Event..suite/1./Volume.java rename to DEV.2.1/CM1/ex4/Illumination.java index d7e39d0..f9ab51e 100644 --- a/DEV.2.1/TP/TP9-Event..suite/1./Volume.java +++ b/DEV.2.1/CM1/ex4/Illumination.java @@ -1,14 +1,19 @@ +/*Emmanuel SRIVASTAVA-TIAMZON*/ + import javax.swing.*; import java.awt.*; -public class Volume extends JComponent { - private int niveau = 5; +public class Illumination extends JComponent { - public Volume() { + private int niveau; + private JPanel panel; + + public Illumination(int niveau) { super(); + this.niveau = niveau; } - public setNiveau(int newNiveau) { + public int setNiveau(int newNiveau) { if (newNiveau < 0) { this.niveau = 0; } else if (newNiveau > 10) { @@ -30,7 +35,13 @@ public class Volume extends JComponent { secondPinceau.setColor(this.getBackground); secondPinceau.fillRect(0,0,this.getWidth(),this.getHeight()); } - secondPinceau.setBackground(Color.BLUE); + + this.panel.setBackground(Color.BLACK); + if(this.niveau >= 0) { + this.panel.setBackground(Color.WHITE); + } else { + this.panel.setBackground(Color.BLACK); + } } } \ No newline at end of file diff --git a/DEV.2.1/TP/TP9-Event..suite/1./Mafenetre.java b/DEV.2.1/CM1/ex4/Mafenetre.java similarity index 68% rename from DEV.2.1/TP/TP9-Event..suite/1./Mafenetre.java rename to DEV.2.1/CM1/ex4/Mafenetre.java index 07a1bf1..0a15559 100644 --- a/DEV.2.1/TP/TP9-Event..suite/1./Mafenetre.java +++ b/DEV.2.1/CM1/ex4/Mafenetre.java @@ -4,13 +4,13 @@ import java.awt.*; public class Mafenetre extends JFrame { public Mafenetre() { - super("Volume"); + super("Illumination"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(697,156); this.setLocation(500,250); - Volume volume = new Volume(); - this.add(volume); + Illumination illumination = new Illumination(5); + this.add(illumination); } } \ No newline at end of file diff --git a/DEV.2.1/TP/TP9-Event..suite/1./MainVolume.java b/DEV.2.1/CM1/ex4/Main.java similarity index 86% rename from DEV.2.1/TP/TP9-Event..suite/1./MainVolume.java rename to DEV.2.1/CM1/ex4/Main.java index fcad058..92f8889 100644 --- a/DEV.2.1/TP/TP9-Event..suite/1./MainVolume.java +++ b/DEV.2.1/CM1/ex4/Main.java @@ -1,7 +1,7 @@ import javax.swing.*; import java.awt.*; -public class MainVolume { +public class Main { public static void main(String[] args) { Mafenetre fenetre = new Mafenetre(); fenetre.setVisible(true); diff --git a/DEV.2.1/TP/TP9-Event..suite/1./MouseWheel.java b/DEV.2.1/CM1/ex4/MouseWheel.java similarity index 61% rename from DEV.2.1/TP/TP9-Event..suite/1./MouseWheel.java rename to DEV.2.1/CM1/ex4/MouseWheel.java index e1d2248..65cdfd3 100644 --- a/DEV.2.1/TP/TP9-Event..suite/1./MouseWheel.java +++ b/DEV.2.1/CM1/ex4/MouseWheel.java @@ -1,3 +1,5 @@ +/*Emmanuel SRIVASTAVA-TIAMZON*/ + import javax.swing.*; import java.awt.event.*; import java.awt.*; @@ -10,7 +12,13 @@ public class MouseWheel implements MouseWheelListener { @Override public void mouseWheelMoved(MouseWheelEvent evenement) { - + + if(evenement.getWheelRotation() < 0) { + this.newNiveau(evenement); + }else { + this.newNiveau(evenement); + } + } } \ No newline at end of file diff --git a/DEV.2.1/CM1/srivasta_CM1.tar.gz b/DEV.2.1/CM1/srivasta_CM1.tar.gz new file mode 100644 index 0000000..4828c48 Binary files /dev/null and b/DEV.2.1/CM1/srivasta_CM1.tar.gz differ diff --git a/DEV.2.1/TP/TP10-Exceptions/1./MainArithmetic.class b/DEV.2.1/TP/TP10-Exceptions/1./MainArithmetic.class new file mode 100644 index 0000000..1753027 Binary files /dev/null and b/DEV.2.1/TP/TP10-Exceptions/1./MainArithmetic.class differ diff --git a/DEV.2.1/TP/TP10-Exceptions/1./MainArithmetic.java b/DEV.2.1/TP/TP10-Exceptions/1./MainArithmetic.java index 4eb7783..a90d21a 100644 --- a/DEV.2.1/TP/TP10-Exceptions/1./MainArithmetic.java +++ b/DEV.2.1/TP/TP10-Exceptions/1./MainArithmetic.java @@ -1,6 +1,5 @@ -public class MainArtihmetic { - public void main(String[] args) { - String truc = "abc"; - System.out.println(Integer.parse.Int(truc)); +public class MainArithmetic { + public static void main(String[] args) { + System.out.println(15/0); } } \ No newline at end of file diff --git a/DEV.2.1/TP/TP10-Exceptions/2./Capture.java b/DEV.2.1/TP/TP10-Exceptions/2./Capture.java new file mode 100644 index 0000000..2ac332a --- /dev/null +++ b/DEV.2.1/TP/TP10-Exceptions/2./Capture.java @@ -0,0 +1,15 @@ +public class Capture { + + public static int ArithmeticPB(int val) { + return val/0; + } + + public static void main(String[] args) { + try { + int res = ArithmeticPB(5); + System.out.println(res); + } catch(ArithmeticException e) { + System.err.println("cannot divide by 0"); + } + } +} diff --git a/DEV.2.1/TP/TP10-Exceptions/3./Incomplet.class b/DEV.2.1/TP/TP10-Exceptions/3./Incomplet.class new file mode 100644 index 0000000..4b17043 Binary files /dev/null and b/DEV.2.1/TP/TP10-Exceptions/3./Incomplet.class differ diff --git a/DEV.2.1/TP/TP10-Exceptions/3./Incomplet.java b/DEV.2.1/TP/TP10-Exceptions/3./Incomplet.java new file mode 100644 index 0000000..67b8b8e --- /dev/null +++ b/DEV.2.1/TP/TP10-Exceptions/3./Incomplet.java @@ -0,0 +1,6 @@ +public class Incomplet { + public static void main(String[] args) { + byte[] txt = {0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x0D, 0x0A}; + System.out.print(new String(txt)); + } +} diff --git a/DEV.2.1/TP/TP10-Exceptions/5./Conversion.java b/DEV.2.1/TP/TP10-Exceptions/5./Conversion.java new file mode 100644 index 0000000..c50f39e --- /dev/null +++ b/DEV.2.1/TP/TP10-Exceptions/5./Conversion.java @@ -0,0 +1,9 @@ +public class Conversion { + public static double celsiusAFahrenheit(double n) { + return n*9/5+32; + } + + public static double FahrenheitACelsius(double n) { + return (n-32)*5/9; + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP10-Exceptions/5./Degres.java b/DEV.2.1/TP/TP10-Exceptions/5./Degres.java new file mode 100644 index 0000000..57f7b38 --- /dev/null +++ b/DEV.2.1/TP/TP10-Exceptions/5./Degres.java @@ -0,0 +1,38 @@ +import java.awt.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; + +public class Degres extends JComponent { + + @Override + public void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + + if (this.isOpaque()) { + secondPinceau.setColor(this.getBackground()); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + + secondPinceau.setColor(Color.ORANGE); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + + JTextField celsius = new JTextField(); + JTextField fahrenheit = new JTextField(); + celsius.setBounds(0, 65, 160, 20); + fahrenheit.setBounds(0, 90, 160, 20); + + JLabel texteCelsius = new JLabel("°C"); + JLabel texteFahrenheit = new JLabel("°F"); + texteCelsius.setBounds(165, 65, 20, 20); + texteFahrenheit.setBounds(165, 90, 20, 20); + + celsius.getDocument().addDocumentListener(new GestionJTextField(celsius, fahrenheit, true)); + fahrenheit.getDocument().addDocumentListener(new GestionJTextField(fahrenheit, celsius, false)); + + this.add(celsius); + this.add(fahrenheit); + this.add(texteCelsius); + this.add(texteFahrenheit); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP10-Exceptions/5./GestionJTextField.java b/DEV.2.1/TP/TP10-Exceptions/5./GestionJTextField.java new file mode 100644 index 0000000..ab07d64 --- /dev/null +++ b/DEV.2.1/TP/TP10-Exceptions/5./GestionJTextField.java @@ -0,0 +1,46 @@ +import java.awt.event.*; +import java.awt.*; +import javax.swing.*; +import javax.swing.event.*; + +public class GestionJTextField implements DocumentListener { + + + private JTextField aConvertir; + private JTextField convertirVers; + private boolean cToF; + + public GestionJTextField(JTextField aConvertir, JTextField convertirVers, boolean cToF) { + this.aConvertir = aConvertir; + this.convertirVers = convertirVers; + this.cToF = cToF; + } + + + public void changedUpdate(DocumentEvent e) { + } + + + public void insertUpdate(DocumentEvent e) { + try { + if (this.cToF) { + this.convertirVers.setText(Conversion.celsiusAFahrenheit(Double.parseDouble(this.aConvertir.getText())) + ""); + } + else { + this.convertirVers.setText(Conversion.FahrenheitACelsius(Double.parseDouble(this.aConvertir.getText())) + ""); + } + } catch (NumberFormatException e2) { + try { + this.convertirVers.setText("???"); + } catch (IllegalStateException ee) { + } + } catch (IllegalStateException e3) { + } finally { + this.convertirVers.repaint(); + } + } + + + public void removeUpdate(DocumentEvent e) { + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP11-Flux-octets/1./Fenetre.java b/DEV.2.1/TP/TP11-Flux-octets/1./Fenetre.java new file mode 100644 index 0000000..8b516e4 --- /dev/null +++ b/DEV.2.1/TP/TP11-Flux-octets/1./Fenetre.java @@ -0,0 +1,12 @@ +import java.awt.*; +import javax.swing.*; + +public class Fenetre extends JFrame { + public Fenetre() { + this.setSize(768, 1024); + this.setLocation(100, 100); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setLayout(new GridLayout(1, 1)); + this.add(new Image()); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP11-Flux-octets/1./Image.java b/DEV.2.1/TP/TP11-Flux-octets/1./Image.java new file mode 100644 index 0000000..0c09060 --- /dev/null +++ b/DEV.2.1/TP/TP11-Flux-octets/1./Image.java @@ -0,0 +1,19 @@ +import java.awt.*; +import javax.swing.*; +import java.io.*; + +public class Image extends JComponent { + @Override + public void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + Color couleur; + + if (this.isOpaque()) { + secondPinceau.setColor(this.getBackground()); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + + secondPinceau.drawImage(new LectureFichier().getImage(), 0, 0, this); + + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP11-Flux-octets/1./LectureFichier.java b/DEV.2.1/TP/TP11-Flux-octets/1./LectureFichier.java new file mode 100644 index 0000000..520ab8d --- /dev/null +++ b/DEV.2.1/TP/TP11-Flux-octets/1./LectureFichier.java @@ -0,0 +1,52 @@ +import java.awt.*; +import java.io.*; +import java.awt.image.BufferedImage; + +public class LectureFichier { + + private BufferedImage image; + + public LectureFichier() { + this.image = new BufferedImage(768, 1024, BufferedImage.TYPE_3BYTE_BGR); + int r; + int g; + int b; + int i = 0; + int j = 0; + Color couleur; + + try { + FileInputStream fichier = new FileInputStream("couleur.bin"); + + while(fichier.available() >= 3) { + try { + r = fichier.read(); + g = fichier.read(); + b = fichier.read(); + couleur = new Color(r, g, b); + this.image.setRGB(i, j, couleur.getRGB()); + i++; + if (i >= 768) { + j++; + i = 0; + } + } catch (IOException e2) { + System.out.println("Erreur d'accès"); + } + } + + try { + fichier.close(); + } catch (IOException e3) { + System.out.println("Erreur de fermeture"); + } + } catch (IOException e1) { + System.out.println("Erreur d'ouverture"); + } + } + + public BufferedImage getImage() { + return this.image; + } + +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP11-Flux-octets/1./Main.java b/DEV.2.1/TP/TP11-Flux-octets/1./Main.java new file mode 100644 index 0000000..2768c3d --- /dev/null +++ b/DEV.2.1/TP/TP11-Flux-octets/1./Main.java @@ -0,0 +1,6 @@ +public class Main { + public static void main(String[] args) { + Fenetre fenetre = new Fenetre(); + fenetre.setVisible(true); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP11-Flux-octets/1./couleur.bin b/DEV.2.1/TP/TP11-Flux-octets/1./couleur.bin new file mode 100644 index 0000000..2d10628 Binary files /dev/null and b/DEV.2.1/TP/TP11-Flux-octets/1./couleur.bin differ diff --git a/DEV.2.1/TP/TP11-Flux-octets/1./image.bin b/DEV.2.1/TP/TP11-Flux-octets/1./image.bin new file mode 100644 index 0000000..1bf996b Binary files /dev/null and b/DEV.2.1/TP/TP11-Flux-octets/1./image.bin differ diff --git a/DEV.2.1/TP/TP11-Flux-octets/2./FermetureFenetre.java b/DEV.2.1/TP/TP11-Flux-octets/2./FermetureFenetre.java new file mode 100644 index 0000000..35d09ce --- /dev/null +++ b/DEV.2.1/TP/TP11-Flux-octets/2./FermetureFenetre.java @@ -0,0 +1,99 @@ +import java.awt.*; +import java.awt.event.*; +import java.io.*; +import java.awt.event.WindowListener; +import java.awt.event.WindowEvent; +import javax.swing.*; + +public class FermetureFenetre implements WindowListener { + + private int fenetreX; + private int fenetreY; + private JFrame fenetre; + + public FermetureFenetre(JFrame fenetre) { + super(); + this.fenetre = fenetre; + this.fenetreX = 300; + this.fenetreY = 200; + } + + public void windowActivated(WindowEvent evenement) { + + } // premier plan + + public void windowClosed(WindowEvent evenement) { + + } + public void windowClosing(WindowEvent evenement) { + try { + Dimension dims = this.fenetre.getSize(); + FileOutputStream fichier = new FileOutputStream("windowlocation.bin"); + DataOutputStream flux = new DataOutputStream(fichier); + + try { + flux.writeInt((int) dims.getWidth()); + flux.writeInt((int) dims.getHeight()); + } catch (IOException e2){ + System.out.println("Erreur d'écriture"); + } + + try { + flux.close(); + } catch (IOException e3) { + System.out.println("Erreur de fermeture"); + } + } catch (IOException e) { + System.out.println("Erreur d'ouverture"); + } + } // avant fermeture + + public void windowDeactivated(WindowEvent evenement) { + + } // arrière-plan + + public void windowDeiconified(WindowEvent evenement) { + + } // restauration + + public void windowIconified(WindowEvent evenement){ + + } // minimisation + + public void windowOpened(WindowEvent evenement) { + try { + FileInputStream fichier = new FileInputStream("windowlocation.bin"); + DataInputStream flux = new DataInputStream(fichier); + + try { + + if (flux.available() >= 8) { + this.fenetreX = flux.readInt(); + this.fenetreY = flux.readInt(); + this.fenetre.setSize(this.fenetreX, this.fenetreY); + } + + + } catch (IOException e5) { + System.out.println("Erreur de lecture"); + } + + try { + flux.close(); + } catch (IOException e6) { + System.out.println("Erreur de fermeture"); + } + + } catch (IOException e4) { + System.out.println("Erreur d'ouverture"); + } + } + + public int getX() { + return this.fenetreX; + } + + public int getY() { + return this.fenetreY; + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP11-Flux-octets/2./Fond.java b/DEV.2.1/TP/TP11-Flux-octets/2./Fond.java new file mode 100644 index 0000000..98ff5be --- /dev/null +++ b/DEV.2.1/TP/TP11-Flux-octets/2./Fond.java @@ -0,0 +1,46 @@ +import java.awt.*; +import javax.swing.*; +import java.awt.event.ActionListener; +import java.awt.event.ActionEvent; + +public class Fond { + public static void main(String[] args) { + JFrame fenetre = new JFrame(); + FermetureFenetre evenementFenetre = new FermetureFenetre(fenetre); + fenetre.addWindowListener(evenementFenetre); + fenetre.setLocation(100,100); + fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + fenetre.setLayout(new GridLayout(1, 1)); + + JPanel panneau = new JPanel(); + + JButton bouton1 = new JButton("Cyan"); + JButton bouton2 = new JButton("Magenta"); + JButton bouton3 = new JButton("Jaune"); + + bouton1.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evenement) { + panneau.setBackground(Color.CYAN); + } + }); + + bouton2.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evenement) { + panneau.setBackground(Color.MAGENTA); + } + }); + + bouton3.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evenement) { + panneau.setBackground(Color.YELLOW); + } + }); + + panneau.add(bouton1); + panneau.add(bouton2); + panneau.add(bouton3); + + fenetre.add(panneau); + fenetre.setVisible(true); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP11-Flux-octets/2./windowlocation.bin b/DEV.2.1/TP/TP11-Flux-octets/2./windowlocation.bin new file mode 100644 index 0000000..48eb4ee Binary files /dev/null and b/DEV.2.1/TP/TP11-Flux-octets/2./windowlocation.bin differ diff --git a/DEV.2.1/TP/TP11-Flux-octets/3./EcritureFichier.class b/DEV.2.1/TP/TP11-Flux-octets/3./EcritureFichier.class new file mode 100644 index 0000000..fe059ec Binary files /dev/null and b/DEV.2.1/TP/TP11-Flux-octets/3./EcritureFichier.class differ diff --git a/DEV.2.1/TP/TP11-Flux-octets/3./EcritureFichier.java b/DEV.2.1/TP/TP11-Flux-octets/3./EcritureFichier.java new file mode 100644 index 0000000..64321fd --- /dev/null +++ b/DEV.2.1/TP/TP11-Flux-octets/3./EcritureFichier.java @@ -0,0 +1,108 @@ +import java.awt.*; +import java.io.*; + +public class EcritureFichier { + + private int r; + private int g; + private int b; + + private int r2; + private int g2; + private int b2; + + public EcritureFichier(int r, int g, int b) { + this.r = r; + this.g = g; + this.b = b; + + try { + FileOutputStream fichier = new FileOutputStream("couleur.bin"); + System.out.println(r + " " + g + " " + b); + try { + for (int i = 0; i != 768; i++) { + for (int j = 0; j != 1024; j++) { + fichier.write(r); + fichier.write(g); + fichier.write(b); + } + } + } catch (IOException e2) { + System.out.println("Erreur d'écriture"); + } + + try { + fichier.close(); + } catch (IOException e3) { + System.out.println("Erreur de fermeture"); + } + + } catch (IOException e) { + System.out.println("Erreur d'ouverture"); + } + } + + public EcritureFichier(int r, int g, int b, int r2, int g2, int b2) { + this.r = r; + this.g = g; + this.b = b; + this.r2 = r2; + this.g2 = g2; + this.b2 = b2; + + try { + FileOutputStream fichier = new FileOutputStream("couleur.bin"); + int choixR = r; + int choixG = g; + int choixB = b; + + try { + for (int l = 0; l != 8; l++) { + for (int k = 0; k != 8; k++) { + for (int i = 0; i != 768/8; i++) { + for (int j = 0; j != 1024/8; j++) { + fichier.write(choixR); + fichier.write(choixG); + fichier.write(choixB); + } + if (choixR == r) { + choixR = r2; + choixG = g2; + choixB = b2; + } + else { + choixR = r; + choixG = g; + choixB = b; + } + } + } + if (choixR == r) { + choixR = r2; + choixG = g2; + choixB = b2; + } + else { + choixR = r; + choixG = g; + choixB = b; + } + } + } catch (IOException e2) { + System.out.println("Erreur d'écriture"); + } + + try { + fichier.close(); + } catch (IOException e3) { + System.out.println("Erreur de fermeture"); + } + + } catch (IOException e) { + System.out.println("Erreur d'ouverture"); + } + + } + + +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP11-Flux-octets/3./Main.class b/DEV.2.1/TP/TP11-Flux-octets/3./Main.class new file mode 100644 index 0000000..645e0bf Binary files /dev/null and b/DEV.2.1/TP/TP11-Flux-octets/3./Main.class differ diff --git a/DEV.2.1/TP/TP11-Flux-octets/3./Main.java b/DEV.2.1/TP/TP11-Flux-octets/3./Main.java new file mode 100644 index 0000000..ebf561d --- /dev/null +++ b/DEV.2.1/TP/TP11-Flux-octets/3./Main.java @@ -0,0 +1,21 @@ +public class Main { + public static void main(String[] args) { + String chaineCouleur = args[0].replaceAll("#", ""); + Integer r = Integer.valueOf(Integer.parseInt(chaineCouleur.substring(0, 2), 16)); + Integer g = Integer.valueOf(Integer.parseInt(chaineCouleur.substring(2, 4), 16)); + Integer b = Integer.valueOf(Integer.parseInt(chaineCouleur.substring(4, 6), 16)); + + if (args.length == 1) { + EcritureFichier ecriture = new EcritureFichier(r, g, b); + } + + else if (args.length == 2) { + String chaineCouleur2 = args[1].replaceAll("#", ""); + Integer r2 = Integer.valueOf(Integer.parseInt(chaineCouleur2.substring(0, 2), 16)); + Integer g2 = Integer.valueOf(Integer.parseInt(chaineCouleur2.substring(2, 4), 16)); + Integer b2 = Integer.valueOf(Integer.parseInt(chaineCouleur2.substring(4, 6), 16)); + System.out.println(r + "," + g + "," + b + " | " + r2 + "," + g2 + "," + b2); + EcritureFichier ecriture2 = new EcritureFichier(r, g, b, r2, g2, b2); + } + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/1./FermetureFenetre.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/1./FermetureFenetre.java new file mode 100644 index 0000000..d8ca91b --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/1./FermetureFenetre.java @@ -0,0 +1,97 @@ +import java.awt.*; +import java.awt.event.*; +import java.io.*; +import java.awt.event.WindowListener; +import java.awt.event.WindowEvent; +import javax.swing.*; + +public class FermetureFenetre implements WindowListener { + + private JPanel panneau; + private JFrame fenetre; + + public FermetureFenetre(JFrame fenetre, JPanel panneau) { + super(); + this.fenetre = fenetre; + this.panneau = panneau; + } + + public void windowActivated(WindowEvent evenement) { + + } // premier plan + + public void windowClosed(WindowEvent evenement) { + + } + public void windowClosing(WindowEvent evenement) { + try { + Dimension dims = this.fenetre.getSize(); + Point loc = this.fenetre.getLocation(); + Color color = this.panneau.getBackground(); + FileOutputStream fichier = new FileOutputStream("windowlocation.bin"); + DataOutputStream flux = new DataOutputStream(fichier); + + try { + flux.writeInt((int) loc.getX()); + flux.writeInt((int) loc.getY()); + flux.writeInt((int) dims.getWidth()); + flux.writeInt((int) dims.getHeight()); + flux.writeInt(color.getRed()); + flux.writeInt(color.getGreen()); + flux.writeInt(color.getBlue()); + } catch (IOException e2){ + System.out.println("Erreur d'écriture"); + } + + try { + flux.close(); + } catch (IOException e3) { + System.out.println("Erreur de fermeture"); + } + } catch (IOException e) { + System.out.println("Erreur d'ouverture"); + } + } // avant fermeture + + public void windowDeactivated(WindowEvent evenement) { + + } // arrière-plan + + public void windowDeiconified(WindowEvent evenement) { + + } // restauration + + public void windowIconified(WindowEvent evenement){ + + } // minimisation + + public void windowOpened(WindowEvent evenement) { + try { + FileInputStream fichier = new FileInputStream("windowlocation.bin"); + DataInputStream flux = new DataInputStream(fichier); + + try { + + if (flux.available() >= 28) { + this.fenetre.setLocation(flux.readInt(), flux.readInt()); + this.fenetre.setSize(flux.readInt(), flux.readInt()); + this.panneau.setBackground(new Color(flux.readInt(), flux.readInt(), flux.readInt())); + System.out.println(this.panneau.getBackground() + ""); + } + + + } catch (IOException e5) { + System.out.println("Erreur de lecture"); + } + + try { + flux.close(); + } catch (IOException e6) { + System.out.println("Erreur de fermeture"); + } + + } catch (IOException e4) { + System.out.println("Erreur d'ouverture"); + } + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/1./Fond.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/1./Fond.java new file mode 100644 index 0000000..ae69340 --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/1./Fond.java @@ -0,0 +1,46 @@ +import java.awt.*; +import javax.swing.*; +import java.awt.event.ActionListener; +import java.awt.event.ActionEvent; + +public class Fond { + public static void main(String[] args) { + JFrame fenetre = new JFrame(); + JPanel panneau = new JPanel(); + FermetureFenetre evenementFenetre = new FermetureFenetre(fenetre, panneau); + fenetre.addWindowListener(evenementFenetre); + fenetre.setLocation(100,100); + fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + fenetre.setLayout(new GridLayout(1, 1)); + + + JButton bouton1 = new JButton("Cyan"); + JButton bouton2 = new JButton("Magenta"); + JButton bouton3 = new JButton("Jaune"); + + bouton1.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evenement) { + panneau.setBackground(Color.CYAN); + } + }); + + bouton2.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evenement) { + panneau.setBackground(Color.MAGENTA); + } + }); + + bouton3.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evenement) { + panneau.setBackground(Color.YELLOW); + } + }); + + panneau.add(bouton1); + panneau.add(bouton2); + panneau.add(bouton3); + + fenetre.add(panneau); + fenetre.setVisible(true); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/1./windowlocation.bin b/DEV.2.1/TP/TP12-Flux-oct-Suite/1./windowlocation.bin new file mode 100644 index 0000000..6d19765 Binary files /dev/null and b/DEV.2.1/TP/TP12-Flux-oct-Suite/1./windowlocation.bin differ diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/2./Fenetre.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/2./Fenetre.java new file mode 100644 index 0000000..5018045 --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/2./Fenetre.java @@ -0,0 +1,16 @@ +import java.awt.*; +import javax.swing.*; + +public class Fenetre extends JFrame { + + public Fenetre() { + this.setSize(500, 600); + this.setLocation(100, 100); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setLayout(new GridLayout(1, 1)); + LectureFichier lecture = new LectureFichier(); + EcritureFichier ecriture = new EcritureFichier("test", lecture.getCoordY(), lecture.getNbPoints()); + this.add(new Polygone(lecture.getCoordX(), lecture.getCoordY(), lecture.getNbPoints())); + EcritureFichier ecriture = new EcritureFichier(lecture.getCoordX(), lecture.getCoordY(), lecture.getNbPoints()); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/2./LectureFichier.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/2./LectureFichier.java new file mode 100644 index 0000000..157b990 --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/2./LectureFichier.java @@ -0,0 +1,54 @@ +import java.awt.*; +import java.io.*; + +public class LectureFichier { + + private int[] coordX; + private int[] coordY; + private int nbPoints; + + public LectureFichier() { + + try { + FileInputStream fichier = new FileInputStream("polygone.bin"); + DataInputStream flux = new DataInputStream(fichier); + + this.coordX = new int[flux.available()/8]; + this.coordY = new int[flux.available()/8]; + this.nbPoints = flux.available()/8; + + int compteur = 0; + + try { + while (flux.available() > 0) { + this.coordX[compteur] = flux.readInt(); + this.coordY[compteur] = flux.readInt(); + compteur++; + } + } catch (IOException e2) { + System.out.println("Erreur de lecture"); + } + + try { + flux.close(); + } catch (IOException e3) { + System.out.println("Erreur de fermeture"); + } + + } catch (IOException e) { + System.out.println("Erreur d'ouverture"); + } + } + + public int[] getCoordX() { + return this.coordX; + } + + public int[] getCoordY() { + return this.coordY; + } + + public int getNbPoints() { + return this.nbPoints; + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/2./Main.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/2./Main.java new file mode 100644 index 0000000..2768c3d --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/2./Main.java @@ -0,0 +1,6 @@ +public class Main { + public static void main(String[] args) { + Fenetre fenetre = new Fenetre(); + fenetre.setVisible(true); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/2./Polygone.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/2./Polygone.java new file mode 100644 index 0000000..a2c203b --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/2./Polygone.java @@ -0,0 +1,28 @@ +import java.awt.*; +import javax.swing.*; + +public class Polygone extends JComponent { + + private int[] coordX; + private int[] coordY; + private int nbPoints; + + public Polygone(int[] coordX, int[] coordY, int nbPoints) { + this.coordX = coordX; + this.coordY = coordY; + this.nbPoints = nbPoints; + } + + @Override + public void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + + if (this.isOpaque()) { + secondPinceau.setColor(this.getBackground()); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + + secondPinceau.setColor(Color.BLUE); + secondPinceau.fillPolygon(this.coordX, this.coordY, this.nbPoints); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/3./EcritureFichier.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/3./EcritureFichier.java new file mode 100644 index 0000000..98baad6 --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/3./EcritureFichier.java @@ -0,0 +1,47 @@ +import java.awt.*; +import java.io.*; + +public class EcritureFichier { + + private int[] coordX; + private int[] coordY; + private int nbPoints; + private boolean aMultiplier; + + public EcritureFichier(int[] coordX, int[] coordY, int nbPoints, boolean aMultiplier) { + this.coordX = coordX; + this.coordY = coordY; + this.nbPoints = nbPoints; + this.aMultiplier = aMultiplier; + + try { + FileOutputStream fichier = new FileOutputStream("polygone.bin"); + DataOutputStream flux = new DataOutputStream(fichier); + + try{ + for (int i = 0; i != nbPoints; i++) { + if (this.aMultiplier) { + flux.writeInt(this.coordX[i]*2); + flux.writeInt(this.coordY[i]*2); + } + else { + flux.writeInt(this.coordX[i]/2); + flux.writeInt(this.coordY[i]/2); + } + } + } catch (IOException e2) { + System.out.println("Erreur d'écriture"); + } + + try { + flux.close(); + System.out.println("Fin de l'écriture"); + } catch (IOException e3) { + System.out.println("Erreur de fermeture"); + } + + } catch (IOException e) { + System.out.println("Erreur d'ouverture"); + } + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/3./Fenetre.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/3./Fenetre.java new file mode 100644 index 0000000..1bee685 --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/3./Fenetre.java @@ -0,0 +1,15 @@ +import java.awt.*; +import javax.swing.*; + +public class Fenetre extends JFrame { + + public Fenetre(boolean aMultiplier) { + this.setSize(500, 600); + this.setLocation(100, 100); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setLayout(new GridLayout(1, 1)); + LectureFichier lecture = new LectureFichier(); + this.add(new Polygone(lecture.getCoordX(), lecture.getCoordY(), lecture.getNbPoints())); + EcritureFichier ecriture = new EcritureFichier(lecture.getCoordX(), lecture.getCoordY(), lecture.getNbPoints(), aMultiplier); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/3./LectureFichier.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/3./LectureFichier.java new file mode 100644 index 0000000..157b990 --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/3./LectureFichier.java @@ -0,0 +1,54 @@ +import java.awt.*; +import java.io.*; + +public class LectureFichier { + + private int[] coordX; + private int[] coordY; + private int nbPoints; + + public LectureFichier() { + + try { + FileInputStream fichier = new FileInputStream("polygone.bin"); + DataInputStream flux = new DataInputStream(fichier); + + this.coordX = new int[flux.available()/8]; + this.coordY = new int[flux.available()/8]; + this.nbPoints = flux.available()/8; + + int compteur = 0; + + try { + while (flux.available() > 0) { + this.coordX[compteur] = flux.readInt(); + this.coordY[compteur] = flux.readInt(); + compteur++; + } + } catch (IOException e2) { + System.out.println("Erreur de lecture"); + } + + try { + flux.close(); + } catch (IOException e3) { + System.out.println("Erreur de fermeture"); + } + + } catch (IOException e) { + System.out.println("Erreur d'ouverture"); + } + } + + public int[] getCoordX() { + return this.coordX; + } + + public int[] getCoordY() { + return this.coordY; + } + + public int getNbPoints() { + return this.nbPoints; + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/3./Main.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/3./Main.java new file mode 100644 index 0000000..9b21a3d --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/3./Main.java @@ -0,0 +1,14 @@ +public class Main { + public static void main(String[] args) { + Fenetre fenetre; + try { + if (args[0].equals("diviser")) { + fenetre = new Fenetre(false); + } + else { + fenetre = new Fenetre(true); + } + } catch (ArrayIndexOutOfBoundsException e) { + } + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP12-Flux-oct-Suite/3./Polygone.java b/DEV.2.1/TP/TP12-Flux-oct-Suite/3./Polygone.java new file mode 100644 index 0000000..a2c203b --- /dev/null +++ b/DEV.2.1/TP/TP12-Flux-oct-Suite/3./Polygone.java @@ -0,0 +1,28 @@ +import java.awt.*; +import javax.swing.*; + +public class Polygone extends JComponent { + + private int[] coordX; + private int[] coordY; + private int nbPoints; + + public Polygone(int[] coordX, int[] coordY, int nbPoints) { + this.coordX = coordX; + this.coordY = coordY; + this.nbPoints = nbPoints; + } + + @Override + public void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + + if (this.isOpaque()) { + secondPinceau.setColor(this.getBackground()); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + + secondPinceau.setColor(Color.BLUE); + secondPinceau.fillPolygon(this.coordX, this.coordY, this.nbPoints); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP13-Flux-caractere/1./Main.class b/DEV.2.1/TP/TP13-Flux-caractere/1./Main.class new file mode 100644 index 0000000..920a9d4 Binary files /dev/null and b/DEV.2.1/TP/TP13-Flux-caractere/1./Main.class differ diff --git a/DEV.2.1/TP/TP13-Flux-caractere/1./Main.java b/DEV.2.1/TP/TP13-Flux-caractere/1./Main.java new file mode 100644 index 0000000..bacc2ef --- /dev/null +++ b/DEV.2.1/TP/TP13-Flux-caractere/1./Main.java @@ -0,0 +1,50 @@ +import java.awt.*; +import java.io.*; +import java.util.Random; + +public class Main { + public static void main(String[] args) { + Random aleatoire = new Random(); + int aDeviner = aleatoire.nextInt(100) + 1; + + BufferedReader console = new BufferedReader(new InputStreamReader(System.in)); + String essai = "-1"; + + try { + System.out.println("Essai n°1 : Veuillez entrer un nombre (1 à 100) : "); + essai = console.readLine(); + } catch (IOException e) { + System.err.println("Erreur de console."); + } + try { + for (int i = 2; i != 6; i++) { + if (Integer.parseInt(essai) > aDeviner) { + System.out.println("-"); + } + + else if (Integer.parseInt(essai) == aDeviner) { + break; + } + + else { + System.out.println("+"); + } + System.out.println("Essai n°" + i + " : Veuillez entrer un nombre (1 à 100) : "); + essai = console.readLine(); + } + + if (Integer.parseInt(essai) == aDeviner) { + System.out.println("Nombre trouvé."); + } + else { + System.out.println("Nombre non trouvé après 5 essais."); + } + + + } catch (IOException e) { + System.err.println("Erreur de console."); + } catch (NumberFormatException e2) { + System.err.println("Veuillez n'entrer que des nombres."); + } + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP13-Flux-caractere/2./Fenetre.java b/DEV.2.1/TP/TP13-Flux-caractere/2./Fenetre.java new file mode 100644 index 0000000..2cf238c --- /dev/null +++ b/DEV.2.1/TP/TP13-Flux-caractere/2./Fenetre.java @@ -0,0 +1,12 @@ +import java.awt.*; +import javax.swing.*; + +public class Fenetre extends JFrame { + public Fenetre() { + this.setSize(32, 35); + this.setLocation(100, 100); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setLayout(new GridLayout(1, 1)); + this.add(new Image()); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP13-Flux-caractere/2./Image.java b/DEV.2.1/TP/TP13-Flux-caractere/2./Image.java new file mode 100644 index 0000000..f967139 --- /dev/null +++ b/DEV.2.1/TP/TP13-Flux-caractere/2./Image.java @@ -0,0 +1,13 @@ +import java.awt.*; +import javax.swing.*; + +public class Image extends JComponent { + + @Override + public void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + + LectureFichier fichier = new LectureFichier(); + secondPinceau.drawImage(fichier.getImage(), 0, 0, this); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP13-Flux-caractere/2./LectureFichier.java b/DEV.2.1/TP/TP13-Flux-caractere/2./LectureFichier.java new file mode 100644 index 0000000..24b8208 --- /dev/null +++ b/DEV.2.1/TP/TP13-Flux-caractere/2./LectureFichier.java @@ -0,0 +1,74 @@ +import java.awt.*; +import java.io.*; +import java.awt.image.BufferedImage; + +public class LectureFichier { + + private BufferedImage image; + + public LectureFichier() { + try { + BufferedReader lecture = new BufferedReader(new FileReader("image.xpm")); + + try { + for (int i = 0; i != 3; i++) { + lecture.readLine(); + } + + String infos = lecture.readLine(); + infos = infos.replaceAll("\"", ""); + String[] infosTab = infos.split(" "); + for (String info : infosTab) { + System.out.println(info); + } + this.image = new BufferedImage(Integer.parseInt(infosTab[0]), Integer.parseInt(infosTab[1]), BufferedImage.TYPE_3BYTE_BGR); + + char[] caracteres = new char[15]; + Color[] couleurs = new Color[15]; + + for (int i = 0; i != Integer.parseInt(infosTab[2]); i++) { + String ligne = lecture.readLine(); + caracteres[i] = ligne.charAt(1); + + int[] rgb = { + Integer.parseInt(ligne.substring(6,8), 16), + Integer.parseInt(ligne.substring(8,10), 16), + Integer.parseInt(ligne.substring(10,12), 16) + }; + + couleurs[i] = new Color(rgb[0], rgb[1], rgb[2]); + + } + + lecture.readLine(); + + for (int i = 0; i != Integer.parseInt(infosTab[1]); i++) { + String ligne = lecture.readLine().replaceAll("\"", ""); + ligne = ligne.substring(0, ligne.length()-1); + + for (int j = 0; j != ligne.length(); j++) { + for (int k = 0; k != caracteres.length; k++) { + if (caracteres[k] == ligne.charAt(j)) { + this.image.setRGB(i, j, couleurs[k].getRGB()); + } + } + } + } + } catch (IOException e2) { + System.err.println("Erreur d'écriture"); + } + + try { + lecture.close(); + } catch (IOException e3) { + System.err.println("Erreur de fermeture"); + } + } catch (IOException e1) { + System.err.println("Erreur d'ouverture"); + } + } + + public BufferedImage getImage() { + return this.image; + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP13-Flux-caractere/2./Main.java b/DEV.2.1/TP/TP13-Flux-caractere/2./Main.java new file mode 100644 index 0000000..2768c3d --- /dev/null +++ b/DEV.2.1/TP/TP13-Flux-caractere/2./Main.java @@ -0,0 +1,6 @@ +public class Main { + public static void main(String[] args) { + Fenetre fenetre = new Fenetre(); + fenetre.setVisible(true); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP13-Flux-caractere/2./image.xpm b/DEV.2.1/TP/TP13-Flux-caractere/2./image.xpm new file mode 100644 index 0000000..1b6e40c --- /dev/null +++ b/DEV.2.1/TP/TP13-Flux-caractere/2./image.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char *test[] = { +/* columns rows colors chars-per-pixel */ +"32 35 15 1", +" c #000000", +". c #731810", +"X c #A52918", +"o c #FF5210", +"O c #D64221", +"+ c #FF8C10", +"@ c #FFBD29", +"# c #FFE739", +"$ c #FFBD4A", +"% c #FFFF63", +"& c #9C8C8C", +"* c #C6B5B5", +"= c #B0D8D0", +"- c #EFDEDE", +"; c #FFFFFF", +/* pixels */ +"================================", +"================================", +"=============O====o=============", +"==============O==o#o============", +"==============oO=o@o============", +"==============ooOo+o============", +"==========o===o+o=o=============", +"=========o@o=Oo++o==============", +"=========ooo=o+@+o==============", +"==========o=O++@+oO=============", +"============o+@#@o+O============", +"===========O+@#;#+@+o===========", +"===========O+#;;;+#@o===========", +"===========o@;;;;@#o============", +"=== =======..........======= ===", +"== = = ==..XXOOooOOXX..== = = ==", +"= = =.XXoOO OOoXX.= = =", +"== XXXX % % XXXX ==", +"=== oX XXX XXX Xo ===", +"=====X o$X -& &- X$o X=====", +"=====X o$$o ;;;;;; o$$o X=====", +"===== Xoo$$$ -;oo;- $$$ooX =====", +"===== OoX$Xoo ;;;; ooX$XoO =====", +"===== Xo o O -;;- O o oX =====", +"====== O O = -- = O O ======", +"======= = *= o o =* = =======", +"=========== * oooo * ===========", +"=========== oooooo ===========", +"========== XooooooX ==========", +"========= X XooooooX X =========", +"========= OooOOOOOOooO =========", +"========== oooooooo ==========", +"============ ============", +"================================", +"================================" +}; diff --git a/DEV.2.1/TP/TP13-Flux-caractere/3./Questionnaire.java b/DEV.2.1/TP/TP13-Flux-caractere/3./Questionnaire.java new file mode 100644 index 0000000..a3ee81d --- /dev/null +++ b/DEV.2.1/TP/TP13-Flux-caractere/3./Questionnaire.java @@ -0,0 +1,5 @@ +public class Questionnaire { + public Questionnaire() { + + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP16-DCU&DC/tp16ex1.mdj b/DEV.2.1/TP/TP16-DCU&DC/tp16ex1.mdj new file mode 100644 index 0000000..1c869c4 --- /dev/null +++ b/DEV.2.1/TP/TP16-DCU&DC/tp16ex1.mdj @@ -0,0 +1,2590 @@ +{ + "_type": "Project", + "_id": "AAAAAAFF+h6SjaM2Hec=", + "name": "Untitled", + "ownedElements": [ + { + "_type": "UMLModel", + "_id": "AAAAAAFF+qBWK6M3Z8Y=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Model", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFF+qBtyKM79qY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Main", + "defaultDiagram": true + } + ] + }, + { + "_type": "UMLModel", + "_id": "AAAAAAGW4tbd2bL4CO0=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Model1", + "ownedElements": [ + { + "_type": "UMLUseCaseDiagram", + "_id": "AAAAAAGW4tbd2bL5bYs=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL4CO0=" + }, + "name": "UseCaseDiagram1", + "ownedViews": [ + { + "_type": "UMLActorView", + "_id": "AAAAAAGW4tcKx7Mt6yM=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW4tcKx7MroV4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW4tcKx7MuIMY=", + "_parent": { + "$ref": "AAAAAAGW4tcKx7Mt6yM=" + }, + "model": { + "$ref": "AAAAAAGW4tcKx7MroV4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW4tcKx7MvmYA=", + "_parent": { + "$ref": "AAAAAAGW4tcKx7MuIMY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -192, + "top": -336, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tcKx7Mwz0k=", + "_parent": { + "$ref": "AAAAAAGW4tcKx7MuIMY=" + }, + "font": "Arial;13;1", + "left": 229, + "top": 230, + "width": 63.841796875, + "height": 13, + "text": "Internaute" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tcKx7Mx+G0=", + "_parent": { + "$ref": "AAAAAAGW4tcKx7MuIMY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -192, + "top": -336, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tcKx7MyFsw=", + "_parent": { + "$ref": "AAAAAAGW4tcKx7MuIMY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -192, + "top": -336, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 224, + "top": 223, + "width": 73.841796875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW4tcKx7MvmYA=" + }, + "nameLabel": { + "$ref": "AAAAAAGW4tcKx7Mwz0k=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW4tcKx7Mx+G0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW4tcKx7MyFsw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW4tcKx7Mz+Xg=", + "_parent": { + "$ref": "AAAAAAGW4tcKx7Mt6yM=" + }, + "model": { + "$ref": "AAAAAAGW4tcKx7MroV4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "top": -168, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW4tcKx7M0szQ=", + "_parent": { + "$ref": "AAAAAAGW4tcKx7Mt6yM=" + }, + "model": { + "$ref": "AAAAAAGW4tcKx7MroV4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "top": -168, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW4tcKx7M1wSc=", + "_parent": { + "$ref": "AAAAAAGW4tcKx7Mt6yM=" + }, + "model": { + "$ref": "AAAAAAGW4tcKx7MroV4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "top": -168, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW4tcKx7M2XcY=", + "_parent": { + "$ref": "AAAAAAGW4tcKx7Mt6yM=" + }, + "model": { + "$ref": "AAAAAAGW4tcKx7MroV4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "top": -168, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 224, + "top": 160, + "width": 72.841796875, + "height": 88, + "nameCompartment": { + "$ref": "AAAAAAGW4tcKx7MuIMY=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGW4tcKx7Mz+Xg=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW4tcKx7M0szQ=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW4tcKx7M1wSc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW4tcKx7M2XcY=" + } + }, + { + "_type": "UMLUseCaseSubjectView", + "_id": "AAAAAAGW4tdCTLNx0rI=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW4tdCTLNvZZU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW4tdCTLNyVwk=", + "_parent": { + "$ref": "AAAAAAGW4tdCTLNx0rI=" + }, + "model": { + "$ref": "AAAAAAGW4tdCTLNvZZU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW4tdCTLNzvlk=", + "_parent": { + "$ref": "AAAAAAGW4tdCTLNyVwk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": 16, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tdCTLN0TPM=", + "_parent": { + "$ref": "AAAAAAGW4tdCTLNyVwk=" + }, + "font": "Arial;13;1", + "left": 333, + "top": 39, + "width": 423, + "height": 13, + "text": "site web du journal" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tdCTLN1dpg=", + "_parent": { + "$ref": "AAAAAAGW4tdCTLNyVwk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": 16, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tdCTLN23jc=", + "_parent": { + "$ref": "AAAAAAGW4tdCTLNyVwk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": 16, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 328, + "top": 32, + "width": 433, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW4tdCTLNzvlk=" + }, + "nameLabel": { + "$ref": "AAAAAAGW4tdCTLN0TPM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW4tdCTLN1dpg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW4tdCTLN23jc=" + } + } + ], + "font": "Arial;13;0", + "left": 328, + "top": 32, + "width": 432, + "height": 480, + "nameCompartment": { + "$ref": "AAAAAAGW4tdCTLNyVwk=" + } + }, + { + "_type": "UMLUseCaseView", + "_id": "AAAAAAGW4teTgrOOBgs=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW4teTgrOPIpw=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOOBgs=" + }, + "model": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW4teTgrOQlFA=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOPIpw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -432, + "top": -176, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4teTgrOReRc=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOPIpw=" + }, + "font": "Arial;13;1", + "left": 457, + "top": 186.5, + "width": 84, + "height": 13, + "text": "Lire un article" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4teTgrOSqVg=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOPIpw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -432, + "top": -176, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4teTgrOTZqw=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOPIpw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -432, + "top": -176, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 452, + "top": 179.5, + "width": 95.2490234375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW4teTgrOQlFA=" + }, + "nameLabel": { + "$ref": "AAAAAAGW4teTgrOReRc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW4teTgrOSqVg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW4teTgrOTZqw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW4teTgrOUTC4=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOOBgs=" + }, + "model": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -216, + "top": -88, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW4teTgrOVqkg=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOOBgs=" + }, + "model": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -216, + "top": -88, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW4teTgrOW4GU=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOOBgs=" + }, + "model": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -216, + "top": -88, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW4teTgrOXj7M=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOOBgs=" + }, + "model": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -216, + "top": -88, + "width": 10, + "height": 10 + }, + { + "_type": "UMLExtensionPointCompartmentView", + "_id": "AAAAAAGW4teTgrOY/Fg=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOOBgs=" + }, + "model": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -216, + "top": -88, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 432, + "top": 160, + "width": 134, + "height": 64, + "nameCompartment": { + "$ref": "AAAAAAGW4teTgrOPIpw=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGW4teTgrOUTC4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW4teTgrOVqkg=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW4teTgrOW4GU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW4teTgrOXj7M=" + }, + "extensionPointCompartment": { + "$ref": "AAAAAAGW4teTgrOY/Fg=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGW4te9BrO+7Z8=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO6wnI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4te9BrO/Uyk=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO6wnI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 363, + "top": 177, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4te9BrPAnKE=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO6wnI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 362, + "top": 162, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4te9BrPBqpg=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO6wnI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 364, + "top": 206, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4te9BrPC16s=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO75Eo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 323, + "top": 179, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4te9BrPD0jQ=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO75Eo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 324, + "top": 166, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4te9BrPEKB8=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO75Eo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 320, + "top": 207, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4te9BrPFRhk=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO82O4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 404, + "top": 175, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4te9BrPGFdM=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO82O4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 401, + "top": 162, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4te9BrPHwo0=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO82O4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 410, + "top": 202, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGW4te9BrPIFjk=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO75Eo=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGW4te9BrPJSJs=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO+7Z8=" + }, + "model": { + "$ref": "AAAAAAGW4te9BrO82O4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW4teTgrOOBgs=" + }, + "tail": { + "$ref": "AAAAAAGW4tcKx7Mt6yM=" + }, + "lineStyle": 1, + "points": "298:202;431:195", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGW4te9BrO/Uyk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW4te9BrPAnKE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW4te9BrPBqpg=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGW4te9BrPC16s=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGW4te9BrPD0jQ=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGW4te9BrPEKB8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGW4te9BrPFRhk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGW4te9BrPGFdM=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGW4te9BrPHwo0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGW4te9BrPIFjk=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGW4te9BrPJSJs=" + } + }, + { + "_type": "UMLActorView", + "_id": "AAAAAAGW4tnLWrbmNE0=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW4tnLWbbk7AQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW4tnLWrbnugw=", + "_parent": { + "$ref": "AAAAAAGW4tnLWrbmNE0=" + }, + "model": { + "$ref": "AAAAAAGW4tnLWbbk7AQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW4tnLWrbowVo=", + "_parent": { + "$ref": "AAAAAAGW4tnLWrbnugw=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tnLWrbp4Zo=", + "_parent": { + "$ref": "AAAAAAGW4tnLWrbnugw=" + }, + "font": "Arial;13;1", + "left": 197, + "top": 398, + "width": 63, + "height": 13, + "text": "Abonné" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tnLWrbqLP0=", + "_parent": { + "$ref": "AAAAAAGW4tnLWrbnugw=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tnLWrbrMgc=", + "_parent": { + "$ref": "AAAAAAGW4tnLWrbnugw=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 192, + "top": 391, + "width": 73, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW4tnLWrbowVo=" + }, + "nameLabel": { + "$ref": "AAAAAAGW4tnLWrbp4Zo=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW4tnLWrbqLP0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW4tnLWrbrMgc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW4tnLWrbs7w0=", + "_parent": { + "$ref": "AAAAAAGW4tnLWrbmNE0=" + }, + "model": { + "$ref": "AAAAAAGW4tnLWbbk7AQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 24, + "top": -24, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW4tnLWrbtq3o=", + "_parent": { + "$ref": "AAAAAAGW4tnLWrbmNE0=" + }, + "model": { + "$ref": "AAAAAAGW4tnLWbbk7AQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 24, + "top": -24, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW4tnLWrbuc3A=", + "_parent": { + "$ref": "AAAAAAGW4tnLWrbmNE0=" + }, + "model": { + "$ref": "AAAAAAGW4tnLWbbk7AQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 24, + "top": -24, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW4tnLWrbvZqk=", + "_parent": { + "$ref": "AAAAAAGW4tnLWrbmNE0=" + }, + "model": { + "$ref": "AAAAAAGW4tnLWbbk7AQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 24, + "top": -24, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 192, + "top": 336, + "width": 72, + "height": 80, + "nameCompartment": { + "$ref": "AAAAAAGW4tnLWrbnugw=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGW4tnLWrbs7w0=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW4tnLWrbtq3o=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW4tnLWrbuc3A=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW4tnLWrbvZqk=" + } + }, + { + "_type": "UMLUseCaseView", + "_id": "AAAAAAGW4tomObdwD7U=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW4tomObdxbL0=", + "_parent": { + "$ref": "AAAAAAGW4tomObdwD7U=" + }, + "model": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW4tomObdyFdA=", + "_parent": { + "$ref": "AAAAAAGW4tomObdxbL0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -144, + "top": -128, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tomObdz6Pw=", + "_parent": { + "$ref": "AAAAAAGW4tomObdxbL0=" + }, + "font": "Arial;13;1", + "left": 474.5, + "top": 330.5, + "width": 130, + "height": 13, + "text": "lire un article abonné" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tomObd0DqQ=", + "_parent": { + "$ref": "AAAAAAGW4tomObdxbL0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -144, + "top": -128, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW4tomObd1sdI=", + "_parent": { + "$ref": "AAAAAAGW4tomObdxbL0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -144, + "top": -128, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 469.5, + "top": 323.5, + "width": 140.75537109375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW4tomObdyFdA=" + }, + "nameLabel": { + "$ref": "AAAAAAGW4tomObdz6Pw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW4tomObd0DqQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW4tomObd1sdI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW4tomObd2208=", + "_parent": { + "$ref": "AAAAAAGW4tomObdwD7U=" + }, + "model": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -72, + "top": -64, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW4tomObd3w8I=", + "_parent": { + "$ref": "AAAAAAGW4tomObdwD7U=" + }, + "model": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -72, + "top": -64, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW4tomObd4rHc=", + "_parent": { + "$ref": "AAAAAAGW4tomObdwD7U=" + }, + "model": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -72, + "top": -64, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW4tomObd5hW0=", + "_parent": { + "$ref": "AAAAAAGW4tomObdwD7U=" + }, + "model": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -72, + "top": -64, + "width": 10, + "height": 10 + }, + { + "_type": "UMLExtensionPointCompartmentView", + "_id": "AAAAAAGW4tomObd6UPA=", + "_parent": { + "$ref": "AAAAAAGW4tomObdwD7U=" + }, + "model": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -72, + "top": -64, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 440, + "top": 304, + "width": 199, + "height": 64, + "nameCompartment": { + "$ref": "AAAAAAGW4tomObdxbL0=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGW4tomObd2208=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW4tomObd3w8I=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW4tomObd4rHc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW4tomObd5hW0=" + }, + "extensionPointCompartment": { + "$ref": "AAAAAAGW4tomObd6UPA=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGW4tpHkbjQ91o=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjMHW8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4tpHkbjRUOM=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjMHW8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 350, + "top": 339, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4tpHkbjStiM=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjMHW8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 348, + "top": 324, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4tpHkbjT2p4=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjMHW8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 353, + "top": 368, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4tpHkbjUrhU=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjN/hc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 288, + "top": 346, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4tpHkbjVusQ=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjN/hc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 289, + "top": 333, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4tpHkbjWRiI=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjN/hc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 288, + "top": 374, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4tpHkbjXsK8=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjOtSE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 411, + "top": 331, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4tpHkbjYfqI=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjOtSE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 407, + "top": 318, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW4tpHkbjZ7K0=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjOtSE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 419, + "top": 358, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGW4tpHkbjaH2o=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjN/hc=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGW4tpHkbjb+Mo=", + "_parent": { + "$ref": "AAAAAAGW4tpHkbjQ91o=" + }, + "model": { + "$ref": "AAAAAAGW4tpHkLjOtSE=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW4tomObdwD7U=" + }, + "tail": { + "$ref": "AAAAAAGW4tnLWrbmNE0=" + }, + "lineStyle": 1, + "points": "265:371;439:349", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGW4tpHkbjRUOM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW4tpHkbjStiM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW4tpHkbjT2p4=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGW4tpHkbjUrhU=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGW4tpHkbjVusQ=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGW4tpHkbjWRiI=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGW4tpHkbjXsK8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGW4tpHkbjYfqI=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGW4tpHkbjZ7K0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGW4tpHkbjaH2o=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGW4tpHkbjb+Mo=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGW5JyyfPsphpA=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPslCcE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW5JyyfPsqx0g=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPslCcE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 348, + "top": 269, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW5JyyfPsrurI=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPslCcE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 340, + "top": 257, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW5JyyfPssxFQ=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPslCcE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 365, + "top": 294, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW5JyyfPstIwQ=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPsmCLA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 278, + "top": 317, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW5JyyfPsur6s=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPsmCLA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 272, + "top": 305, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW5JyyfPsvTo4=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPsmCLA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 289, + "top": 343, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW5JyyfPswU4A=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPsnKho=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 420, + "top": 221, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW5JyyfPsx0mo=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPsnKho=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 410, + "top": 211, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW5JyyfPsywVI=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPsnKho=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 439, + "top": 241, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGW5JyyfPszMUM=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPsmCLA=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGW5JyyfPs0E6c=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPsphpA=" + }, + "model": { + "$ref": "AAAAAAGW5JyyfPsnKho=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW4teTgrOOBgs=" + }, + "tail": { + "$ref": "AAAAAAGW4tnLWrbmNE0=" + }, + "lineStyle": 1, + "points": "265:351;450:225", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGW5JyyfPsqx0g=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW5JyyfPsrurI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW5JyyfPssxFQ=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGW5JyyfPstIwQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGW5JyyfPsur6s=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGW5JyyfPsvTo4=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGW5JyyfPswU4A=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGW5JyyfPsx0mo=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGW5JyyfPsywVI=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGW5JyyfPszMUM=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGW5JyyfPs0E6c=" + } + }, + { + "_type": "UMLUseCaseView", + "_id": "AAAAAAGW9I5Ow62qr1U=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW9I5Ow62obUA=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9I5Ow62rvfk=", + "_parent": { + "$ref": "AAAAAAGW9I5Ow62qr1U=" + }, + "model": { + "$ref": "AAAAAAGW9I5Ow62obUA=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9I5Ow62sMPo=", + "_parent": { + "$ref": "AAAAAAGW9I5Ow62rvfk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 384, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9I5Ow62ttF4=", + "_parent": { + "$ref": "AAAAAAGW9I5Ow62rvfk=" + }, + "font": "Arial;13;1", + "left": 612, + "top": 86.5, + "width": 98, + "height": 13, + "text": "Authentification" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9I5Ow62ukJA=", + "_parent": { + "$ref": "AAAAAAGW9I5Ow62rvfk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 384, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9I5Ow62vyss=", + "_parent": { + "$ref": "AAAAAAGW9I5Ow62rvfk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 384, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 607, + "top": 79.5, + "width": 108.9345703125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW9I5Ow62sMPo=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9I5Ow62ttF4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9I5Ow62ukJA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9I5Ow62vyss=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW9I5Ow62wIB8=", + "_parent": { + "$ref": "AAAAAAGW9I5Ow62qr1U=" + }, + "model": { + "$ref": "AAAAAAGW9I5Ow62obUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 192, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW9I5Ow62xBLU=", + "_parent": { + "$ref": "AAAAAAGW9I5Ow62qr1U=" + }, + "model": { + "$ref": "AAAAAAGW9I5Ow62obUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 192, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW9I5Ow62yfo4=", + "_parent": { + "$ref": "AAAAAAGW9I5Ow62qr1U=" + }, + "model": { + "$ref": "AAAAAAGW9I5Ow62obUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 192, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW9I5Ow62zuuU=", + "_parent": { + "$ref": "AAAAAAGW9I5Ow62qr1U=" + }, + "model": { + "$ref": "AAAAAAGW9I5Ow62obUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 192, + "width": 10, + "height": 10 + }, + { + "_type": "UMLExtensionPointCompartmentView", + "_id": "AAAAAAGW9I5Ow620gIg=", + "_parent": { + "$ref": "AAAAAAGW9I5Ow62qr1U=" + }, + "model": { + "$ref": "AAAAAAGW9I5Ow62obUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 192, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 584, + "top": 64, + "width": 154, + "height": 56, + "nameCompartment": { + "$ref": "AAAAAAGW9I5Ow62rvfk=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGW9I5Ow62wIB8=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW9I5Ow62xBLU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW9I5Ow62yfo4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW9I5Ow62zuuU=" + }, + "extensionPointCompartment": { + "$ref": "AAAAAAGW9I5Ow620gIg=" + } + }, + { + "_type": "UMLExtendView", + "_id": "AAAAAAGW9I6LJbCx7Hw=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW9I6LJbCvzZU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9I6LJbCy8SA=", + "_parent": { + "$ref": "AAAAAAGW9I6LJbCx7Hw=" + }, + "model": { + "$ref": "AAAAAAGW9I6LJbCvzZU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 504, + "top": 262, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW9I6LJbCx7Hw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9I6LJbCzrU0=", + "_parent": { + "$ref": "AAAAAAGW9I6LJbCx7Hw=" + }, + "model": { + "$ref": "AAAAAAGW9I6LJbCvzZU=" + }, + "font": "Arial;13;0", + "left": 480, + "top": 264, + "width": 53.49169921875, + "height": 13, + "alpha": 1.7282947910831155, + "distance": 14.317821063276353, + "hostEdge": { + "$ref": "AAAAAAGW9I6LJbCx7Hw=" + }, + "edgePosition": 1, + "text": "«extend»" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9I6LJbC0ibw=", + "_parent": { + "$ref": "AAAAAAGW9I6LJbCx7Hw=" + }, + "model": { + "$ref": "AAAAAAGW9I6LJbCvzZU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 533, + "top": 253, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW9I6LJbCx7Hw=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW4teTgrOOBgs=" + }, + "tail": { + "$ref": "AAAAAAGW4tomObdwD7U=" + }, + "lineStyle": 1, + "points": "530:303;508:225", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGW9I6LJbCy8SA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9I6LJbCzrU0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9I6LJbC0ibw=" + } + }, + { + "_type": "UMLIncludeView", + "_id": "AAAAAAGW9I6787Ptub0=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW9I6787PrkCs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9I679LPudfc=", + "_parent": { + "$ref": "AAAAAAGW9I6787Ptub0=" + }, + "model": { + "$ref": "AAAAAAGW9I6787PrkCs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 575, + "top": 121, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW9I6787Ptub0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9I679LPv1/8=", + "_parent": { + "$ref": "AAAAAAGW9I6787Ptub0=" + }, + "model": { + "$ref": "AAAAAAGW9I6787PrkCs=" + }, + "font": "Arial;13;0", + "left": 552, + "top": 136, + "width": 55.65625, + "height": 13, + "alpha": -3.227797083541972, + "distance": 4.47213595499958, + "hostEdge": { + "$ref": "AAAAAAGW9I6787Ptub0=" + }, + "edgePosition": 1, + "text": "«include»" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9I679LPwZks=", + "_parent": { + "$ref": "AAAAAAGW9I6787Ptub0=" + }, + "model": { + "$ref": "AAAAAAGW9I6787PrkCs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 590, + "top": 146, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW9I6787Ptub0=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9I5Ow62qr1U=" + }, + "tail": { + "$ref": "AAAAAAGW4teTgrOOBgs=" + }, + "lineStyle": 1, + "points": "552:159;614:121", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGW9I679LPudfc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9I679LPv1/8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9I679LPwZks=" + } + }, + { + "_type": "UMLUseCaseView", + "_id": "AAAAAAGW9JAkuLrBaE8=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW9JAkt7q/ZPI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9JAkuLrCcbs=", + "_parent": { + "$ref": "AAAAAAGW9JAkuLrBaE8=" + }, + "model": { + "$ref": "AAAAAAGW9JAkt7q/ZPI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9JAkuLrDKWY=", + "_parent": { + "$ref": "AAAAAAGW9JAkuLrCcbs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -208, + "top": 32, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JAkuLrEwio=", + "_parent": { + "$ref": "AAAAAAGW9JAkuLrCcbs=" + }, + "font": "Arial;13;1", + "left": 422, + "top": 450.5, + "width": 149, + "height": 13, + "text": "Ajouter un commentaire" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JAkuLrFc0k=", + "_parent": { + "$ref": "AAAAAAGW9JAkuLrCcbs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -208, + "top": 32, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JAkuLrGItk=", + "_parent": { + "$ref": "AAAAAAGW9JAkuLrCcbs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -208, + "top": 32, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 417, + "top": 443.5, + "width": 159.525390625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW9JAkuLrDKWY=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9JAkuLrEwio=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9JAkuLrFc0k=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9JAkuLrGItk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW9JAkuLrHSw4=", + "_parent": { + "$ref": "AAAAAAGW9JAkuLrBaE8=" + }, + "model": { + "$ref": "AAAAAAGW9JAkt7q/ZPI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -104, + "top": 16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW9JAkuLrIglw=", + "_parent": { + "$ref": "AAAAAAGW9JAkuLrBaE8=" + }, + "model": { + "$ref": "AAAAAAGW9JAkt7q/ZPI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -104, + "top": 16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW9JAkuLrJmks=", + "_parent": { + "$ref": "AAAAAAGW9JAkuLrBaE8=" + }, + "model": { + "$ref": "AAAAAAGW9JAkt7q/ZPI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -104, + "top": 16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW9JAkuLrKMsg=", + "_parent": { + "$ref": "AAAAAAGW9JAkuLrBaE8=" + }, + "model": { + "$ref": "AAAAAAGW9JAkt7q/ZPI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -104, + "top": 16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLExtensionPointCompartmentView", + "_id": "AAAAAAGW9JAkuLrLIRg=", + "_parent": { + "$ref": "AAAAAAGW9JAkuLrBaE8=" + }, + "model": { + "$ref": "AAAAAAGW9JAkt7q/ZPI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -104, + "top": 16, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 384, + "top": 432, + "width": 225, + "height": 48, + "nameCompartment": { + "$ref": "AAAAAAGW9JAkuLrCcbs=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGW9JAkuLrHSw4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW9JAkuLrIglw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW9JAkuLrJmks=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW9JAkuLrKMsg=" + }, + "extensionPointCompartment": { + "$ref": "AAAAAAGW9JAkuLrLIRg=" + } + }, + { + "_type": "UMLExtendView", + "_id": "AAAAAAGW9JE+9r9whBA=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL5bYs=" + }, + "model": { + "$ref": "AAAAAAGW9JE+9r9uPmQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9JE+979x1ms=", + "_parent": { + "$ref": "AAAAAAGW9JE+9r9whBA=" + }, + "model": { + "$ref": "AAAAAAGW9JE+9r9uPmQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 530, + "top": 399, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW9JE+9r9whBA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9JE+979y9aA=", + "_parent": { + "$ref": "AAAAAAGW9JE+9r9whBA=" + }, + "model": { + "$ref": "AAAAAAGW9JE+9r9uPmQ=" + }, + "font": "Arial;13;0", + "left": 516, + "top": 392, + "width": 53.49169921875, + "height": 13, + "alpha": 1.988546855642772, + "distance": 26.076809620810597, + "hostEdge": { + "$ref": "AAAAAAGW9JE+9r9whBA=" + }, + "edgePosition": 1, + "text": "«extend»" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9JE+979zEhs=", + "_parent": { + "$ref": "AAAAAAGW9JE+9r9whBA=" + }, + "model": { + "$ref": "AAAAAAGW9JE+9r9uPmQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 501, + "top": 388, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGW9JE+9r9whBA=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9JAkuLrBaE8=" + }, + "tail": { + "$ref": "AAAAAAGW4tomObdwD7U=" + }, + "lineStyle": 1, + "points": "527:369;505:431", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGW9JE+979x1ms=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9JE+979y9aA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9JE+979zEhs=" + } + } + ] + }, + { + "_type": "UMLUseCase", + "_id": "AAAAAAGW4tbnebL9Aes=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL4CO0=" + }, + "name": "site web du journal" + }, + { + "_type": "UMLActor", + "_id": "AAAAAAGW4tcKx7MroV4=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL4CO0=" + }, + "name": "Internaute", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGW4te9BrO6wnI=", + "_parent": { + "$ref": "AAAAAAGW4tcKx7MroV4=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGW4te9BrO75Eo=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO6wnI=" + }, + "reference": { + "$ref": "AAAAAAGW4tcKx7MroV4=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGW4te9BrO82O4=", + "_parent": { + "$ref": "AAAAAAGW4te9BrO6wnI=" + }, + "reference": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + } + } + } + ] + }, + { + "_type": "UMLUseCaseSubject", + "_id": "AAAAAAGW4tdCTLNvZZU=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL4CO0=" + }, + "name": "site web du journal" + }, + { + "_type": "UMLUseCase", + "_id": "AAAAAAGW4teTgrOMAmQ=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL4CO0=" + }, + "name": "Lire un article", + "ownedElements": [ + { + "_type": "UMLInclude", + "_id": "AAAAAAGW9I6787PrkCs=", + "_parent": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + }, + "source": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + }, + "target": { + "$ref": "AAAAAAGW9I5Ow62obUA=" + } + } + ] + }, + { + "_type": "UMLActor", + "_id": "AAAAAAGW4tnLWbbk7AQ=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL4CO0=" + }, + "name": "Abonné", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGW4tpHkLjMHW8=", + "_parent": { + "$ref": "AAAAAAGW4tnLWbbk7AQ=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGW4tpHkLjN/hc=", + "_parent": { + "$ref": "AAAAAAGW4tpHkLjMHW8=" + }, + "reference": { + "$ref": "AAAAAAGW4tnLWbbk7AQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGW4tpHkLjOtSE=", + "_parent": { + "$ref": "AAAAAAGW4tpHkLjMHW8=" + }, + "reference": { + "$ref": "AAAAAAGW4tomObdudj0=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGW5JyyfPslCcE=", + "_parent": { + "$ref": "AAAAAAGW4tnLWbbk7AQ=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGW5JyyfPsmCLA=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPslCcE=" + }, + "reference": { + "$ref": "AAAAAAGW4tnLWbbk7AQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGW5JyyfPsnKho=", + "_parent": { + "$ref": "AAAAAAGW5JyyfPslCcE=" + }, + "reference": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + } + } + } + ] + }, + { + "_type": "UMLUseCase", + "_id": "AAAAAAGW4tomObdudj0=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL4CO0=" + }, + "name": "lire un article abonné", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAGW9Ix11KldG7g=", + "_parent": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "name": "extend", + "source": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "target": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + } + }, + { + "_type": "UMLExtend", + "_id": "AAAAAAGW9I6LJbCvzZU=", + "_parent": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "source": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "target": { + "$ref": "AAAAAAGW4teTgrOMAmQ=" + } + }, + { + "_type": "UMLExtend", + "_id": "AAAAAAGW9JE+9r9uPmQ=", + "_parent": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "source": { + "$ref": "AAAAAAGW4tomObdudj0=" + }, + "target": { + "$ref": "AAAAAAGW9JAkt7q/ZPI=" + } + } + ] + }, + { + "_type": "UMLUseCase", + "_id": "AAAAAAGW9I5Ow62obUA=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL4CO0=" + }, + "name": "Authentification" + }, + { + "_type": "UMLUseCase", + "_id": "AAAAAAGW9JAkt7q/ZPI=", + "_parent": { + "$ref": "AAAAAAGW4tbd2bL4CO0=" + }, + "name": "Ajouter un commentaire" + } + ] + } + ] +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP18-DS/tp18ex2.mdj b/DEV.2.1/TP/TP18-DS/tp18ex2.mdj new file mode 100644 index 0000000..df0077f --- /dev/null +++ b/DEV.2.1/TP/TP18-DS/tp18ex2.mdj @@ -0,0 +1,3234 @@ +{ + "_type": "Project", + "_id": "AAAAAAFF+h6SjaM2Hec=", + "name": "Untitled", + "ownedElements": [ + { + "_type": "UMLModel", + "_id": "AAAAAAFF+qBWK6M3Z8Y=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Model", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFF+qBtyKM79qY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Main", + "defaultDiagram": true, + "ownedViews": [ + { + "_type": "UMLClassView", + "_id": "AAAAAAGW9JrCd6Lu2CM=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGW9JrCd6Lsi+Q=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9JrCd6Lv2D4=", + "_parent": { + "$ref": "AAAAAAGW9JrCd6Lu2CM=" + }, + "model": { + "$ref": "AAAAAAGW9JrCd6Lsi+Q=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9JrCd6Lw76M=", + "_parent": { + "$ref": "AAAAAAGW9JrCd6Lv2D4=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JrCd6LxQrE=", + "_parent": { + "$ref": "AAAAAAGW9JrCd6Lv2D4=" + }, + "font": "Arial;13;1", + "left": 157, + "top": 231, + "width": 103.7939453125, + "height": 13, + "text": "Portail d'accueil" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JrCd6LyI8U=", + "_parent": { + "$ref": "AAAAAAGW9JrCd6Lv2D4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JrCd6LzLz4=", + "_parent": { + "$ref": "AAAAAAGW9JrCd6Lv2D4=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 152, + "top": 224, + "width": 113.7939453125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW9JrCd6Lw76M=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9JrCd6LxQrE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9JrCd6LyI8U=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9JrCd6LzLz4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW9JrCd6L0xp8=", + "_parent": { + "$ref": "AAAAAAGW9JrCd6Lu2CM=" + }, + "model": { + "$ref": "AAAAAAGW9JrCd6Lsi+Q=" + }, + "font": "Arial;13;0", + "left": 152, + "top": 249, + "width": 113.7939453125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW9JrCd6L1+ho=", + "_parent": { + "$ref": "AAAAAAGW9JrCd6Lu2CM=" + }, + "model": { + "$ref": "AAAAAAGW9JrCd6Lsi+Q=" + }, + "font": "Arial;13;0", + "left": 152, + "top": 259, + "width": 113.7939453125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW9JrCd6L2Mt4=", + "_parent": { + "$ref": "AAAAAAGW9JrCd6Lu2CM=" + }, + "model": { + "$ref": "AAAAAAGW9JrCd6Lsi+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW9JrCd6L3h5s=", + "_parent": { + "$ref": "AAAAAAGW9JrCd6Lu2CM=" + }, + "model": { + "$ref": "AAAAAAGW9JrCd6Lsi+Q=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 152, + "top": 224, + "width": 112.7939453125, + "height": 64, + "nameCompartment": { + "$ref": "AAAAAAGW9JrCd6Lv2D4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGW9JrCd6L0xp8=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW9JrCd6L1+ho=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW9JrCd6L2Mt4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW9JrCd6L3h5s=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGW9J+NS6NT1Ls=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGW9J+NS6NRETI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9J+NS6NU+Ec=", + "_parent": { + "$ref": "AAAAAAGW9J+NS6NT1Ls=" + }, + "model": { + "$ref": "AAAAAAGW9J+NS6NRETI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9J+NS6NVc2c=", + "_parent": { + "$ref": "AAAAAAGW9J+NS6NU+Ec=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -192, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9J+NS6NWbZA=", + "_parent": { + "$ref": "AAAAAAGW9J+NS6NU+Ec=" + }, + "font": "Arial;13;1", + "left": 357, + "top": 239, + "width": 96.36083984375, + "height": 13, + "text": "Utilisateurs" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9J+NS6NX9ws=", + "_parent": { + "$ref": "AAAAAAGW9J+NS6NU+Ec=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -192, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9J+NS6NYPSY=", + "_parent": { + "$ref": "AAAAAAGW9J+NS6NU+Ec=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -192, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 352, + "top": 232, + "width": 106.36083984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW9J+NS6NVc2c=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9J+NS6NWbZA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9J+NS6NX9ws=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9J+NS6NYPSY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW9J+NS6NZ+9o=", + "_parent": { + "$ref": "AAAAAAGW9J+NS6NT1Ls=" + }, + "model": { + "$ref": "AAAAAAGW9J+NS6NRETI=" + }, + "font": "Arial;13;0", + "left": 352, + "top": 257, + "width": 106.36083984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW9J+NS6NaqG8=", + "_parent": { + "$ref": "AAAAAAGW9J+NS6NT1Ls=" + }, + "model": { + "$ref": "AAAAAAGW9J+NS6NRETI=" + }, + "font": "Arial;13;0", + "left": 352, + "top": 267, + "width": 106.36083984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW9J+NS6NbAIo=", + "_parent": { + "$ref": "AAAAAAGW9J+NS6NT1Ls=" + }, + "model": { + "$ref": "AAAAAAGW9J+NS6NRETI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW9J+NS6Ncm2Y=", + "_parent": { + "$ref": "AAAAAAGW9J+NS6NT1Ls=" + }, + "model": { + "$ref": "AAAAAAGW9J+NS6NRETI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 352, + "top": 232, + "width": 105.36083984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGW9J+NS6NU+Ec=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGW9J+NS6NZ+9o=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW9J+NS6NaqG8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW9J+NS6NbAIo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW9J+NS6Ncm2Y=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGW9KlZa6SlfRU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGW9KlZa6SjARU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9KlZa6SmzwI=", + "_parent": { + "$ref": "AAAAAAGW9KlZa6SlfRU=" + }, + "model": { + "$ref": "AAAAAAGW9KlZa6SjARU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9KlZa6SnoWw=", + "_parent": { + "$ref": "AAAAAAGW9KlZa6SmzwI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 416, + "top": -400, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9KlZa6SoHYk=", + "_parent": { + "$ref": "AAAAAAGW9KlZa6SmzwI=" + }, + "font": "Arial;13;1", + "left": 533, + "top": 239, + "width": 42.919921875, + "height": 13, + "text": "Films" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9KlZa6Sp4wk=", + "_parent": { + "$ref": "AAAAAAGW9KlZa6SmzwI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 416, + "top": -400, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9KlZa6SqzfE=", + "_parent": { + "$ref": "AAAAAAGW9KlZa6SmzwI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 416, + "top": -400, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 528, + "top": 232, + "width": 52.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW9KlZa6SnoWw=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9KlZa6SoHYk=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9KlZa6Sp4wk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9KlZa6SqzfE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW9KlZa6SrKXg=", + "_parent": { + "$ref": "AAAAAAGW9KlZa6SlfRU=" + }, + "model": { + "$ref": "AAAAAAGW9KlZa6SjARU=" + }, + "font": "Arial;13;0", + "left": 528, + "top": 257, + "width": 52.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW9KlZa6SstIQ=", + "_parent": { + "$ref": "AAAAAAGW9KlZa6SlfRU=" + }, + "model": { + "$ref": "AAAAAAGW9KlZa6SjARU=" + }, + "font": "Arial;13;0", + "left": 528, + "top": 267, + "width": 52.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW9KlZa6StZEE=", + "_parent": { + "$ref": "AAAAAAGW9KlZa6SlfRU=" + }, + "model": { + "$ref": "AAAAAAGW9KlZa6SjARU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 208, + "top": -200, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW9KlZa6SuSno=", + "_parent": { + "$ref": "AAAAAAGW9KlZa6SlfRU=" + }, + "model": { + "$ref": "AAAAAAGW9KlZa6SjARU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 208, + "top": -200, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 528, + "top": 232, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGW9KlZa6SmzwI=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGW9KlZa6SrKXg=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW9KlZa6SstIQ=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW9KlZa6StZEE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW9KlZa6SuSno=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGW9KzSN6VUi/0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGW9KzSN6VSfQQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9KzSN6VVYOk=", + "_parent": { + "$ref": "AAAAAAGW9KzSN6VUi/0=" + }, + "model": { + "$ref": "AAAAAAGW9KzSN6VSfQQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9KzSN6VW1vY=", + "_parent": { + "$ref": "AAAAAAGW9KzSN6VVYOk=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9KzSN6VXACI=", + "_parent": { + "$ref": "AAAAAAGW9KzSN6VVYOk=" + }, + "font": "Arial;13;1", + "left": 677, + "top": 247, + "width": 71, + "height": 13, + "text": "Lecteur" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9KzSOKVYuGA=", + "_parent": { + "$ref": "AAAAAAGW9KzSN6VVYOk=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9KzSOKVZB0M=", + "_parent": { + "$ref": "AAAAAAGW9KzSN6VVYOk=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 672, + "top": 240, + "width": 81, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW9KzSN6VW1vY=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9KzSN6VXACI=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9KzSOKVYuGA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9KzSOKVZB0M=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW9KzSOKVaJpw=", + "_parent": { + "$ref": "AAAAAAGW9KzSN6VUi/0=" + }, + "model": { + "$ref": "AAAAAAGW9KzSN6VSfQQ=" + }, + "font": "Arial;13;0", + "left": 672, + "top": 265, + "width": 81, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW9KzSOKVbJQw=", + "_parent": { + "$ref": "AAAAAAGW9KzSN6VUi/0=" + }, + "model": { + "$ref": "AAAAAAGW9KzSN6VSfQQ=" + }, + "font": "Arial;13;0", + "left": 672, + "top": 275, + "width": 81, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW9KzSOKVc3TU=", + "_parent": { + "$ref": "AAAAAAGW9KzSN6VUi/0=" + }, + "model": { + "$ref": "AAAAAAGW9KzSN6VSfQQ=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW9KzSOKVdccI=", + "_parent": { + "$ref": "AAAAAAGW9KzSN6VUi/0=" + }, + "model": { + "$ref": "AAAAAAGW9KzSN6VSfQQ=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 672, + "top": 240, + "width": 80, + "height": 64, + "nameCompartment": { + "$ref": "AAAAAAGW9KzSN6VVYOk=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGW9KzSOKVaJpw=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW9KzSOKVbJQw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW9KzSOKVc3TU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW9KzSOKVdccI=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGW9JrCd6Lsi+Q=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Portail d'accueil" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGW9J+NS6NRETI=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Utilisateurs" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGW9KlZa6SjARU=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Films" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGW9KzSN6VSfQQ=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Lecteur" + } + ] + }, + { + "_type": "UMLModel", + "_id": "AAAAAAGW9JXriaI6Ky4=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Model1", + "ownedElements": [ + { + "_type": "UMLUseCaseDiagram", + "_id": "AAAAAAGW9JXriaI7gWQ=", + "_parent": { + "$ref": "AAAAAAGW9JXriaI6Ky4=" + }, + "name": "UseCaseDiagram1", + "ownedViews": [ + { + "_type": "UMLActorView", + "_id": "AAAAAAGW9JXztqJBalU=", + "_parent": { + "$ref": "AAAAAAGW9JXriaI7gWQ=" + }, + "model": { + "$ref": "AAAAAAGW9JXztaI/9NY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9JXztqJCWTk=", + "_parent": { + "$ref": "AAAAAAGW9JXztqJBalU=" + }, + "model": { + "$ref": "AAAAAAGW9JXztaI/9NY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9JXztqJDV8I=", + "_parent": { + "$ref": "AAAAAAGW9JXztqJCWTk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": -256, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JXztqJE7zw=", + "_parent": { + "$ref": "AAAAAAGW9JXztqJCWTk=" + }, + "font": "Arial;13;1", + "left": 221, + "top": 318, + "width": 119, + "height": 13, + "text": "Bob" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JXztqJFDoQ=", + "_parent": { + "$ref": "AAAAAAGW9JXztqJCWTk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": -256, + "width": 106.20263671875, + "height": 13, + "text": "(from Interaction1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JXztqJGv1g=", + "_parent": { + "$ref": "AAAAAAGW9JXztqJCWTk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": -256, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 216, + "top": 311, + "width": 129, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW9JXztqJDV8I=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9JXztqJE7zw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9JXztqJFDoQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9JXztqJGv1g=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGW9JXztqJH+ik=", + "_parent": { + "$ref": "AAAAAAGW9JXztqJBalU=" + }, + "model": { + "$ref": "AAAAAAGW9JXztaI/9NY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -112, + "top": -128, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGW9JXztqJImTo=", + "_parent": { + "$ref": "AAAAAAGW9JXztqJBalU=" + }, + "model": { + "$ref": "AAAAAAGW9JXztaI/9NY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -112, + "top": -128, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGW9JXztqJJA40=", + "_parent": { + "$ref": "AAAAAAGW9JXztqJBalU=" + }, + "model": { + "$ref": "AAAAAAGW9JXztaI/9NY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -112, + "top": -128, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGW9JXztqJK/0c=", + "_parent": { + "$ref": "AAAAAAGW9JXztqJBalU=" + }, + "model": { + "$ref": "AAAAAAGW9JXztaI/9NY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -112, + "top": -128, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 216, + "top": 224, + "width": 128, + "height": 112, + "nameCompartment": { + "$ref": "AAAAAAGW9JXztqJCWTk=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGW9JXztqJH+ik=" + }, + "operationCompartment": { + "$ref": "AAAAAAGW9JXztqJImTo=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGW9JXztqJJA40=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGW9JXztqJK/0c=" + } + } + ] + } + ] + }, + { + "_type": "UMLCollaboration", + "_id": "AAAAAAGW9JY0baJrJjQ=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Collaboration1", + "ownedElements": [ + { + "_type": "UMLInteraction", + "_id": "AAAAAAGW9JY0bqJsRwE=", + "_parent": { + "$ref": "AAAAAAGW9JY0baJrJjQ=" + }, + "name": "Interaction1", + "ownedElements": [ + { + "_type": "UMLSequenceDiagram", + "_id": "AAAAAAGW9JY0bqJtRyI=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "SequenceDiagram1", + "ownedViews": [ + { + "_type": "UMLFrameView", + "_id": "AAAAAAGW9JY0bqJuQaI=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9JY0bqJvGv4=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJuQaI=" + }, + "font": "Arial;13;0", + "left": 240.72998046875, + "top": 5, + "width": 114.9052734375, + "height": 13, + "text": "SequenceDiagram1" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JY0bqJwoRY=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJuQaI=" + }, + "font": "Arial;13;1", + "left": 221, + "top": 5, + "width": 13.72998046875, + "height": 13, + "text": "sd" + } + ], + "font": "Arial;13;0", + "left": 216, + "width": 1032, + "height": 592, + "nameLabel": { + "$ref": "AAAAAAGW9JY0bqJvGv4=" + }, + "frameTypeLabel": { + "$ref": "AAAAAAGW9JY0bqJwoRY=" + } + }, + { + "_type": "UMLSeqLifelineView", + "_id": "AAAAAAGW9JZxrqJ+xE8=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9JZxrqJ97Fk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9JZxrqJ/K/Q=", + "_parent": { + "$ref": "AAAAAAGW9JZxrqJ+xE8=" + }, + "model": { + "$ref": "AAAAAAGW9JZxrqJ97Fk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9JZxrqKAvKA=", + "_parent": { + "$ref": "AAAAAAGW9JZxrqJ/K/Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -478, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JZxrqKBlYY=", + "_parent": { + "$ref": "AAAAAAGW9JZxrqJ/K/Q=" + }, + "font": "Arial;13;1", + "left": 229, + "top": 87, + "width": 90.58447265625, + "height": 13, + "text": "Lifeline1: Bob" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JZxrqKCbGs=", + "_parent": { + "$ref": "AAAAAAGW9JZxrqJ/K/Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -478, + "width": 106.20263671875, + "height": 13, + "text": "(from Interaction1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JZxrqKDC1o=", + "_parent": { + "$ref": "AAAAAAGW9JZxrqJ/K/Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -478, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 224, + "top": 80, + "width": 100.58447265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGW9JZxrqKAvKA=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9JZxrqKBlYY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9JZxrqKCbGs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9JZxrqKDC1o=" + } + }, + { + "_type": "UMLLinePartView", + "_id": "AAAAAAGW9JZxrqKEdZQ=", + "_parent": { + "$ref": "AAAAAAGW9JZxrqJ+xE8=" + }, + "model": { + "$ref": "AAAAAAGW9JZxrqJ97Fk=" + }, + "font": "Arial;13;0", + "left": 274, + "top": 106, + "width": 1, + "height": 358 + } + ], + "font": "Arial;13;0", + "left": 224, + "top": 40, + "width": 99.58447265625, + "height": 424, + "stereotypeDisplay": "icon", + "nameCompartment": { + "$ref": "AAAAAAGW9JZxrqJ/K/Q=" + }, + "linePart": { + "$ref": "AAAAAAGW9JZxrqKEdZQ=" + } + }, + { + "_type": "UMLSeqLifelineView", + "_id": "AAAAAAGW9JsGwaMZXJM=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9JsGwaMapUc=", + "_parent": { + "$ref": "AAAAAAGW9JsGwaMZXJM=" + }, + "model": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9JsGwaMbujw=", + "_parent": { + "$ref": "AAAAAAGW9JsGwaMapUc=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JsGwaMcUAw=", + "_parent": { + "$ref": "AAAAAAGW9JsGwaMapUc=" + }, + "font": "Arial;13;1", + "left": 410, + "top": 47, + "width": 170.859375, + "height": 13, + "text": "Lifeline2: Portail d'accueil" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JsGwaMdeFU=", + "_parent": { + "$ref": "AAAAAAGW9JsGwaMapUc=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 106.20263671875, + "height": 13, + "text": "(from Interaction1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9JsGwaMedGw=", + "_parent": { + "$ref": "AAAAAAGW9JsGwaMapUc=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 405, + "top": 40, + "width": 180.859375, + "height": 40, + "stereotypeLabel": { + "$ref": "AAAAAAGW9JsGwaMbujw=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9JsGwaMcUAw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9JsGwaMdeFU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9JsGwaMedGw=" + } + }, + { + "_type": "UMLLinePartView", + "_id": "AAAAAAGW9JsGwaMfKYo=", + "_parent": { + "$ref": "AAAAAAGW9JsGwaMZXJM=" + }, + "model": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + }, + "font": "Arial;13;0", + "left": 495, + "top": 81, + "width": 1, + "height": 391 + } + ], + "font": "Arial;13;0", + "left": 405, + "top": 40, + "width": 179.859375, + "height": 432, + "nameCompartment": { + "$ref": "AAAAAAGW9JsGwaMapUc=" + }, + "linePart": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + } + }, + { + "_type": "UMLSeqLifelineView", + "_id": "AAAAAAGW9J+yFKN9+fA=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9J+yFKN8Vgc=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9J+yFaN+U/g=", + "_parent": { + "$ref": "AAAAAAGW9J+yFKN9+fA=" + }, + "model": { + "$ref": "AAAAAAGW9J+yFKN8Vgc=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9J+yFaN/TGM=", + "_parent": { + "$ref": "AAAAAAGW9J+yFaN+U/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 340, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9J+yFaOASws=", + "_parent": { + "$ref": "AAAAAAGW9J+yFaN+U/g=" + }, + "font": "Arial;13;1", + "left": 645, + "top": 47, + "width": 167.0380859375, + "height": 13, + "text": "Lifeline3: Utilisateurs" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9J+yFaOB2QY=", + "_parent": { + "$ref": "AAAAAAGW9J+yFaN+U/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 340, + "width": 106.20263671875, + "height": 13, + "text": "(from Interaction1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9J+yFaOCYxc=", + "_parent": { + "$ref": "AAAAAAGW9J+yFaN+U/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 340, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 640, + "top": 40, + "width": 177.0380859375, + "height": 40, + "stereotypeLabel": { + "$ref": "AAAAAAGW9J+yFaN/TGM=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9J+yFaOASws=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9J+yFaOB2QY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9J+yFaOCYxc=" + } + }, + { + "_type": "UMLLinePartView", + "_id": "AAAAAAGW9J+yFaODY8w=", + "_parent": { + "$ref": "AAAAAAGW9J+yFKN9+fA=" + }, + "model": { + "$ref": "AAAAAAGW9J+yFKN8Vgc=" + }, + "font": "Arial;13;0", + "left": 728, + "top": 81, + "width": 1, + "height": 391 + } + ], + "font": "Arial;13;0", + "left": 640, + "top": 40, + "width": 176.0380859375, + "height": 432, + "nameCompartment": { + "$ref": "AAAAAAGW9J+yFaN+U/g=" + }, + "linePart": { + "$ref": "AAAAAAGW9J+yFaODY8w=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9JuYdKM6yCY=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9JuYdKM5MaA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9JuYdKM7oRY=", + "_parent": { + "$ref": "AAAAAAGW9JuYdKM6yCY=" + }, + "model": { + "$ref": "AAAAAAGW9JuYdKM5MaA=" + }, + "font": "Arial;13;0", + "left": 342, + "top": 96, + "width": 78.04443359375, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9JuYdKM6yCY=" + }, + "edgePosition": 1, + "text": "1 : connexion" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9JuYdKM8ZFw=", + "_parent": { + "$ref": "AAAAAAGW9JuYdKM6yCY=" + }, + "model": { + "$ref": "AAAAAAGW9JuYdKM5MaA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 381, + "top": 81, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9JuYdKM6yCY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9JuYdKM9QNE=", + "_parent": { + "$ref": "AAAAAAGW9JuYdKM6yCY=" + }, + "model": { + "$ref": "AAAAAAGW9JuYdKM5MaA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 381, + "top": 116, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9JuYdKM6yCY=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9JuYdKM+whY=", + "_parent": { + "$ref": "AAAAAAGW9JuYdKM6yCY=" + }, + "model": { + "$ref": "AAAAAAGW9JuYdKM5MaA=" + }, + "font": "Arial;13;0", + "left": 488, + "top": 112, + "width": 14, + "height": 40 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + }, + "tail": { + "$ref": "AAAAAAGW9JZxrqKEdZQ=" + }, + "points": "275:112;488:112", + "nameLabel": { + "$ref": "AAAAAAGW9JuYdKM7oRY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9JuYdKM8ZFw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9JuYdKM9QNE=" + }, + "activation": { + "$ref": "AAAAAAGW9JuYdKM+whY=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9KAbyaOdGRo=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9KAbyaOcCNs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KAbyaOeItE=", + "_parent": { + "$ref": "AAAAAAGW9KAbyaOdGRo=" + }, + "model": { + "$ref": "AAAAAAGW9KAbyaOcCNs=" + }, + "font": "Arial;13;0", + "left": 572, + "top": 101, + "width": 78.04443359375, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KAbyaOdGRo=" + }, + "edgePosition": 1, + "text": "2 : vérifierID" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KAbyaOfDZg=", + "_parent": { + "$ref": "AAAAAAGW9KAbyaOdGRo=" + }, + "model": { + "$ref": "AAAAAAGW9KAbyaOcCNs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 611, + "top": 86, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9KAbyaOdGRo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KAbyaOgV8c=", + "_parent": { + "$ref": "AAAAAAGW9KAbyaOdGRo=" + }, + "model": { + "$ref": "AAAAAAGW9KAbyaOcCNs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 611, + "top": 121, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KAbyaOdGRo=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9KAbyaOhuV4=", + "_parent": { + "$ref": "AAAAAAGW9KAbyaOdGRo=" + }, + "model": { + "$ref": "AAAAAAGW9KAbyaOcCNs=" + }, + "font": "Arial;13;0", + "left": 721, + "top": 117, + "width": 14, + "height": 43 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9J+yFaODY8w=" + }, + "tail": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + }, + "points": "502:117;721:117", + "nameLabel": { + "$ref": "AAAAAAGW9KAbyaOeItE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9KAbyaOfDZg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9KAbyaOgV8c=" + }, + "activation": { + "$ref": "AAAAAAGW9KAbyaOhuV4=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9KCnZKO22OI=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9KCnZKO1GrU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KCnZKO3A7s=", + "_parent": { + "$ref": "AAAAAAGW9KCnZKO22OI=" + }, + "model": { + "$ref": "AAAAAAGW9KCnZKO1GrU=" + }, + "font": "Arial;13;0", + "left": 530, + "top": 148, + "width": 161.865234375, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KCnZKO22OI=" + }, + "edgePosition": 1, + "text": "3 : préférences" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KCnZKO4ft0=", + "_parent": { + "$ref": "AAAAAAGW9KCnZKO22OI=" + }, + "model": { + "$ref": "AAAAAAGW9KCnZKO1GrU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 610, + "top": 163, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9KCnZKO22OI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KCnZKO5RwY=", + "_parent": { + "$ref": "AAAAAAGW9KCnZKO22OI=" + }, + "model": { + "$ref": "AAAAAAGW9KCnZKO1GrU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 611, + "top": 128, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KCnZKO22OI=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9KCnZKO6UPw=", + "_parent": { + "$ref": "AAAAAAGW9KCnZKO22OI=" + }, + "model": { + "$ref": "AAAAAAGW9KCnZKO1GrU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 488, + "top": 144, + "width": 14, + "height": 25 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + }, + "tail": { + "$ref": "AAAAAAGW9J+yFaODY8w=" + }, + "points": "721:144;502:144", + "nameLabel": { + "$ref": "AAAAAAGW9KCnZKO3A7s=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9KCnZKO4ft0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9KCnZKO5RwY=" + }, + "activation": { + "$ref": "AAAAAAGW9KCnZKO6UPw=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9KMXCqPPNYI=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9KMXCqPOU/0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KMXCqPQH/4=", + "_parent": { + "$ref": "AAAAAAGW9KMXCqPPNYI=" + }, + "model": { + "$ref": "AAAAAAGW9KMXCqPOU/0=" + }, + "font": "Arial;13;0", + "left": 307, + "top": 150, + "width": 146.47216796875, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KMXCqPPNYI=" + }, + "edgePosition": 1, + "text": "4 : affichage_préférences" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KMXCqPRuH0=", + "_parent": { + "$ref": "AAAAAAGW9KMXCqPPNYI=" + }, + "model": { + "$ref": "AAAAAAGW9KMXCqPOU/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 380, + "top": 165, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9KMXCqPPNYI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KMXCqPSPKI=", + "_parent": { + "$ref": "AAAAAAGW9KMXCqPPNYI=" + }, + "model": { + "$ref": "AAAAAAGW9KMXCqPOU/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 381, + "top": 130, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KMXCqPPNYI=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9KMXCqPTyhc=", + "_parent": { + "$ref": "AAAAAAGW9KMXCqPPNYI=" + }, + "model": { + "$ref": "AAAAAAGW9KMXCqPOU/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 274, + "top": 146, + "width": 14, + "height": 25 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9JZxrqKEdZQ=" + }, + "tail": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + }, + "points": "488:146;275:146", + "nameLabel": { + "$ref": "AAAAAAGW9KMXCqPQH/4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9KMXCqPRuH0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9KMXCqPSPKI=" + }, + "activation": { + "$ref": "AAAAAAGW9KMXCqPTyhc=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9KReKqQEVcc=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9KReKqQDzo4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KReKqQFTTU=", + "_parent": { + "$ref": "AAAAAAGW9KReKqQEVcc=" + }, + "model": { + "$ref": "AAAAAAGW9KReKqQDzo4=" + }, + "font": "Arial;13;0", + "left": 292, + "top": 180, + "width": 179.91162109375, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KReKqQEVcc=" + }, + "edgePosition": 1, + "text": "5 : Recherche_film_horreur" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KReKqQGKsc=", + "_parent": { + "$ref": "AAAAAAGW9KReKqQEVcc=" + }, + "model": { + "$ref": "AAAAAAGW9KReKqQDzo4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 381, + "top": 165, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9KReKqQEVcc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KReKqQHc3s=", + "_parent": { + "$ref": "AAAAAAGW9KReKqQEVcc=" + }, + "model": { + "$ref": "AAAAAAGW9KReKqQDzo4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 381, + "top": 200, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KReKqQEVcc=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9KReKqQIYsY=", + "_parent": { + "$ref": "AAAAAAGW9KReKqQEVcc=" + }, + "model": { + "$ref": "AAAAAAGW9KReKqQDzo4=" + }, + "font": "Arial;13;0", + "left": 488, + "top": 196, + "width": 14, + "height": 28 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + }, + "tail": { + "$ref": "AAAAAAGW9JZxrqKEdZQ=" + }, + "points": "275:196;488:196", + "nameLabel": { + "$ref": "AAAAAAGW9KReKqQFTTU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9KReKqQGKsc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9KReKqQHc3s=" + }, + "activation": { + "$ref": "AAAAAAGW9KReKqQIYsY=" + } + }, + { + "_type": "UMLSeqLifelineView", + "_id": "AAAAAAGW9Kps1KTQhYI=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9Kps1KTPgSQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9Kps1KTRgcQ=", + "_parent": { + "$ref": "AAAAAAGW9Kps1KTQhYI=" + }, + "model": { + "$ref": "AAAAAAGW9Kps1KTPgSQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9Kps1KTSG4s=", + "_parent": { + "$ref": "AAAAAAGW9Kps1KTRgcQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 218, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9Kps1KTT5ss=", + "_parent": { + "$ref": "AAAAAAGW9Kps1KTRgcQ=" + }, + "font": "Arial;13;1", + "left": 901, + "top": 47, + "width": 105.630859375, + "height": 13, + "text": "Lifeline4: Films" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9Kps1KTU6LQ=", + "_parent": { + "$ref": "AAAAAAGW9Kps1KTRgcQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 218, + "width": 106.20263671875, + "height": 13, + "text": "(from Interaction1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9Kps1KTVFpU=", + "_parent": { + "$ref": "AAAAAAGW9Kps1KTRgcQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 218, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 896, + "top": 40, + "width": 115.630859375, + "height": 40, + "stereotypeLabel": { + "$ref": "AAAAAAGW9Kps1KTSG4s=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9Kps1KTT5ss=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9Kps1KTU6LQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9Kps1KTVFpU=" + } + }, + { + "_type": "UMLLinePartView", + "_id": "AAAAAAGW9Kps1KTWSwk=", + "_parent": { + "$ref": "AAAAAAGW9Kps1KTQhYI=" + }, + "model": { + "$ref": "AAAAAAGW9Kps1KTPgSQ=" + }, + "font": "Arial;13;0", + "left": 953, + "top": 81, + "width": 1, + "height": 391 + } + ], + "font": "Arial;13;0", + "left": 896, + "top": 40, + "width": 114.630859375, + "height": 432, + "nameCompartment": { + "$ref": "AAAAAAGW9Kps1KTRgcQ=" + }, + "linePart": { + "$ref": "AAAAAAGW9Kps1KTWSwk=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9Kq9RqTx0D4=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9Kq9RqTwcJs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9Kq9R6Tytns=", + "_parent": { + "$ref": "AAAAAAGW9Kq9RqTx0D4=" + }, + "model": { + "$ref": "AAAAAAGW9Kq9RqTwcJs=" + }, + "font": "Arial;13;0", + "left": 675, + "top": 193, + "width": 98.2490234375, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9Kq9RqTx0D4=" + }, + "edgePosition": 1, + "text": "6 : Films_horreur" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9Kq9R6TzzGk=", + "_parent": { + "$ref": "AAAAAAGW9Kq9RqTx0D4=" + }, + "model": { + "$ref": "AAAAAAGW9Kq9RqTwcJs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 724, + "top": 178, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9Kq9RqTx0D4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9Kq9R6T0Hcc=", + "_parent": { + "$ref": "AAAAAAGW9Kq9RqTx0D4=" + }, + "model": { + "$ref": "AAAAAAGW9Kq9RqTwcJs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 724, + "top": 213, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9Kq9RqTx0D4=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9Kq9R6T1fPc=", + "_parent": { + "$ref": "AAAAAAGW9Kq9RqTx0D4=" + }, + "model": { + "$ref": "AAAAAAGW9Kq9RqTwcJs=" + }, + "font": "Arial;13;0", + "left": 946, + "top": 209, + "width": 14, + "height": 28 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9Kps1KTWSwk=" + }, + "tail": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + }, + "points": "502:209;946:209", + "nameLabel": { + "$ref": "AAAAAAGW9Kq9R6Tytns=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9Kq9R6TzzGk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9Kq9R6T0Hcc=" + }, + "activation": { + "$ref": "AAAAAAGW9Kq9R6T1fPc=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9KsluKUHCWg=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9KsluKUGeb4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KsluKUI/60=", + "_parent": { + "$ref": "AAAAAAGW9KsluKUHCWg=" + }, + "model": { + "$ref": "AAAAAAGW9KsluKUGeb4=" + }, + "font": "Arial;13;0", + "left": 659, + "top": 236, + "width": 122.10986328125, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KsluKUHCWg=" + }, + "edgePosition": 1, + "text": "7 : Liste_film_horreur" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KsluKUJZoc=", + "_parent": { + "$ref": "AAAAAAGW9KsluKUHCWg=" + }, + "model": { + "$ref": "AAAAAAGW9KsluKUGeb4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 720, + "top": 251, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9KsluKUHCWg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KsluKUKomY=", + "_parent": { + "$ref": "AAAAAAGW9KsluKUHCWg=" + }, + "model": { + "$ref": "AAAAAAGW9KsluKUGeb4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 721, + "top": 216, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KsluKUHCWg=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9KsluKULm04=", + "_parent": { + "$ref": "AAAAAAGW9KsluKUHCWg=" + }, + "model": { + "$ref": "AAAAAAGW9KsluKUGeb4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 495, + "top": 232, + "width": 14, + "height": 25 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + }, + "tail": { + "$ref": "AAAAAAGW9Kps1KTWSwk=" + }, + "points": "946:232;496:232", + "nameLabel": { + "$ref": "AAAAAAGW9KsluKUI/60=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9KsluKUJZoc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9KsluKUKomY=" + }, + "activation": { + "$ref": "AAAAAAGW9KsluKULm04=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9Ktcj6Ud4qw=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9Ktcj6Ucj3I=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9Ktcj6UebMU=", + "_parent": { + "$ref": "AAAAAAGW9Ktcj6Ud4qw=" + }, + "model": { + "$ref": "AAAAAAGW9Ktcj6Ucj3I=" + }, + "font": "Arial;13;0", + "left": 335, + "top": 239, + "width": 98.03955078125, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9Ktcj6Ud4qw=" + }, + "edgePosition": 1, + "text": "8 : affichage_film" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KtckKUf2R0=", + "_parent": { + "$ref": "AAAAAAGW9Ktcj6Ud4qw=" + }, + "model": { + "$ref": "AAAAAAGW9Ktcj6Ucj3I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 384, + "top": 254, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9Ktcj6Ud4qw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KtckKUgjbc=", + "_parent": { + "$ref": "AAAAAAGW9Ktcj6Ud4qw=" + }, + "model": { + "$ref": "AAAAAAGW9Ktcj6Ucj3I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 385, + "top": 219, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9Ktcj6Ud4qw=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9KtckKUhb/s=", + "_parent": { + "$ref": "AAAAAAGW9Ktcj6Ud4qw=" + }, + "model": { + "$ref": "AAAAAAGW9Ktcj6Ucj3I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 274, + "top": 235, + "width": 14, + "height": 25 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9JZxrqKEdZQ=" + }, + "tail": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + }, + "points": "495:235;275:235", + "nameLabel": { + "$ref": "AAAAAAGW9Ktcj6UebMU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9KtckKUf2R0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9KtckKUgjbc=" + }, + "activation": { + "$ref": "AAAAAAGW9KtckKUhb/s=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9KvsWqUzi/c=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9KvsWqUyAaU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KvsWqU0Szg=", + "_parent": { + "$ref": "AAAAAAGW9KvsWqUzi/c=" + }, + "model": { + "$ref": "AAAAAAGW9KvsWqUyAaU=" + }, + "font": "Arial;13;0", + "left": 294, + "top": 272, + "width": 174.8525390625, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KvsWqUzi/c=" + }, + "edgePosition": 1, + "text": "9 : selection_4eme_film" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KvsWqU1gM4=", + "_parent": { + "$ref": "AAAAAAGW9KvsWqUzi/c=" + }, + "model": { + "$ref": "AAAAAAGW9KvsWqUyAaU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 381, + "top": 257, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9KvsWqUzi/c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9KvsWqU2GuQ=", + "_parent": { + "$ref": "AAAAAAGW9KvsWqUzi/c=" + }, + "model": { + "$ref": "AAAAAAGW9KvsWqUyAaU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 381, + "top": 292, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9KvsWqUzi/c=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9KvsWqU3j8k=", + "_parent": { + "$ref": "AAAAAAGW9KvsWqUzi/c=" + }, + "model": { + "$ref": "AAAAAAGW9KvsWqUyAaU=" + }, + "font": "Arial;13;0", + "left": 488, + "top": 288, + "width": 14, + "height": 28 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + }, + "tail": { + "$ref": "AAAAAAGW9JZxrqKEdZQ=" + }, + "points": "275:288;488:288", + "nameLabel": { + "$ref": "AAAAAAGW9KvsWqU0Szg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9KvsWqU1gM4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9KvsWqU2GuQ=" + }, + "activation": { + "$ref": "AAAAAAGW9KvsWqU3j8k=" + } + }, + { + "_type": "UMLSeqLifelineView", + "_id": "AAAAAAGW9K0rT6WxkQg=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9K0rT6Ww3fg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGW9K0rT6WyTvA=", + "_parent": { + "$ref": "AAAAAAGW9K0rT6WxkQg=" + }, + "model": { + "$ref": "AAAAAAGW9K0rT6Ww3fg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGW9K0rT6WzB8s=", + "_parent": { + "$ref": "AAAAAAGW9K0rT6WyTvA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -24, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9K0rT6W090E=", + "_parent": { + "$ref": "AAAAAAGW9K0rT6WyTvA=" + }, + "font": "Arial;13;1", + "left": 1069, + "top": 47, + "width": 118.63720703125, + "height": 13, + "text": "Lifeline5: Lecteur" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9K0rT6W1P8I=", + "_parent": { + "$ref": "AAAAAAGW9K0rT6WyTvA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -24, + "width": 106.20263671875, + "height": 13, + "text": "(from Interaction1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGW9K0rT6W2Otw=", + "_parent": { + "$ref": "AAAAAAGW9K0rT6WyTvA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -24, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1064, + "top": 40, + "width": 128.63720703125, + "height": 40, + "stereotypeLabel": { + "$ref": "AAAAAAGW9K0rT6WzB8s=" + }, + "nameLabel": { + "$ref": "AAAAAAGW9K0rT6W090E=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGW9K0rT6W1P8I=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9K0rT6W2Otw=" + } + }, + { + "_type": "UMLLinePartView", + "_id": "AAAAAAGW9K0rT6W3Dgk=", + "_parent": { + "$ref": "AAAAAAGW9K0rT6WxkQg=" + }, + "model": { + "$ref": "AAAAAAGW9K0rT6Ww3fg=" + }, + "font": "Arial;13;0", + "left": 1128, + "top": 81, + "width": 1, + "height": 391 + } + ], + "font": "Arial;13;0", + "left": 1064, + "top": 40, + "width": 127.63720703125, + "height": 432, + "nameCompartment": { + "$ref": "AAAAAAGW9K0rT6WyTvA=" + }, + "linePart": { + "$ref": "AAAAAAGW9K0rT6W3Dgk=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9L09mKYxLrI=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9L09mKYw37M=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9L09mKYyi8s=", + "_parent": { + "$ref": "AAAAAAGW9L09mKYxLrI=" + }, + "model": { + "$ref": "AAAAAAGW9L09mKYw37M=" + }, + "font": "Arial;13;0", + "left": 753, + "top": 278, + "width": 117.7744140625, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9L09mKYxLrI=" + }, + "edgePosition": 1, + "text": "10 : charger_film" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9L09mKYzKf8=", + "_parent": { + "$ref": "AAAAAAGW9L09mKYxLrI=" + }, + "model": { + "$ref": "AAAAAAGW9L09mKYw37M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 811, + "top": 263, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9L09mKYxLrI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9L09mKY0Osc=", + "_parent": { + "$ref": "AAAAAAGW9L09mKYxLrI=" + }, + "model": { + "$ref": "AAAAAAGW9L09mKYw37M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 811, + "top": 298, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9L09mKYxLrI=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9L09mKY1ZSk=", + "_parent": { + "$ref": "AAAAAAGW9L09mKYxLrI=" + }, + "model": { + "$ref": "AAAAAAGW9L09mKYw37M=" + }, + "font": "Arial;13;0", + "left": 1121, + "top": 294, + "width": 14, + "height": 28 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9K0rT6W3Dgk=" + }, + "tail": { + "$ref": "AAAAAAGW9JsGwaMfKYo=" + }, + "points": "502:294;1121:294", + "nameLabel": { + "$ref": "AAAAAAGW9L09mKYyi8s=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9L09mKYzKf8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9L09mKY0Osc=" + }, + "activation": { + "$ref": "AAAAAAGW9L09mKY1ZSk=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9K35GKXTo7c=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9K35GKXSopA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9K35GKXUnfo=", + "_parent": { + "$ref": "AAAAAAGW9K35GKXTo7c=" + }, + "model": { + "$ref": "AAAAAAGW9K35GKXSopA=" + }, + "font": "Arial;13;0", + "left": 629, + "top": 336, + "width": 138.00439453125, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9K35GKXTo7c=" + }, + "edgePosition": 1, + "text": "11 : lancement_film" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9K35GKXVS2M=", + "_parent": { + "$ref": "AAAAAAGW9K35GKXTo7c=" + }, + "model": { + "$ref": "AAAAAAGW9K35GKXSopA=" + }, + "font": "Arial;13;0", + "left": 670, + "top": 321, + "width": 57.0908203125, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9K35GKXTo7c=" + }, + "edgePosition": 1, + "text": "«destroy»" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9K35GKXWklw=", + "_parent": { + "$ref": "AAAAAAGW9K35GKXTo7c=" + }, + "model": { + "$ref": "AAAAAAGW9K35GKXSopA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 698, + "top": 356, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9K35GKXTo7c=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9K35GKXXhBw=", + "_parent": { + "$ref": "AAAAAAGW9K35GKXTo7c=" + }, + "model": { + "$ref": "AAAAAAGW9K35GKXSopA=" + }, + "font": "Arial;13;0", + "left": 1121, + "top": 352, + "width": 14, + "height": 28 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9K0rT6W3Dgk=" + }, + "tail": { + "$ref": "AAAAAAGW9JZxrqKEdZQ=" + }, + "points": "275:352;1121:352", + "nameLabel": { + "$ref": "AAAAAAGW9K35GKXUnfo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9K35GKXVS2M=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9K35GKXWklw=" + }, + "activation": { + "$ref": "AAAAAAGW9K35GKXXhBw=" + } + }, + { + "_type": "UMLSeqMessageView", + "_id": "AAAAAAGW9K/RnaYRqI4=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJtRyI=" + }, + "model": { + "$ref": "AAAAAAGW9K/RnaYQeck=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9K/RnaYSu64=", + "_parent": { + "$ref": "AAAAAAGW9K/RnaYRqI4=" + }, + "model": { + "$ref": "AAAAAAGW9K/RnaYQeck=" + }, + "font": "Arial;13;0", + "left": 641, + "top": 400, + "width": 114.1689453125, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9K/RnaYRqI4=" + }, + "edgePosition": 1, + "text": "12 : Arret_lecteur" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9K/RnaYTVCk=", + "_parent": { + "$ref": "AAAAAAGW9K/RnaYRqI4=" + }, + "model": { + "$ref": "AAAAAAGW9K/RnaYQeck=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 698, + "top": 385, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGW9K/RnaYRqI4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGW9K/RnaYUxzw=", + "_parent": { + "$ref": "AAAAAAGW9K/RnaYRqI4=" + }, + "model": { + "$ref": "AAAAAAGW9K/RnaYQeck=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 698, + "top": 420, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 10, + "hostEdge": { + "$ref": "AAAAAAGW9K/RnaYRqI4=" + }, + "edgePosition": 1 + }, + { + "_type": "UMLActivationView", + "_id": "AAAAAAGW9K/RnaYVERE=", + "_parent": { + "$ref": "AAAAAAGW9K/RnaYRqI4=" + }, + "model": { + "$ref": "AAAAAAGW9K/RnaYQeck=" + }, + "font": "Arial;13;0", + "left": 1121, + "top": 416, + "width": 14, + "height": 28 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGW9K0rT6W3Dgk=" + }, + "tail": { + "$ref": "AAAAAAGW9JZxrqKEdZQ=" + }, + "points": "275:416;1121:416", + "nameLabel": { + "$ref": "AAAAAAGW9K/RnaYSu64=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGW9K/RnaYTVCk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGW9K/RnaYUxzw=" + }, + "activation": { + "$ref": "AAAAAAGW9K/RnaYVERE=" + } + } + ] + }, + { + "_type": "UMLActor", + "_id": "AAAAAAGW9JXztaI/9NY=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "Bob" + } + ], + "messages": [ + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9JuYdKM5MaA=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "connexion", + "source": { + "$ref": "AAAAAAGW9JZxrqJ97Fk=" + }, + "target": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + } + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9KAbyaOcCNs=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "vérifierID", + "source": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + }, + "target": { + "$ref": "AAAAAAGW9J+yFKN8Vgc=" + } + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9KCnZKO1GrU=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "préférences", + "source": { + "$ref": "AAAAAAGW9J+yFKN8Vgc=" + }, + "target": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + }, + "messageSort": "reply" + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9KMXCqPOU/0=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "affichage_préférences", + "source": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + }, + "target": { + "$ref": "AAAAAAGW9JZxrqJ97Fk=" + }, + "messageSort": "reply" + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9KReKqQDzo4=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "Recherche_film_horreur", + "source": { + "$ref": "AAAAAAGW9JZxrqJ97Fk=" + }, + "target": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + } + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9Kq9RqTwcJs=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "Films_horreur", + "source": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + }, + "target": { + "$ref": "AAAAAAGW9Kps1KTPgSQ=" + } + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9KsluKUGeb4=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "Liste_film_horreur", + "source": { + "$ref": "AAAAAAGW9Kps1KTPgSQ=" + }, + "target": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + }, + "messageSort": "reply" + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9Ktcj6Ucj3I=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "affichage_film", + "source": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + }, + "target": { + "$ref": "AAAAAAGW9JZxrqJ97Fk=" + }, + "messageSort": "reply" + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9KvsWqUyAaU=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "selection_4eme_film", + "source": { + "$ref": "AAAAAAGW9JZxrqJ97Fk=" + }, + "target": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + } + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9L09mKYw37M=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "charger_film", + "source": { + "$ref": "AAAAAAGW9JsGwaMYVYY=" + }, + "target": { + "$ref": "AAAAAAGW9K0rT6Ww3fg=" + } + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9K35GKXSopA=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "lancement_film", + "source": { + "$ref": "AAAAAAGW9JZxrqJ97Fk=" + }, + "target": { + "$ref": "AAAAAAGW9K0rT6Ww3fg=" + }, + "messageSort": "deleteMessage" + }, + { + "_type": "UMLMessage", + "_id": "AAAAAAGW9K/RnaYQeck=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "Arret_lecteur", + "source": { + "$ref": "AAAAAAGW9JZxrqJ97Fk=" + }, + "target": { + "$ref": "AAAAAAGW9K0rT6Ww3fg=" + } + } + ], + "participants": [ + { + "_type": "UMLLifeline", + "_id": "AAAAAAGW9JZxrqJ97Fk=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "Lifeline1", + "represent": { + "$ref": "AAAAAAGW9JZxrqJ8shE=" + }, + "isMultiInstance": false + }, + { + "_type": "UMLLifeline", + "_id": "AAAAAAGW9JsGwaMYVYY=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "Lifeline2", + "represent": { + "$ref": "AAAAAAGW9JsGwaMXUnc=" + }, + "isMultiInstance": false + }, + { + "_type": "UMLLifeline", + "_id": "AAAAAAGW9J+yFKN8Vgc=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "Lifeline3", + "represent": { + "$ref": "AAAAAAGW9J+yFKN7L4E=" + }, + "isMultiInstance": false + }, + { + "_type": "UMLLifeline", + "_id": "AAAAAAGW9Kps1KTPgSQ=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "Lifeline4", + "represent": { + "$ref": "AAAAAAGW9Kps1KTON4E=" + }, + "isMultiInstance": false + }, + { + "_type": "UMLLifeline", + "_id": "AAAAAAGW9K0rT6Ww3fg=", + "_parent": { + "$ref": "AAAAAAGW9JY0bqJsRwE=" + }, + "name": "Lifeline5", + "represent": { + "$ref": "AAAAAAGW9K0rT6WvqhM=" + }, + "isMultiInstance": false + } + ] + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGW9JZxrqJ8shE=", + "_parent": { + "$ref": "AAAAAAGW9JY0baJrJjQ=" + }, + "name": "Role1", + "type": { + "$ref": "AAAAAAGW9JXztaI/9NY=" + } + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGW9JsGwaMXUnc=", + "_parent": { + "$ref": "AAAAAAGW9JY0baJrJjQ=" + }, + "name": "Role2", + "type": { + "$ref": "AAAAAAGW9JrCd6Lsi+Q=" + } + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGW9J+yFKN7L4E=", + "_parent": { + "$ref": "AAAAAAGW9JY0baJrJjQ=" + }, + "name": "Role3", + "type": { + "$ref": "AAAAAAGW9J+NS6NRETI=" + } + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGW9Kps1KTON4E=", + "_parent": { + "$ref": "AAAAAAGW9JY0baJrJjQ=" + }, + "name": "Role4", + "type": { + "$ref": "AAAAAAGW9KlZa6SjARU=" + } + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGW9K0rT6WvqhM=", + "_parent": { + "$ref": "AAAAAAGW9JY0baJrJjQ=" + }, + "name": "Role5", + "type": { + "$ref": "AAAAAAGW9KzSN6VSfQQ=" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP6-Dessin/1.Formes/Formes.class b/DEV.2.1/TP/TP6-Dessin/1.Formes/Formes.class new file mode 100644 index 0000000..3d2816c Binary files /dev/null and b/DEV.2.1/TP/TP6-Dessin/1.Formes/Formes.class differ diff --git a/DEV.2.1/TP/TP6-Dessin/1.Formes/Formes.java b/DEV.2.1/TP/TP6-Dessin/1.Formes/Formes.java index 4ad826e..59908f0 100644 --- a/DEV.2.1/TP/TP6-Dessin/1.Formes/Formes.java +++ b/DEV.2.1/TP/TP6-Dessin/1.Formes/Formes.java @@ -6,7 +6,7 @@ public class Formes extends JComponent { public Formes() { super(); - this.img = Toolkit.getDefaultToolkit().getImage("img.png"); + this.img = Toolkit.getDefaultToolkit().getImage("../2.Sautoir/img.png"); } @Override diff --git a/DEV.2.1/TP/TP6-Dessin/1.Formes/MainFormes.class b/DEV.2.1/TP/TP6-Dessin/1.Formes/MainFormes.class new file mode 100644 index 0000000..4016325 Binary files /dev/null and b/DEV.2.1/TP/TP6-Dessin/1.Formes/MainFormes.class differ diff --git a/DEV.2.1/TP/TP9-Event..suite/1./Cercle.java b/DEV.2.1/TP/TP9-Event..suite/1./Cercle.java new file mode 100644 index 0000000..774f004 --- /dev/null +++ b/DEV.2.1/TP/TP9-Event..suite/1./Cercle.java @@ -0,0 +1,30 @@ +import java.awt.*; +import javax.swing.*; + +public class Cercle extends JComponent { + + private Color fond; + + public Cercle(Color fond) { + this.fond = fond; + } + + @Override + public void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + + if (this.isOpaque()) { + pinceau.setColor(this.getBackground()); + pinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + + pinceau.setColor(Color.DARK_GRAY); + pinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + pinceau.setColor(this.fond); + pinceau.fillOval(this.getWidth()/4, this.getHeight()/4, this.getWidth()/2, this.getHeight()/2); + } + + public void setFond(Color n) { + this.fond = n; + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP9-Event..suite/1./Fenetre.java b/DEV.2.1/TP/TP9-Event..suite/1./Fenetre.java new file mode 100644 index 0000000..722f51f --- /dev/null +++ b/DEV.2.1/TP/TP9-Event..suite/1./Fenetre.java @@ -0,0 +1,29 @@ +import java.awt.*; +import javax.swing.*; + +public class Fenetre extends JFrame { + public Fenetre() { + this.setSize(700, 100); + this.setLocation(100, 100); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setLayout(new GridLayout(1, 10)); + + Cercle[] tabCercles = new Cercle[10]; + + for (int i = 0; i != 5; i++) { + Cercle nouveauCercle = new Cercle(Color.ORANGE); + this.add(nouveauCercle); + tabCercles[i] = nouveauCercle; + } + + for (int i = 5; i != 10; i++) { + Cercle nouveauCercle = new Cercle(Color.LIGHT_GRAY); + this.add(nouveauCercle); + tabCercles[i] = nouveauCercle; + } + + MoletteSouris gestionSouris = new MoletteSouris(this, tabCercles); + this.addMouseWheelListener(gestionSouris); + } + +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP9-Event..suite/1./Main.java b/DEV.2.1/TP/TP9-Event..suite/1./Main.java new file mode 100644 index 0000000..2768c3d --- /dev/null +++ b/DEV.2.1/TP/TP9-Event..suite/1./Main.java @@ -0,0 +1,6 @@ +public class Main { + public static void main(String[] args) { + Fenetre fenetre = new Fenetre(); + fenetre.setVisible(true); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP9-Event..suite/1./MainVolume.class b/DEV.2.1/TP/TP9-Event..suite/1./MainVolume.class deleted file mode 100644 index 937cb9c..0000000 Binary files a/DEV.2.1/TP/TP9-Event..suite/1./MainVolume.class and /dev/null differ diff --git a/DEV.2.1/TP/TP9-Event..suite/1./MoletteSouris.java b/DEV.2.1/TP/TP9-Event..suite/1./MoletteSouris.java new file mode 100644 index 0000000..6ccddd9 --- /dev/null +++ b/DEV.2.1/TP/TP9-Event..suite/1./MoletteSouris.java @@ -0,0 +1,38 @@ +import java.awt.event.*; +import java.awt.*; +import javax.swing.*; + +public class MoletteSouris implements MouseWheelListener { + + private Fenetre fenetre; + private Cercle[] tabCercles; + private int depart; + + public MoletteSouris(Fenetre fenetre, Cercle[] tabCercles) { + this.fenetre = fenetre; + this.tabCercles = tabCercles; + this.depart = 5; + } + + @Override + public void mouseWheelMoved(MouseWheelEvent evenement) { + int sensRotation = evenement.getWheelRotation(); + this.depart -= sensRotation; + + if (this.depart == 11) { + this.depart = 10; + } + else if (this.depart == -1) { + this.depart = 0; + } + + for (int i = 0; i < this.depart ; i++) { + this.tabCercles[i].setFond(Color.ORANGE); + } + for (int i = this.depart; i < 10; i++) { + this.tabCercles[i].setFond(Color.LIGHT_GRAY); + } + this.fenetre.repaint(); + + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP9-Event..suite/1./MouseWheel.class b/DEV.2.1/TP/TP9-Event..suite/1./MouseWheel.class deleted file mode 100644 index c9e6dff..0000000 Binary files a/DEV.2.1/TP/TP9-Event..suite/1./MouseWheel.class and /dev/null differ diff --git a/DEV.2.1/TP/TP9-Event..suite/1./Volume.class b/DEV.2.1/TP/TP9-Event..suite/1./Volume.class deleted file mode 100644 index ba7977a..0000000 Binary files a/DEV.2.1/TP/TP9-Event..suite/1./Volume.class and /dev/null differ diff --git a/DEV.2.1/TP/TP9-Event..suite/2./Fenetre.class b/DEV.2.1/TP/TP9-Event..suite/2./Fenetre.class new file mode 100644 index 0000000..6e120cc Binary files /dev/null and b/DEV.2.1/TP/TP9-Event..suite/2./Fenetre.class differ diff --git a/DEV.2.1/TP/TP9-Event..suite/2./Fenetre.java b/DEV.2.1/TP/TP9-Event..suite/2./Fenetre.java new file mode 100644 index 0000000..2c5916e --- /dev/null +++ b/DEV.2.1/TP/TP9-Event..suite/2./Fenetre.java @@ -0,0 +1,13 @@ +import java.awt.*; +import javax.swing.*; + +public class Fenetre extends JFrame { + public Fenetre() { + this.setSize(800, 500); + this.setLocation(100, 100); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + GestionSouris clicSouris = new GestionSouris(this); + this.addMouseListener(clicSouris); + this.addMouseMotionListener(new GestionMouvementSouris(this, clicSouris)); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP9-Event..suite/2./GestionMouvementSouris.class b/DEV.2.1/TP/TP9-Event..suite/2./GestionMouvementSouris.class new file mode 100644 index 0000000..6921b15 Binary files /dev/null and b/DEV.2.1/TP/TP9-Event..suite/2./GestionMouvementSouris.class differ diff --git a/DEV.2.1/TP/TP9-Event..suite/2./GestionMouvementSouris.java b/DEV.2.1/TP/TP9-Event..suite/2./GestionMouvementSouris.java new file mode 100644 index 0000000..926a813 --- /dev/null +++ b/DEV.2.1/TP/TP9-Event..suite/2./GestionMouvementSouris.java @@ -0,0 +1,24 @@ +import java.awt.*; +import javax.swing.*; +import java.awt.event.*; + +public class GestionMouvementSouris implements MouseMotionListener { + + private Fenetre fenetre; + private GestionSouris clicSouris; + + public GestionMouvementSouris(Fenetre fenetre, GestionSouris clicSouris) { + this.fenetre = fenetre; + this.clicSouris = clicSouris; + } + + public void mouseDragged(MouseEvent e) { + System.out.println("Appuyé"); + this.clicSouris.setRect(e.getX(), e.getY()); + this.fenetre.repaint(); + } + + public void mouseMoved(MouseEvent e) { + System.out.println("Relâché"); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP9-Event..suite/2./GestionSouris.class b/DEV.2.1/TP/TP9-Event..suite/2./GestionSouris.class new file mode 100644 index 0000000..9d72c95 Binary files /dev/null and b/DEV.2.1/TP/TP9-Event..suite/2./GestionSouris.class differ diff --git a/DEV.2.1/TP/TP9-Event..suite/2./GestionSouris.java b/DEV.2.1/TP/TP9-Event..suite/2./GestionSouris.java new file mode 100644 index 0000000..e7934f8 --- /dev/null +++ b/DEV.2.1/TP/TP9-Event..suite/2./GestionSouris.java @@ -0,0 +1,55 @@ +import java.awt.event.*; +import javax.swing.*; +import java.awt.*; + +public class GestionSouris implements MouseListener { + + private Fenetre fenetre; + private JPanel rect; + private int debutX; + private int debutY; + private int finX; + private int finY; + private boolean rectActif; + + public GestionSouris(Fenetre fenetre) { + this.fenetre = fenetre; + this.rectActif = false; + } + + + public void mouseClicked(MouseEvent evenement) { + } + + public void mouseEntered(MouseEvent evenement){ + } + + public void mouseExited(MouseEvent evenement){ + } + + public void mousePressed(MouseEvent evenement){ + if (this.rectActif) { + this.fenetre.remove(this.rect); + } + System.out.println("Appui simple"); + this.rect = new JPanel(); + this.rect.setOpaque(true); + this.rect.setBackground(Color.BLUE); + this.debutX = evenement.getX()-4; // Le -4 est du à un décalage de la méthode getX jsp pourquoi sah + this.debutY = evenement.getY()-26; // Pareil pour le -26 + this.fenetre.add(this.rect); + this.fenetre.repaint(); + } + + public void mouseReleased(MouseEvent evenement){ + this.rectActif = true; + } + + public void setRect(int finX, int finY) { + System.out.println(this.debutX + " " + this.debutY + " " + (finX-this.debutX+5) + " " + (finY-this.debutY-10) + ""); + this.rect.setBounds(this.debutX, this.debutY, finX-this.debutX-4, finY-this.debutY-26); // Décalage encore + //System.out.println("debut : [" + this.debutX + ", " + this.debutY + "]"); + //System.out.println("fin : [" + finX + ", " + finY + "]"); + this.fenetre.repaint(); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP9-Event..suite/2./Main.class b/DEV.2.1/TP/TP9-Event..suite/2./Main.class new file mode 100644 index 0000000..4bfefb8 Binary files /dev/null and b/DEV.2.1/TP/TP9-Event..suite/2./Main.class differ diff --git a/DEV.2.1/TP/TP9-Event..suite/2./Main.java b/DEV.2.1/TP/TP9-Event..suite/2./Main.java new file mode 100644 index 0000000..2768c3d --- /dev/null +++ b/DEV.2.1/TP/TP9-Event..suite/2./Main.java @@ -0,0 +1,6 @@ +public class Main { + public static void main(String[] args) { + Fenetre fenetre = new Fenetre(); + fenetre.setVisible(true); + } +} \ No newline at end of file diff --git a/DEV.2.1/TP/TP9-Event..suite/2./Rect.class b/DEV.2.1/TP/TP9-Event..suite/2./Rect.class new file mode 100644 index 0000000..b9f4cf8 Binary files /dev/null and b/DEV.2.1/TP/TP9-Event..suite/2./Rect.class differ diff --git a/DEV.2.1/TP/TP9-Event..suite/2./Rect.java b/DEV.2.1/TP/TP9-Event..suite/2./Rect.java new file mode 100644 index 0000000..d7fe324 --- /dev/null +++ b/DEV.2.1/TP/TP9-Event..suite/2./Rect.java @@ -0,0 +1,29 @@ +import java.awt.*; +import javax.swing.*; + +public class Rect extends JComponent { + + private int departX; + private int departY; + private int finX; + private int finY; + + public Rect(int departX, int departY, int finX, int finY) { + this.departX = departX; + this.departY = departY; + this.finX = finX; + this.finY = finY; + } + + @Override + public void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + if (this.isOpaque()) { + secondPinceau.setColor(this.getBackground()); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + + secondPinceau.setColor(Color.BLUE); + secondPinceau.fillRect(this.departX, this.departY, this.finX-this.departX, this.finY-this.departY); + } +} \ No newline at end of file diff --git a/DEV.2.1/cours-java/10 Flux de caractères.docx b/DEV.2.1/cours-java/10 Flux de caractères.docx deleted file mode 100644 index a1c83fe..0000000 Binary files a/DEV.2.1/cours-java/10 Flux de caractères.docx and /dev/null differ diff --git a/DEV.2.1/cours-java/10.01 Exo.docx b/DEV.2.1/cours-java/10.01 Exo.docx deleted file mode 100644 index 9150d44..0000000 Binary files a/DEV.2.1/cours-java/10.01 Exo.docx and /dev/null differ diff --git a/DEV.2.1/cours-java/11 Diagramme de cas d'utilisation.docx b/DEV.2.1/cours-java/11 Diagramme de cas d'utilisation.docx deleted file mode 100644 index e6a9650..0000000 Binary files a/DEV.2.1/cours-java/11 Diagramme de cas d'utilisation.docx and /dev/null differ diff --git a/DEV.2.1/test/Direction.java b/DEV.2.1/test/Direction.java new file mode 100644 index 0000000..b995e52 --- /dev/null +++ b/DEV.2.1/test/Direction.java @@ -0,0 +1,101 @@ +/** + * La classe Direction est utilisée pour signifier une orientation possible + * parmi les quatre points cardinaux. + * + * @version 1.1 + * @author Luc Hernandez + */ +public class Direction { + + /** + * Constante pointant vers le nord (c'est à dire vers le haut de l'écran). + */ + public static final Direction NORD = new Direction(+0, -1); + + /** + * Constante pointant vers le sud (c'est à dire vers le bas de l'écran). + */ + public static final Direction SUD = new Direction(+0, +1); + + /** + * Constante pointant vers l'est (c'est à dire vers la droite de l'écran). + */ + public static final Direction EST = new Direction(+1, +0); + + /** + * Constante pointant vers l'ouest (c'est à dire vers la gauche de l'écran). + */ + public static final Direction OUEST = new Direction(-1, +0); + + /** + * Composante horizontale de la direction (-1, 0 ou 1). + */ + private int decalageX; + + /** + * Composante verticale de la direction (-1, 0 ou 1). + */ + private int decalageY; + + /** + * Constructeur uniquement destiné à la création des constantes publiques. + * + * @param x l'abcisse (-1, 0 ou 1) + * @param y l'ordonnée (-1, 0 ou 1) + */ + private Direction(int x, int y) { + this.decalageX = x; + this.decalageY = y; + } + + /** + * Renvoie la composante horizontale de la direction. + * + * @return la composante horizontale de la direction (-1, 0 ou 1) + */ + public int getDecalageX() { + return this.decalageX; + } + + /** + * Renvoie la composante verticale de la direction. + * + * @return la composante verticale de la direction (-1, 0 ou 1) + */ + public int getDecalageY() { + return this.decalageY; + } + + /** + * Renvoie la direction produite par un quart de tour dans le sens horaire. + * + * @return la nouvelle direction + */ + public Direction quartDeTour() { + if (this == Direction.NORD) + return Direction.EST; + else if (this == Direction.EST) + return Direction.SUD; + else if (this == Direction.SUD) + return Direction.OUEST; + else // if (this == Direction.OUEST) + return Direction.NORD; + } + + /** + * Renvoie la direction produite par un quart de tour dans le sens anti-horaire. + * + * @return la nouvelle direction + */ + public Direction quartDeTourAnti() { + if (this == Direction.NORD) + return Direction.OUEST; + else if (this == Direction.EST) + return Direction.NORD; + else if (this == Direction.SUD) + return Direction.EST; + else // if (this == Direction.OUEST) + return Direction.SUD; + } + +} diff --git a/DEV.2.1/CM-blanc/CM-1/Fenetre.java b/DEV.2.1/test/test.1/Fenetre.java similarity index 51% rename from DEV.2.1/CM-blanc/CM-1/Fenetre.java rename to DEV.2.1/test/test.1/Fenetre.java index 2414e50..e8d7c3a 100644 --- a/DEV.2.1/CM-blanc/CM-1/Fenetre.java +++ b/DEV.2.1/test/test.1/Fenetre.java @@ -1,12 +1,8 @@ -import java.awt.*; -import javax.swing.*; - public class Fenetre extends JFrame { public Fenetre() { - super(""); + super("SameGame"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - this.setSize(500,500); - this.setLocation(500,250); + this.setSize() } } \ No newline at end of file diff --git a/DEV.2.1/test/test.1/Main.java b/DEV.2.1/test/test.1/Main.java new file mode 100644 index 0000000..1d82eaf --- /dev/null +++ b/DEV.2.1/test/test.1/Main.java @@ -0,0 +1,6 @@ +public class Main { + public static void mmain(String[] args) { + Fenetre fenetre = new Fenetre(); + fenetre.setVisible(true); + } +} \ No newline at end of file diff --git a/DEV.2.1/test/test.1/PaintFenetre.java b/DEV.2.1/test/test.1/PaintFenetre.java new file mode 100644 index 0000000..555c3e5 --- /dev/null +++ b/DEV.2.1/test/test.1/PaintFenetre.java @@ -0,0 +1,26 @@ +import.javax.swing.*; +import java.awt.*; + +public class PaintFenetre extends JPanel { + + private Image MenuDebut; + public PaintFenetre() { + super(); + this.MenuDebut = Toolkit.getDefaultToolkit().getImage("../image/MenuDebut.jpg"); + } + + + @Override + public void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + + if(this.isOpaque()) { + secondPinceau.setColor(this.getBackground()); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + secondPinceau.clearRect(0, 0, this.getWidth(), this.getHeight()); + secondPinceau.drawImage(this.Menu, this.getWidth(), this.getHeight(), this); + } + + +} \ No newline at end of file diff --git a/DEV.2.2/TP/TP1/ex1.php b/DEV.2.2/TP/TP1/ex1.php new file mode 100644 index 0000000..237b6c9 --- /dev/null +++ b/DEV.2.2/TP/TP1/ex1.php @@ -0,0 +1,6 @@ + + + + hello world";?> + + diff --git a/DEV.2.2/TP/TP1/ex2.php b/DEV.2.2/TP/TP1/ex2.php new file mode 100644 index 0000000..3260592 --- /dev/null +++ b/DEV.2.2/TP/TP1/ex2.php @@ -0,0 +1,29 @@ + + + + + + + "Paul", 2 =>"Martin", "Arnaud"]; + /*0;7;2;3*/ + ?> + + "Chemise", + 3 => "Pantalon", + 10 => "Jupe", + "Veste", + "Blouson" //clé : 12 + ]; + ?> + + + + \ No newline at end of file diff --git a/DEV.2.2/TP/TP1/ex21.php b/DEV.2.2/TP/TP1/ex21.php new file mode 100644 index 0000000..473d9a9 --- /dev/null +++ b/DEV.2.2/TP/TP1/ex21.php @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/DEV.2.2/TP/TP1/ex22.php b/DEV.2.2/TP/TP1/ex22.php new file mode 100644 index 0000000..4073588 --- /dev/null +++ b/DEV.2.2/TP/TP1/ex22.php @@ -0,0 +1,17 @@ + + + + + + + $i"; + } else { + echo "$i"; + } + } + ?> + + \ No newline at end of file diff --git a/DEV.2.2/TP/TP1/ex3/css/style.css b/DEV.2.2/TP/TP1/ex3/css/style.css new file mode 100644 index 0000000..625f60b --- /dev/null +++ b/DEV.2.2/TP/TP1/ex3/css/style.css @@ -0,0 +1,3 @@ +.warning tr,.warning td { + background-color : rgb(255,154,0); +} diff --git a/DEV.2.2/TP/TP1/ex3/ex3.php b/DEV.2.2/TP/TP1/ex3/ex3.php new file mode 100644 index 0000000..3ba6070 --- /dev/null +++ b/DEV.2.2/TP/TP1/ex3/ex3.php @@ -0,0 +1,134 @@ + + + + + + + "Garza","Prenom"=>"Forrest","Email"=>"eleifend@ligulaedu","Taille"=>"185","Poids"=>"65"), + array("Nom"=>"Tanner","Prenom"=>"Orla","Email"=>"adipiscing@vitaecouk","Taille"=>"180","Poids"=>"73"), + array("Nom"=>"Griffith","Prenom"=>"Susan","Email"=>"condimentum@tristiqueca","Taille"=>"172","Poids"=>"75"), + array("Nom"=>"Wilkinson","Prenom"=>"Carla","Email"=>"tinciduntaliquamarcu@utmolestieca","Taille"=>"178","Poids"=>"71"), + array("Nom"=>"Kirkland","Prenom"=>"Vladimir","Email"=>"Donec@egettinciduntduiorg","Taille"=>"178","Poids"=>"73"), + array("Nom"=>"Holloway","Prenom"=>"Joy","Email"=>"enim@Nullamca","Taille"=>"191","Poids"=>"67"), + array("Nom"=>"Soto","Prenom"=>"Cleo","Email"=>"posuereatvelit@Incondimentumca","Taille"=>"167","Poids"=>"70"), + array("Nom"=>"Jacobson","Prenom"=>"Linda","Email"=>"disparturientmontes@metusurnaconvallisnet","Taille"=>"169","Poids"=>"73"), + array("Nom"=>"Wilder","Prenom"=>"Ina","Email"=>"odiovel@eratcouk","Taille"=>"167","Poids"=>"68"), + array("Nom"=>"Pace","Prenom"=>"Melvin","Email"=>"euismodindolor@DonecestNuncca","Taille"=>"175","Poids"=>"68"), + array("Nom"=>"Moody","Prenom"=>"Hayden","Email"=>"ornareelit@malesuadaIntegeridedu","Taille"=>"180","Poids"=>"63"), + array("Nom"=>"Rhodes","Prenom"=>"Jarrod","Email"=>"turpis@placeratnet","Taille"=>"168","Poids"=>"68"), + array("Nom"=>"Bean","Prenom"=>"Marah","Email"=>"suscipitest@ullamcorperDuiscursusnet","Taille"=>"165","Poids"=>"61"), + array("Nom"=>"Beard","Prenom"=>"Dylan","Email"=>"nonmagna@mollisnet","Taille"=>"173","Poids"=>"62"), + array("Nom"=>"Davenport","Prenom"=>"September","Email"=>"amet@purusca","Taille"=>"179","Poids"=>"67"), + array("Nom"=>"Boyd","Prenom"=>"Natalie","Email"=>"Aeneangravidanunc@metusorg","Taille"=>"179","Poids"=>"62"), + array("Nom"=>"Davidson","Prenom"=>"Kane","Email"=>"ullamcorpermagnaSed@eutemporcouk","Taille"=>"181","Poids"=>"67"), + array("Nom"=>"Burch","Prenom"=>"Tanek","Email"=>"a@Vivamussitorg","Taille"=>"169","Poids"=>"69"), + array("Nom"=>"Talley","Prenom"=>"Leo","Email"=>"musAeneaneget@ornareliberoatcom","Taille"=>"167","Poids"=>"72"), + array("Nom"=>"Stephens","Prenom"=>"Simone","Email"=>"in@auctorodioacom","Taille"=>"170","Poids"=>"65"), + array("Nom"=>"Haynes","Prenom"=>"Gloria","Email"=>"liberoettristique@diamvelarcucouk","Taille"=>"169","Poids"=>"70"), + array("Nom"=>"Blanchard","Prenom"=>"Faith","Email"=>"massa@augueeutellusnet","Taille"=>"166","Poids"=>"62"), + array("Nom"=>"Randall","Prenom"=>"Blaze","Email"=>"atpede@blanditNamnullacom","Taille"=>"163","Poids"=>"66"), + array("Nom"=>"Griffith","Prenom"=>"Roary","Email"=>"aliquetmetus@velnislcouk","Taille"=>"162","Poids"=>"64"), + array("Nom"=>"Morgan","Prenom"=>"Tanner","Email"=>"egetlaoreet@arcucouk","Taille"=>"179","Poids"=>"67"), + array("Nom"=>"Chapman","Prenom"=>"Amelia","Email"=>"nunc@massaQuisquecom","Taille"=>"164","Poids"=>"69"), + array("Nom"=>"Grant","Prenom"=>"Chloe","Email"=>"auctorMauris@loremegetorg","Taille"=>"173","Poids"=>"72"), + array("Nom"=>"Richardson","Prenom"=>"Ryan","Email"=>"scelerisque@ullamcorpermagnacouk","Taille"=>"173","Poids"=>"64"), + array("Nom"=>"Cleveland","Prenom"=>"Yeo","Email"=>"acsem@vehiculaca","Taille"=>"163","Poids"=>"69"), + array("Nom"=>"Gay","Prenom"=>"Amanda","Email"=>"fames@idsapienedu","Taille"=>"165","Poids"=>"63"), + array("Nom"=>"Peters","Prenom"=>"Bruno","Email"=>"ornaretortor@condimentumDonecatcom","Taille"=>"163","Poids"=>"66"), + array("Nom"=>"Lambert","Prenom"=>"Dean","Email"=>"sapien@sitametrisuscouk","Taille"=>"180","Poids"=>"71"), + array("Nom"=>"Petty","Prenom"=>"Nigel","Email"=>"pedeSuspendisse@risusDuiscouk","Taille"=>"168","Poids"=>"66"), + array("Nom"=>"Phelps","Prenom"=>"Cullen","Email"=>"euaugue@Vestibulumanteca","Taille"=>"159","Poids"=>"76"), + array("Nom"=>"Cochran","Prenom"=>"Marny","Email"=>"Lorem@enimconsequatpuruscouk","Taille"=>"157","Poids"=>"67"), + array("Nom"=>"Bauer","Prenom"=>"Sloane","Email"=>"nisi@liberonet","Taille"=>"174","Poids"=>"72"), + array("Nom"=>"Strong","Prenom"=>"Leigh","Email"=>"ut@Aliquamcouk","Taille"=>"176","Poids"=>"65"), + array("Nom"=>"Olsen","Prenom"=>"Herrod","Email"=>"uteratSed@rutrumloremedu","Taille"=>"167","Poids"=>"72"), + array("Nom"=>"Spears","Prenom"=>"Bruno","Email"=>"congueturpis@nullaorg","Taille"=>"162","Poids"=>"77"), + array("Nom"=>"Pearson","Prenom"=>"Marah","Email"=>"Donecatarcu@aedu","Taille"=>"174","Poids"=>"62"), + array("Nom"=>"Moore","Prenom"=>"Orson","Email"=>"semegetmassa@puruscouk","Taille"=>"189","Poids"=>"76"), + array("Nom"=>"Roman","Prenom"=>"Kylie","Email"=>"habitant@duiaugueca","Taille"=>"177","Poids"=>"66"), + array("Nom"=>"Michael","Prenom"=>"Ciaran","Email"=>"nostraper@nibhPhaselluscom","Taille"=>"156","Poids"=>"65"), + array("Nom"=>"Sheppard","Prenom"=>"Colton","Email"=>"enim@inaliquetedu","Taille"=>"159","Poids"=>"70"), + array("Nom"=>"Mathews","Prenom"=>"Pamela","Email"=>"auctor@Praesenteuedu","Taille"=>"168","Poids"=>"74"), + array("Nom"=>"Thompson","Prenom"=>"Olga","Email"=>"vel@egestascom","Taille"=>"173","Poids"=>"75"), + array("Nom"=>"Petersen","Prenom"=>"Jared","Email"=>"urna@Crasvulputatevelitca","Taille"=>"173","Poids"=>"75"), + array("Nom"=>"Leblanc","Prenom"=>"Aurora","Email"=>"dictum@egetcom","Taille"=>"164","Poids"=>"72"), + array("Nom"=>"Blanchard","Prenom"=>"Keiko","Email"=>"Suspendisse@torquentperconubiacouk","Taille"=>"167","Poids"=>"72"), + array("Nom"=>"Sharp","Prenom"=>"Barrett","Email"=>"Proineget@laoreetposuereedu","Taille"=>"163","Poids"=>"72"), + array("Nom"=>"Hughes","Prenom"=>"Orson","Email"=>"utdolor@risusDonecegestasnet","Taille"=>"159","Poids"=>"62"), + array("Nom"=>"Porter","Prenom"=>"Ava","Email"=>"Fuscedolor@Nuncnet","Taille"=>"178","Poids"=>"70"), + array("Nom"=>"Figueroa","Prenom"=>"Lesley","Email"=>"Quisquenonummy@eulacusorg","Taille"=>"168","Poids"=>"68"), + array("Nom"=>"Wyatt","Prenom"=>"Zelenia","Email"=>"sitametultricies@accumsansedfacilisiscom","Taille"=>"174","Poids"=>"61"), + array("Nom"=>"Stark","Prenom"=>"Sarah","Email"=>"natoquepenatibuset@neccursusacom","Taille"=>"167","Poids"=>"67"), + array("Nom"=>"Carney","Prenom"=>"Ariana","Email"=>"enimsit@nuncinterdumfeugiatorg","Taille"=>"180","Poids"=>"78"), + array("Nom"=>"Simmons","Prenom"=>"Herrod","Email"=>"ac@estnet","Taille"=>"172","Poids"=>"72"), + array("Nom"=>"Mayo","Prenom"=>"Carissa","Email"=>"Nulla@quamquisca","Taille"=>"182","Poids"=>"60"), + array("Nom"=>"Higgins","Prenom"=>"Serena","Email"=>"anteblanditviverra@aliquetPhasellusfermentumedu","Taille"=>"178","Poids"=>"71"), + array("Nom"=>"Fletcher","Prenom"=>"Remedios","Email"=>"Phaselluselitpede@consequatcouk","Taille"=>"180","Poids"=>"73"), + array("Nom"=>"Green","Prenom"=>"Dale","Email"=>"libero@temporeratorg","Taille"=>"171","Poids"=>"68"), + array("Nom"=>"White","Prenom"=>"Jack","Email"=>"velconvallis@anteedu","Taille"=>"172","Poids"=>"73"), + array("Nom"=>"Russo","Prenom"=>"Giselle","Email"=>"nonnisi@luctusvulputateorg","Taille"=>"160","Poids"=>"69"), + array("Nom"=>"James","Prenom"=>"Kimberley","Email"=>"malesuadafamesac@nuncsitametcom","Taille"=>"191","Poids"=>"72"), + array("Nom"=>"Huffman","Prenom"=>"Thomas","Email"=>"Nuncmauriselit@Pellentesqueca","Taille"=>"168","Poids"=>"68"), + array("Nom"=>"Turner","Prenom"=>"Cody","Email"=>"lorem@elitcouk","Taille"=>"172","Poids"=>"73"), + array("Nom"=>"Neal","Prenom"=>"Cheryl","Email"=>"nequevitaesemper@rhoncusidcom","Taille"=>"170","Poids"=>"68"), + array("Nom"=>"Patel","Prenom"=>"Hamilton","Email"=>"ametultriciessem@nonantebibendumedu","Taille"=>"172","Poids"=>"79"), + array("Nom"=>"Alexander","Prenom"=>"Grant","Email"=>"nonnisiAenean@massacom","Taille"=>"174","Poids"=>"68"), + array("Nom"=>"Shepherd","Prenom"=>"Tad","Email"=>"ac@inorg","Taille"=>"165","Poids"=>"76"), + array("Nom"=>"Wynn","Prenom"=>"Danielle","Email"=>"lectusquismassa@InfaucibusMorbiorg","Taille"=>"169","Poids"=>"66"), + array("Nom"=>"Pollard","Prenom"=>"Ahmed","Email"=>"velarcu@Nullaegetorg","Taille"=>"164","Poids"=>"62"), + array("Nom"=>"Peters","Prenom"=>"Hollee","Email"=>"loremipsum@sitametca","Taille"=>"177","Poids"=>"75"), + array("Nom"=>"Alston","Prenom"=>"Brendan","Email"=>"antebibendumullamcorper@idblanditcouk","Taille"=>"156","Poids"=>"68"), + array("Nom"=>"Keith","Prenom"=>"Vernon","Email"=>"diam@sagittisnet","Taille"=>"168","Poids"=>"70"), + array("Nom"=>"Rodgers","Prenom"=>"Angela","Email"=>"pharetra@vellectusCumcom","Taille"=>"171","Poids"=>"65"), + array("Nom"=>"Parker","Prenom"=>"Tatiana","Email"=>"penatibusetmagnis@scelerisquesedca","Taille"=>"173","Poids"=>"68"), + array("Nom"=>"Miller","Prenom"=>"Timothy","Email"=>"tinciduntcongue@atca","Taille"=>"178","Poids"=>"66"), + array("Nom"=>"Wilder","Prenom"=>"Rosalyn","Email"=>"mauris@aliquameuorg","Taille"=>"165","Poids"=>"67"), + array("Nom"=>"Baker","Prenom"=>"Sheila","Email"=>"sitametrisus@euplacerategetcouk","Taille"=>"178","Poids"=>"69"), + array("Nom"=>"Lee","Prenom"=>"Roary","Email"=>"nequenon@acouk","Taille"=>"159","Poids"=>"61"), + array("Nom"=>"Gillespie","Prenom"=>"Quemby","Email"=>"nonenimcommodo@lobortiscom","Taille"=>"167","Poids"=>"61"), + array("Nom"=>"Dixon","Prenom"=>"Zenaida","Email"=>"risus@etmagnisdisca","Taille"=>"170","Poids"=>"72"), + array("Nom"=>"Holden","Prenom"=>"Chloe","Email"=>"in@elementumorg","Taille"=>"169","Poids"=>"76"), + array("Nom"=>"Rios","Prenom"=>"Stone","Email"=>"consequatenim@enimMaurisca","Taille"=>"169","Poids"=>"77"), + array("Nom"=>"Berg","Prenom"=>"Sara","Email"=>"faucibusleo@Maurisblanditenimorg","Taille"=>"162","Poids"=>"63"), + array("Nom"=>"Clay","Prenom"=>"Timon","Email"=>"etultrices@necorg","Taille"=>"168","Poids"=>"72"), + array("Nom"=>"Schneider","Prenom"=>"Knox","Email"=>"dolor@liberoca","Taille"=>"165","Poids"=>"65"), + array("Nom"=>"Cervantes","Prenom"=>"Pandora","Email"=>"metusVivamuseuismod@ligulaca","Taille"=>"179","Poids"=>"73"), + array("Nom"=>"Allen","Prenom"=>"Micah","Email"=>"dolorsitamet@nonhendreritorg","Taille"=>"176","Poids"=>"75"), + array("Nom"=>"Kirkland","Prenom"=>"Jolie","Email"=>"Fuscemollis@Nuncullamcorperorg","Taille"=>"154","Poids"=>"66"), + array("Nom"=>"Woodard","Prenom"=>"Quincy","Email"=>"idliberoDonec@Phasellusnullaca","Taille"=>"166","Poids"=>"69"), + array("Nom"=>"Peck","Prenom"=>"Octavius","Email"=>"lobortis@semperegestasurnaca","Taille"=>"167","Poids"=>"68"), + array("Nom"=>"Andrews","Prenom"=>"Wade","Email"=>"sedpede@mifelisorg","Taille"=>"158","Poids"=>"64"), + array("Nom"=>"Kennedy","Prenom"=>"Lydia","Email"=>"Vestibulumaccumsanneque@ipsumnuncidnet","Taille"=>"178","Poids"=>"67"), + array("Nom"=>"Velez","Prenom"=>"Erin","Email"=>"sagittisDuisgravida@nonduineccouk","Taille"=>"167","Poids"=>"66"), + array("Nom"=>"Hendrix","Prenom"=>"Sopoline","Email"=>"asollicitudin@etcouk","Taille"=>"173","Poids"=>"74"), + array("Nom"=>"Boyd","Prenom"=>"Neville","Email"=>"nuncidenim@vehiculaPellentesquetinciduntcom","Taille"=>"173","Poids"=>"75"), + array("Nom"=>"Rice","Prenom"=>"Lois","Email"=>"nonmassanon@Aeneanca","Taille"=>"166","Poids"=>"58"), + array("Nom"=>"Lloyd","Prenom"=>"Aline","Email"=>"dapibusgravida@utmolestieinedu","Taille"=>"145","Poids"=>"80") + ); + + foreach($data as $person){ + echo""; + echo""; + echo""; + } + $imc = round($person['Poids']/($person['Taille'] * $person[$taille])*10000,2); + $warning = ""; + if ($imc >= 25) { + $warning = 'warning'; + echo ""; + } + + echo""; + echo""; + echo"
"; + foreach($person as $value) { + echo "$value
"; + } + + ?> + + + \ No newline at end of file diff --git a/DEV.2.2/TP/TP1/ex3/include/data.inc.php b/DEV.2.2/TP/TP1/ex3/include/data.inc.php new file mode 100644 index 0000000..6b1e569 --- /dev/null +++ b/DEV.2.2/TP/TP1/ex3/include/data.inc.php @@ -0,0 +1,106 @@ +"Garza","Prenom"=>"Forrest","Email"=>"eleifend@ligulaedu","Taille"=>"185","Poids"=>"65"), + array("Nom"=>"Tanner","Prenom"=>"Orla","Email"=>"adipiscing@vitaecouk","Taille"=>"180","Poids"=>"73"), + array("Nom"=>"Griffith","Prenom"=>"Susan","Email"=>"condimentum@tristiqueca","Taille"=>"172","Poids"=>"75"), + array("Nom"=>"Wilkinson","Prenom"=>"Carla","Email"=>"tinciduntaliquamarcu@utmolestieca","Taille"=>"178","Poids"=>"71"), + array("Nom"=>"Kirkland","Prenom"=>"Vladimir","Email"=>"Donec@egettinciduntduiorg","Taille"=>"178","Poids"=>"73"), + array("Nom"=>"Holloway","Prenom"=>"Joy","Email"=>"enim@Nullamca","Taille"=>"191","Poids"=>"67"), + array("Nom"=>"Soto","Prenom"=>"Cleo","Email"=>"posuereatvelit@Incondimentumca","Taille"=>"167","Poids"=>"70"), + array("Nom"=>"Jacobson","Prenom"=>"Linda","Email"=>"disparturientmontes@metusurnaconvallisnet","Taille"=>"169","Poids"=>"73"), + array("Nom"=>"Wilder","Prenom"=>"Ina","Email"=>"odiovel@eratcouk","Taille"=>"167","Poids"=>"68"), + array("Nom"=>"Pace","Prenom"=>"Melvin","Email"=>"euismodindolor@DonecestNuncca","Taille"=>"175","Poids"=>"68"), + array("Nom"=>"Moody","Prenom"=>"Hayden","Email"=>"ornareelit@malesuadaIntegeridedu","Taille"=>"180","Poids"=>"63"), + array("Nom"=>"Rhodes","Prenom"=>"Jarrod","Email"=>"turpis@placeratnet","Taille"=>"168","Poids"=>"68"), + array("Nom"=>"Bean","Prenom"=>"Marah","Email"=>"suscipitest@ullamcorperDuiscursusnet","Taille"=>"165","Poids"=>"61"), + array("Nom"=>"Beard","Prenom"=>"Dylan","Email"=>"nonmagna@mollisnet","Taille"=>"173","Poids"=>"62"), + array("Nom"=>"Davenport","Prenom"=>"September","Email"=>"amet@purusca","Taille"=>"179","Poids"=>"67"), + array("Nom"=>"Boyd","Prenom"=>"Natalie","Email"=>"Aeneangravidanunc@metusorg","Taille"=>"179","Poids"=>"62"), + array("Nom"=>"Davidson","Prenom"=>"Kane","Email"=>"ullamcorpermagnaSed@eutemporcouk","Taille"=>"181","Poids"=>"67"), + array("Nom"=>"Burch","Prenom"=>"Tanek","Email"=>"a@Vivamussitorg","Taille"=>"169","Poids"=>"69"), + array("Nom"=>"Talley","Prenom"=>"Leo","Email"=>"musAeneaneget@ornareliberoatcom","Taille"=>"167","Poids"=>"72"), + array("Nom"=>"Stephens","Prenom"=>"Simone","Email"=>"in@auctorodioacom","Taille"=>"170","Poids"=>"65"), + array("Nom"=>"Haynes","Prenom"=>"Gloria","Email"=>"liberoettristique@diamvelarcucouk","Taille"=>"169","Poids"=>"70"), + array("Nom"=>"Blanchard","Prenom"=>"Faith","Email"=>"massa@augueeutellusnet","Taille"=>"166","Poids"=>"62"), + array("Nom"=>"Randall","Prenom"=>"Blaze","Email"=>"atpede@blanditNamnullacom","Taille"=>"163","Poids"=>"66"), + array("Nom"=>"Griffith","Prenom"=>"Roary","Email"=>"aliquetmetus@velnislcouk","Taille"=>"162","Poids"=>"64"), + array("Nom"=>"Morgan","Prenom"=>"Tanner","Email"=>"egetlaoreet@arcucouk","Taille"=>"179","Poids"=>"67"), + array("Nom"=>"Chapman","Prenom"=>"Amelia","Email"=>"nunc@massaQuisquecom","Taille"=>"164","Poids"=>"69"), + array("Nom"=>"Grant","Prenom"=>"Chloe","Email"=>"auctorMauris@loremegetorg","Taille"=>"173","Poids"=>"72"), + array("Nom"=>"Richardson","Prenom"=>"Ryan","Email"=>"scelerisque@ullamcorpermagnacouk","Taille"=>"173","Poids"=>"64"), + array("Nom"=>"Cleveland","Prenom"=>"Yeo","Email"=>"acsem@vehiculaca","Taille"=>"163","Poids"=>"69"), + array("Nom"=>"Gay","Prenom"=>"Amanda","Email"=>"fames@idsapienedu","Taille"=>"165","Poids"=>"63"), + array("Nom"=>"Peters","Prenom"=>"Bruno","Email"=>"ornaretortor@condimentumDonecatcom","Taille"=>"163","Poids"=>"66"), + array("Nom"=>"Lambert","Prenom"=>"Dean","Email"=>"sapien@sitametrisuscouk","Taille"=>"180","Poids"=>"71"), + array("Nom"=>"Petty","Prenom"=>"Nigel","Email"=>"pedeSuspendisse@risusDuiscouk","Taille"=>"168","Poids"=>"66"), + array("Nom"=>"Phelps","Prenom"=>"Cullen","Email"=>"euaugue@Vestibulumanteca","Taille"=>"159","Poids"=>"76"), + array("Nom"=>"Cochran","Prenom"=>"Marny","Email"=>"Lorem@enimconsequatpuruscouk","Taille"=>"157","Poids"=>"67"), + array("Nom"=>"Bauer","Prenom"=>"Sloane","Email"=>"nisi@liberonet","Taille"=>"174","Poids"=>"72"), + array("Nom"=>"Strong","Prenom"=>"Leigh","Email"=>"ut@Aliquamcouk","Taille"=>"176","Poids"=>"65"), + array("Nom"=>"Olsen","Prenom"=>"Herrod","Email"=>"uteratSed@rutrumloremedu","Taille"=>"167","Poids"=>"72"), + array("Nom"=>"Spears","Prenom"=>"Bruno","Email"=>"congueturpis@nullaorg","Taille"=>"162","Poids"=>"77"), + array("Nom"=>"Pearson","Prenom"=>"Marah","Email"=>"Donecatarcu@aedu","Taille"=>"174","Poids"=>"62"), + array("Nom"=>"Moore","Prenom"=>"Orson","Email"=>"semegetmassa@puruscouk","Taille"=>"189","Poids"=>"76"), + array("Nom"=>"Roman","Prenom"=>"Kylie","Email"=>"habitant@duiaugueca","Taille"=>"177","Poids"=>"66"), + array("Nom"=>"Michael","Prenom"=>"Ciaran","Email"=>"nostraper@nibhPhaselluscom","Taille"=>"156","Poids"=>"65"), + array("Nom"=>"Sheppard","Prenom"=>"Colton","Email"=>"enim@inaliquetedu","Taille"=>"159","Poids"=>"70"), + array("Nom"=>"Mathews","Prenom"=>"Pamela","Email"=>"auctor@Praesenteuedu","Taille"=>"168","Poids"=>"74"), + array("Nom"=>"Thompson","Prenom"=>"Olga","Email"=>"vel@egestascom","Taille"=>"173","Poids"=>"75"), + array("Nom"=>"Petersen","Prenom"=>"Jared","Email"=>"urna@Crasvulputatevelitca","Taille"=>"173","Poids"=>"75"), + array("Nom"=>"Leblanc","Prenom"=>"Aurora","Email"=>"dictum@egetcom","Taille"=>"164","Poids"=>"72"), + array("Nom"=>"Blanchard","Prenom"=>"Keiko","Email"=>"Suspendisse@torquentperconubiacouk","Taille"=>"167","Poids"=>"72"), + array("Nom"=>"Sharp","Prenom"=>"Barrett","Email"=>"Proineget@laoreetposuereedu","Taille"=>"163","Poids"=>"72"), + array("Nom"=>"Hughes","Prenom"=>"Orson","Email"=>"utdolor@risusDonecegestasnet","Taille"=>"159","Poids"=>"62"), + array("Nom"=>"Porter","Prenom"=>"Ava","Email"=>"Fuscedolor@Nuncnet","Taille"=>"178","Poids"=>"70"), + array("Nom"=>"Figueroa","Prenom"=>"Lesley","Email"=>"Quisquenonummy@eulacusorg","Taille"=>"168","Poids"=>"68"), + array("Nom"=>"Wyatt","Prenom"=>"Zelenia","Email"=>"sitametultricies@accumsansedfacilisiscom","Taille"=>"174","Poids"=>"61"), + array("Nom"=>"Stark","Prenom"=>"Sarah","Email"=>"natoquepenatibuset@neccursusacom","Taille"=>"167","Poids"=>"67"), + array("Nom"=>"Carney","Prenom"=>"Ariana","Email"=>"enimsit@nuncinterdumfeugiatorg","Taille"=>"180","Poids"=>"78"), + array("Nom"=>"Simmons","Prenom"=>"Herrod","Email"=>"ac@estnet","Taille"=>"172","Poids"=>"72"), + array("Nom"=>"Mayo","Prenom"=>"Carissa","Email"=>"Nulla@quamquisca","Taille"=>"182","Poids"=>"60"), + array("Nom"=>"Higgins","Prenom"=>"Serena","Email"=>"anteblanditviverra@aliquetPhasellusfermentumedu","Taille"=>"178","Poids"=>"71"), + array("Nom"=>"Fletcher","Prenom"=>"Remedios","Email"=>"Phaselluselitpede@consequatcouk","Taille"=>"180","Poids"=>"73"), + array("Nom"=>"Green","Prenom"=>"Dale","Email"=>"libero@temporeratorg","Taille"=>"171","Poids"=>"68"), + array("Nom"=>"White","Prenom"=>"Jack","Email"=>"velconvallis@anteedu","Taille"=>"172","Poids"=>"73"), + array("Nom"=>"Russo","Prenom"=>"Giselle","Email"=>"nonnisi@luctusvulputateorg","Taille"=>"160","Poids"=>"69"), + array("Nom"=>"James","Prenom"=>"Kimberley","Email"=>"malesuadafamesac@nuncsitametcom","Taille"=>"191","Poids"=>"72"), + array("Nom"=>"Huffman","Prenom"=>"Thomas","Email"=>"Nuncmauriselit@Pellentesqueca","Taille"=>"168","Poids"=>"68"), + array("Nom"=>"Turner","Prenom"=>"Cody","Email"=>"lorem@elitcouk","Taille"=>"172","Poids"=>"73"), + array("Nom"=>"Neal","Prenom"=>"Cheryl","Email"=>"nequevitaesemper@rhoncusidcom","Taille"=>"170","Poids"=>"68"), + array("Nom"=>"Patel","Prenom"=>"Hamilton","Email"=>"ametultriciessem@nonantebibendumedu","Taille"=>"172","Poids"=>"79"), + array("Nom"=>"Alexander","Prenom"=>"Grant","Email"=>"nonnisiAenean@massacom","Taille"=>"174","Poids"=>"68"), + array("Nom"=>"Shepherd","Prenom"=>"Tad","Email"=>"ac@inorg","Taille"=>"165","Poids"=>"76"), + array("Nom"=>"Wynn","Prenom"=>"Danielle","Email"=>"lectusquismassa@InfaucibusMorbiorg","Taille"=>"169","Poids"=>"66"), + array("Nom"=>"Pollard","Prenom"=>"Ahmed","Email"=>"velarcu@Nullaegetorg","Taille"=>"164","Poids"=>"62"), + array("Nom"=>"Peters","Prenom"=>"Hollee","Email"=>"loremipsum@sitametca","Taille"=>"177","Poids"=>"75"), + array("Nom"=>"Alston","Prenom"=>"Brendan","Email"=>"antebibendumullamcorper@idblanditcouk","Taille"=>"156","Poids"=>"68"), + array("Nom"=>"Keith","Prenom"=>"Vernon","Email"=>"diam@sagittisnet","Taille"=>"168","Poids"=>"70"), + array("Nom"=>"Rodgers","Prenom"=>"Angela","Email"=>"pharetra@vellectusCumcom","Taille"=>"171","Poids"=>"65"), + array("Nom"=>"Parker","Prenom"=>"Tatiana","Email"=>"penatibusetmagnis@scelerisquesedca","Taille"=>"173","Poids"=>"68"), + array("Nom"=>"Miller","Prenom"=>"Timothy","Email"=>"tinciduntcongue@atca","Taille"=>"178","Poids"=>"66"), + array("Nom"=>"Wilder","Prenom"=>"Rosalyn","Email"=>"mauris@aliquameuorg","Taille"=>"165","Poids"=>"67"), + array("Nom"=>"Baker","Prenom"=>"Sheila","Email"=>"sitametrisus@euplacerategetcouk","Taille"=>"178","Poids"=>"69"), + array("Nom"=>"Lee","Prenom"=>"Roary","Email"=>"nequenon@acouk","Taille"=>"159","Poids"=>"61"), + array("Nom"=>"Gillespie","Prenom"=>"Quemby","Email"=>"nonenimcommodo@lobortiscom","Taille"=>"167","Poids"=>"61"), + array("Nom"=>"Dixon","Prenom"=>"Zenaida","Email"=>"risus@etmagnisdisca","Taille"=>"170","Poids"=>"72"), + array("Nom"=>"Holden","Prenom"=>"Chloe","Email"=>"in@elementumorg","Taille"=>"169","Poids"=>"76"), + array("Nom"=>"Rios","Prenom"=>"Stone","Email"=>"consequatenim@enimMaurisca","Taille"=>"169","Poids"=>"77"), + array("Nom"=>"Berg","Prenom"=>"Sara","Email"=>"faucibusleo@Maurisblanditenimorg","Taille"=>"162","Poids"=>"63"), + array("Nom"=>"Clay","Prenom"=>"Timon","Email"=>"etultrices@necorg","Taille"=>"168","Poids"=>"72"), + array("Nom"=>"Schneider","Prenom"=>"Knox","Email"=>"dolor@liberoca","Taille"=>"165","Poids"=>"65"), + array("Nom"=>"Cervantes","Prenom"=>"Pandora","Email"=>"metusVivamuseuismod@ligulaca","Taille"=>"179","Poids"=>"73"), + array("Nom"=>"Allen","Prenom"=>"Micah","Email"=>"dolorsitamet@nonhendreritorg","Taille"=>"176","Poids"=>"75"), + array("Nom"=>"Kirkland","Prenom"=>"Jolie","Email"=>"Fuscemollis@Nuncullamcorperorg","Taille"=>"154","Poids"=>"66"), + array("Nom"=>"Woodard","Prenom"=>"Quincy","Email"=>"idliberoDonec@Phasellusnullaca","Taille"=>"166","Poids"=>"69"), + array("Nom"=>"Peck","Prenom"=>"Octavius","Email"=>"lobortis@semperegestasurnaca","Taille"=>"167","Poids"=>"68"), + array("Nom"=>"Andrews","Prenom"=>"Wade","Email"=>"sedpede@mifelisorg","Taille"=>"158","Poids"=>"64"), + array("Nom"=>"Kennedy","Prenom"=>"Lydia","Email"=>"Vestibulumaccumsanneque@ipsumnuncidnet","Taille"=>"178","Poids"=>"67"), + array("Nom"=>"Velez","Prenom"=>"Erin","Email"=>"sagittisDuisgravida@nonduineccouk","Taille"=>"167","Poids"=>"66"), + array("Nom"=>"Hendrix","Prenom"=>"Sopoline","Email"=>"asollicitudin@etcouk","Taille"=>"173","Poids"=>"74"), + array("Nom"=>"Boyd","Prenom"=>"Neville","Email"=>"nuncidenim@vehiculaPellentesquetinciduntcom","Taille"=>"173","Poids"=>"75"), + array("Nom"=>"Rice","Prenom"=>"Lois","Email"=>"nonmassanon@Aeneanca","Taille"=>"166","Poids"=>"58"), + array("Nom"=>"Lloyd","Prenom"=>"Aline","Email"=>"dapibusgravida@utmolestieinedu","Taille"=>"145","Poids"=>"80") +); + +?> diff --git a/DEV.2.2/TP/TP1/ex3/index.php b/DEV.2.2/TP/TP1/ex3/index.php new file mode 100644 index 0000000..34e4c81 --- /dev/null +++ b/DEV.2.2/TP/TP1/ex3/index.php @@ -0,0 +1,63 @@ + + + + + + + tp1 - ex3 + + + + +
+

Exercice 3 : IMC

+ + + + + + + + + + + + + "; + echo""; + echo""; + echo ""; + + } + + $warning = ""; + if ($imc >= 25) { + $warning = 'warning'; + echo ""; + echo ""; + } + foreach($person as $value) + echo "" + echo ""; + + echo""; + echo""; + echo"
NomPrénomEmailTaillePoidsIMC
"; + $imc = round($person['Poids']/($person['Taille'] * $person[$taille])*10000,2); + foreach($person as $value) { + echo "$value$imc
$value$imc
"; + } + + ?> + + +
+ + diff --git a/DEV.2.2/TP/TP1/ex4.php b/DEV.2.2/TP/TP1/ex4.php new file mode 100644 index 0000000..6b2ef26 --- /dev/null +++ b/DEV.2.2/TP/TP1/ex4.php @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/DEV.2.2/TP/TP2/ex1controller.php b/DEV.2.2/TP/TP2/ex1controller.php new file mode 100644 index 0000000..1ee2856 --- /dev/null +++ b/DEV.2.2/TP/TP2/ex1controller.php @@ -0,0 +1,24 @@ +//controller.php + +"; + echo"
  • $prenom $nom
  • "; + echo"
  • $os
  • "; + echo""; +} +?> diff --git a/DEV.2.2/TP/TP2/ex1index.html b/DEV.2.2/TP/TP2/ex1index.html new file mode 100644 index 0000000..5cd30b3 --- /dev/null +++ b/DEV.2.2/TP/TP2/ex1index.html @@ -0,0 +1,54 @@ + + + + + + + Exercice 1 + + + +
    +

    Exercice 1

    + +
    +
    + Qui êtes-vous ? + + + + +
    + +
    + Système d'exploitation préféré + + + + +
    + + +
    +
    + + diff --git a/DEV.2.2/TP/TP2/ex2.php b/DEV.2.2/TP/TP2/ex2.php new file mode 100644 index 0000000..8ff60c8 --- /dev/null +++ b/DEV.2.2/TP/TP2/ex2.php @@ -0,0 +1,10 @@ +Table de $table"; +echo"
      " +for($i=1;$i!=$table;$i++) { + $res = $i*$table; + echo"
    • $i x $table = $res
    • "; +} +echo"
    "; +?> \ No newline at end of file diff --git a/DEV.2.2/TP/TP2/ex2multiplication.php b/DEV.2.2/TP/TP2/ex2multiplication.php new file mode 100644 index 0000000..008e4af --- /dev/null +++ b/DEV.2.2/TP/TP2/ex2multiplication.php @@ -0,0 +1,25 @@ + + + + + + + + + +
    +

    Table de multiplication

    + +
    + + + +
    +
    + + diff --git a/DEV.2.2/TP/TP2/ex3.php b/DEV.2.2/TP/TP2/ex3.php new file mode 100644 index 0000000..9c32b85 --- /dev/null +++ b/DEV.2.2/TP/TP2/ex3.php @@ -0,0 +1,22 @@ +On ne peut pas diviser par 0."; + exit(); + } else { + if($operation == '+') { + $res = $op1+$op2; + } elseif ($operation == '-') { + $res = $op1-$op2; + } elseif ($operation == 'x') { + $res = $op1*$op2; + } elseif ($operation == '/') { + $res = $op1/$op2; + } + } +} +?> + diff --git a/DEV.2.2/TP/TP2/ex3calculatrice.php b/DEV.2.2/TP/TP2/ex3calculatrice.php new file mode 100644 index 0000000..5b9b228 --- /dev/null +++ b/DEV.2.2/TP/TP2/ex3calculatrice.php @@ -0,0 +1,34 @@ + + + + + + + + + + + +
    +

    Calculatrice

    +
    +
    + + + + + + +
    + + diff --git a/DEV.2.2/TP/TP2/ex4.php b/DEV.2.2/TP/TP2/ex4.php new file mode 100644 index 0000000..64fcf48 --- /dev/null +++ b/DEV.2.2/TP/TP2/ex4.php @@ -0,0 +1,30 @@ +'; +echo ''; +echo ''; +echo 'Résultats
    '; +echo '

    Réponses

      '; + +// Boucle sur chaque question +for ($i = 1; $i <= $nbq; $i++) { + $question = "question" . $i; + if (isset($_POST[$question])) { + if ($_POST[$question] === "vrai") { + echo "
    • Question $i : bonne réponse
    • "; + $score++; + } else { + echo "
    • Question $i : mauvaise réponse
    • "; + } + } else { + echo "
    • Question $i : non répondue
    • "; + } +} + +echo "

    Score : $score

    "; +echo '
    '; +?> diff --git a/DEV.2.2/TP/TP2/ex4quizz.html b/DEV.2.2/TP/TP2/ex4quizz.html new file mode 100644 index 0000000..0de095d --- /dev/null +++ b/DEV.2.2/TP/TP2/ex4quizz.html @@ -0,0 +1,61 @@ + + + + + + + + + + + + +
    +

    Quizz

    +
    +
    + Quelle est la capitale de la France ? + + + + +
    +
    + Quelle est le nombre suivant de la suite 1,2,4,8 ? + + + +
    +
    + La bataille de Marignan a eu lieu en + + + +
    + + + + +
    +
    + + diff --git a/DEV.2.2/TP/TP2/ex5/conjuguer.php b/DEV.2.2/TP/TP2/ex5/conjuguer.php new file mode 100644 index 0000000..c8372ee --- /dev/null +++ b/DEV.2.2/TP/TP2/ex5/conjuguer.php @@ -0,0 +1,54 @@ + array("e", "es", "e", "ons", "ez", "ent"), + "futur" => array("erai", "eras", "era", "erons", "erez", "eront"), + "imparfait" => array("ais", "ais", "ait", "ions", "iez", "aient") +); + +// Pronoms personnels +$pronoms = array("je", "tu", "il", "nous", "vous", "ils"); + +// Récupération des données POST +$verbe = filter_input(INPUT_POST, "verbe", FILTER_SANITIZE_STRING); +$tempsChoisis = $_POST['temps'] ?? []; + +// Vérification que le verbe se termine par "er" +if (!$verbe || substr($verbe, -2) !== 'er') { + die("Le verbe doit être du premier groupe (terminé par -er)."); +} + +$radical = substr($verbe, 0, -2); // Enlève "er" + +?> + + + + + + Conjugaison + + + +
    +

    Conjugaison du verbe « »

    + + + +
    +

    +
      + $terminaison): ?> +
    • + +
    +
    + + + + +

    Aucun temps sélectionné.

    + +
    + + diff --git a/DEV.2.2/TP/TP2/ex5/css/style.css b/DEV.2.2/TP/TP2/ex5/css/style.css new file mode 100644 index 0000000..98648c5 --- /dev/null +++ b/DEV.2.2/TP/TP2/ex5/css/style.css @@ -0,0 +1,4 @@ +input[type="text"]{ +width:auto; + +} diff --git a/DEV.2.2/TP/TP2/ex5/ex5.html b/DEV.2.2/TP/TP2/ex5/ex5.html new file mode 100644 index 0000000..f374c73 --- /dev/null +++ b/DEV.2.2/TP/TP2/ex5/ex5.html @@ -0,0 +1,31 @@ + + + + + + + + + + +
    +

    Conjugaison

    +
    +
    + + Temps + + + +
    + + +
    +
    + + diff --git a/DEV.2.2/TP/TP2/ex5/include/controller.php b/DEV.2.2/TP/TP2/ex5/include/controller.php new file mode 100644 index 0000000..f35c02d --- /dev/null +++ b/DEV.2.2/TP/TP2/ex5/include/controller.php @@ -0,0 +1,12 @@ +array("e","es","e","ons","ez","ent"), + "futur"=>array("erai","eras","era","erons","erez","eront"), + "imparfait"=>array("ais","ais","ait","ions","iez","aient") +); + +$pronoms=array("je","tu","il","nous","vous","ils"); + +$verbe = filter_input(INPUT_POST,"verbe",FILTER_SANITIZE_STRING); +$radical = substr($verbe,0,strlen($verbe)-2); + diff --git a/DEV.2.3/TP/TP1/ex1/Ma-Touille-pour-les-tests.txt b/DEV.2.3/TP/TP1/ex1/Ma-Touille-pour-les-tests.txt new file mode 100644 index 0000000..05bfa0e --- /dev/null +++ b/DEV.2.3/TP/TP1/ex1/Ma-Touille-pour-les-tests.txt @@ -0,0 +1,18 @@ +[srivasta@salle225-13 TP1]$ java MonInt +3 trois +4 quatre +9 neuf +3 (neuf divisé par trois) +0 (trois divisé par quatre) +java.lang.IllegalStateException: Comme disait Sacha Guitry, je ne suis pas superstitieux mais on ne sait jamais. +java.lang.ArithmeticException: / by zero +java.lang.NullPointerException: la classe denominateur ne peut pas être null + +[srivasta@salle225-13 TP1]$ java -ea MonInt +3 trois +4 quatre +9 neuf +3 (neuf divisé par trois) +Exception in thread "main" java.lang.AssertionError + at MonInt.divise(MonInt.java:36) + at MonInt.main(MonInt.java:82) diff --git a/DEV.2.3/TP/TP1/ex1/MonInt.class b/DEV.2.3/TP/TP1/ex1/MonInt.class new file mode 100644 index 0000000..ca36dcd Binary files /dev/null and b/DEV.2.3/TP/TP1/ex1/MonInt.class differ diff --git a/DEV.2.3/TP/TP1/ex1/MonInt.java b/DEV.2.3/TP/TP1/ex1/MonInt.java new file mode 100644 index 0000000..c7d4d6d --- /dev/null +++ b/DEV.2.3/TP/TP1/ex1/MonInt.java @@ -0,0 +1,113 @@ +// notez le s après Object. Permet entre autre de stipuler qu'un objet o n'est pas null avec la méthode Objects.requireNonNull(o, "message d'erreur détaillé"); +import java.util.Objects; + +/* + * Sorte de Int du pauvre à laquelle on ajoute un nom sous forme textuelle. + * + * Classe donnée à titre d'exemple pour illustrer les ingrédients techniques de la prog défensive. + * et les assertions java + */ +public class MonInt { + + // un entier + private int valeur ; + // son nom sous forme textuelle + private String nom ; + + public MonInt(int n, String s){ + this.valeur = n; + this.nom = s; + } + + /** + * division du pauvre. + * + * + * @param c le diviseur par lequel on souhaite diviser this + */ + public void divise (MonInt c){ + Objects.requireNonNull(c, "la classe denominateur ne peut pas être null"); + + int avant = this.valeur; + + this.valeur = this.valeur / c.getValeur(); + this.nom = "(" + this.nom + " divisé par " + c.getNom() +")"; + + assert(this.valeur*c.getValeur() == avant); // NB. un assert qui ne marche pas tout le temps. + } + + /** + * Un getter superstitieux. + * retourne une exception si la valeur vaut 13. + */ + public int getValeur(){ + if (valeur == 13) throw new IllegalStateException("Comme disait Sacha Guitry, je ne suis pas superstitieux mais on ne sait jamais."); + return valeur; + } + + public String getNom(){ + return nom; + } + + /** + * @return String representant l'entier. + */ + public String toString(){ + return this.getValeur() + " " + this.getNom(); + } + + /** + * C'est un peu moche mais on peut pour simplifier mettre des tests manuels dans un main dans chaque classe. + * C'est plutôt mieux que de mettre des print dans chaque méthode car vous êtes plus sûr de la stabilité de vos tests + * (vous pouvez rejouer les tests plus tard). + * + * Idéalement on utilise un outil dédié comme JUnit qui favorise au maximum cette automatisation. + * + * @param args pas de paramètre en ligne de commande prévu. + */ + public static void main(String[] args) { + MonInt c3 = new MonInt(3,"trois"); + MonInt c4 = new MonInt(4,"quatre"); + MonInt c9 = new MonInt(9,"neuf"); + MonInt c13 = new MonInt(13,"treize"); + System.out.println(c3.toString()); + System.out.println(c4.toString()); + System.out.println(c9.toString()); + + + c9.divise(c3); + // 3 + System.out.println(c9.toString()); + + c3.divise(c4); + // 0 + System.out.println(c3.toString()); + + // tester des exceptions pas pratique + // Si on veut tester plusieurs exceptions + // il faut attraper et vérifier que c'est le bon type d'exception. + // ici manuellement en regardant le message. + try { + System.out.println(c13.toString()); // toucher au nbre 13 avec getValeur() + } + catch(Exception e){ + System.out.println(e); + } + + try{ + c9.divise(c3); //division par 0 + } + catch(Exception e){ + System.out.println(e); + } + + try{ + c9.divise(null); //division par null + } + catch(Exception e){ + System.out.println(e); + } + + + } +} \ No newline at end of file diff --git a/DEV.2.3/TP/TP1/ex2/v0/Carte.class b/DEV.2.3/TP/TP1/ex2/v0/Carte.class new file mode 100644 index 0000000..dd12672 Binary files /dev/null and b/DEV.2.3/TP/TP1/ex2/v0/Carte.class differ diff --git a/DEV.2.3/TP/TP1/ex2/v0/Carte.java b/DEV.2.3/TP/TP1/ex2/v0/Carte.java new file mode 100644 index 0000000..90a08bd --- /dev/null +++ b/DEV.2.3/TP/TP1/ex2/v0/Carte.java @@ -0,0 +1,145 @@ +import java.util.Objects; + +// Copyright Florent Madelaine, (3 juin 2020) + +// florent.madelaine@u-pec.fr + +// Ce logiciel est un programme informatique simulant une petite partie du jeu de Memory + +// Ce logiciel est régi par la licence CeCILL soumise au droit français et +// respectant les principes de diffusion des logiciels libres. Vous pouvez +// utiliser, modifier et/ou redistribuer ce programme sous les conditions +// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA +// sur le site "http://www.cecill.info". + +// En contrepartie de l'accessibilité au code source et des droits de copie, +// de modification et de redistribution accordés par cette licence, il n'est +// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, +// seule une responsabilité restreinte pèse sur l'auteur du programme, le +// titulaire des droits patrimoniaux et les concédants successifs. + +// A cet égard l'attention de l'utilisateur est attirée sur les risques +// associés au chargement, à l'utilisation, à la modification et/ou au +// développement et à la reproduction du logiciel par l'utilisateur étant +// donné sa spécificité de logiciel libre, qui peut le rendre complexe à +// manipuler et qui le réserve donc à des développeurs et des professionnels +// avertis possédant des connaissances informatiques approfondies. Les +// utilisateurs sont donc invités à charger et tester l'adéquation du +// logiciel à leurs besoins dans des conditions permettant d'assurer la +// sécurité de leurs systèmes et ou de leurs données et, plus généralement, +// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. + +// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez +// pris connaissance de la licence CeCILL, et que vous en avez accepté les +// termes. + +/** + * Classe représentant une carte de Memory + */ +public class Carte { + + /** + * Permet de savoir combien on a de cartes en tout. + * Pas vraiment clair qu'on veuille s'en servir ici. + * C'est purement pour des raisons pédagogiques de rappel de ce que veut dire un attribut de classe. + * + * Je ne rentre pas dans les détails de la destruction d'objets. + * Il faut lire la doc à propos de Objects.finalize() + */ + static int nbreCarte; + + /** + * False ssi caché + */ + private boolean visible; + + /** + * pour pouvoir apparier des cartes. + */ + private int valeur; + + /** Constructeur de carte. + */ + public Carte(int valeur){ + this.nbreCarte ++; + this.visible=false; // caché par défaut + this.valeur=valeur; + } + + // NB. Moralement, les cartes ne devraient pas être cachées. + // dans cette version on ne fait rien mais on voudrait idéalement que ce ne soit pas possible + /** + * Prédicat permettant de tester le fait que deux cartes ont la même valeur + * @param Carte la carte à comparer à this. + * @return true si elles ont la même valeur. + * @throws NullPointerException si la carte passée en paramètre ou this est null. + * @throws IllegalArgumentException si l'argument n'est pas visible + * @throws IllegalStateExeption si this n'est pas visible + */ + public boolean egale(Carte c){ + Objects.requireNonNull(c, "la carte à tester passée en paramètre ne peut pas être null"); + Objects.requireNonNull(this, "la carte qu'on veut comparer (this) ne peut pas être null"); + return c.valeur == this.valeur; + } + + public boolean getVisible(){ + return visible; + } + + /** + * Méthode inversant la visibilité d'une carte. + */ + public void toggleVisible(){ + this.visible = ! this.visible; + } + + /** + * @return String representant la carte (version longue) + * @see toString + */ + public String toStringLong(){ + return this.toString() + " parmi " + this.nbreCarte; + } + + /** + * @return String representant la carte. + */ + public String toString(){ + return "une carte " + (this.visible ? "visible" + " de valeur " + this.valeur: "cachée"); + } + + /** + * C'est un peu moche mais on peut pour simplifier mettre des tests manuels dans un main dans chaque classe. + * C'est plutôt mieux que de mettre des print dans chaque méthode car vous êtes plus sûr de la stabilité de vos tests + * (vous pouvez rejouer les tests plus tard). + * + * Idéalement on utilise un outil dédié comme JUnit qui favorise au maximum cette automatisation. + * @param args pas de paramètre en ligne de commande prévu. + */ + public static void main(String[] args) { + Carte un = new Carte(1); + System.out.println(un.toString()); + Carte deux = new Carte (2); + System.out.println(deux.toString()); + Carte unBis = new Carte(1); + System.out.println(unBis.toString()); + + un.toggleVisible(); + System.out.println(un.toString()); + unBis.toggleVisible(); + System.out.println(unBis.toString()); + System.out.println(un.egale(unBis)); + unBis.toggleVisible();//true + System.out.println(unBis.toString()); + + System.out.println(un.toString()); + deux.toggleVisible(); + System.out.println(deux.toString()); + System.out.println(!un.egale(deux));//not false + + Carte bad = null; + un.egale(bad); + } +} + + diff --git a/DEV.2.3/TP/TP1/ex2/v0/EnsembleCarte.class b/DEV.2.3/TP/TP1/ex2/v0/EnsembleCarte.class new file mode 100644 index 0000000..13ace56 Binary files /dev/null and b/DEV.2.3/TP/TP1/ex2/v0/EnsembleCarte.class differ diff --git a/DEV.2.3/TP/TP1/ex2/v0/EnsembleCarte.java b/DEV.2.3/TP/TP1/ex2/v0/EnsembleCarte.java new file mode 100644 index 0000000..7761cb9 --- /dev/null +++ b/DEV.2.3/TP/TP1/ex2/v0/EnsembleCarte.java @@ -0,0 +1,142 @@ +import java.util.LinkedHashSet; + +// Copyright Florent Madelaine, (3 juin 2020) + +// florent.madelaine@u-pec.fr + +// Ce logiciel est un programme informatique simulant une petite partie du jeu de Memory + +// Ce logiciel est régi par la licence CeCILL soumise au droit français et +// respectant les principes de diffusion des logiciels libres. Vous pouvez +// utiliser, modifier et/ou redistribuer ce programme sous les conditions +// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA +// sur le site "http://www.cecill.info". + +// En contrepartie de l'accessibilité au code source et des droits de copie, +// de modification et de redistribution accordés par cette licence, il n'est +// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, +// seule une responsabilité restreinte pèse sur l'auteur du programme, le +// titulaire des droits patrimoniaux et les concédants successifs. + +// A cet égard l'attention de l'utilisateur est attirée sur les risques +// associés au chargement, à l'utilisation, à la modification et/ou au +// développement et à la reproduction du logiciel par l'utilisateur étant +// donné sa spécificité de logiciel libre, qui peut le rendre complexe à +// manipuler et qui le réserve donc à des développeurs et des professionnels +// avertis possédant des connaissances informatiques approfondies. Les +// utilisateurs sont donc invités à charger et tester l'adéquation du +// logiciel à leurs besoins dans des conditions permettant d'assurer la +// sécurité de leurs systèmes et ou de leurs données et, plus généralement, +// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. + +// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez +// pris connaissance de la licence CeCILL, et que vous en avez accepté les +// termes. + + + +/** + * classe abstraite pour gérer les opérations sur les ensembles de carte qu'on trouve au memory + * + */ +public abstract class EnsembleCarte { + /** + * La structure de donnée utilisée pour stocker les cartes dans la partie Collection de java.util. + * En gros, c'est un ensemble (répétition interdite) qui liste les éléments dans un ordre stable. + * La doc de java.util a propos de AbstractSet (ancêtre de LinkedHashSet) + * (...) all of the methods and constructors in subclasses of this class must obey the additional + * constraints imposed by the Set interface (for instance, the add method must not permit addition + * of multiple instances of an object to a set). + */ + private LinkedHashSet contenu = new LinkedHashSet(); + + /** + * nbre de Cartes de l'ensemble. + * + */ + private int nbreCarte; + + /** + * Constructeur d'Ensemble vide. + */ + public EnsembleCarte(){ + this.nbreCarte=0; + } + + /** + * Ajoute une carte à l'ensemble. + * @param c une carte + * @return true si la carte est ajoutée à l'ensemble + * @throws NullPointerException si la carte est null + * @throws IllegalStateException si la carte ne peut pas être ajoutée car elle est déjà présente dans l'ensemble + */ + protected boolean add(Carte c){ + this.nbreCarte++; + return contenu.add(c); + } + + /** + * Enlève une carte à l'ensemble. + * @param c une carte + * @return true si la carte est retirée à l'ensemble + * @throws NullPointerException si la carte est null + * @throws IllegalStateException si la carte ne peut pas être enlevéé car elle n'est pas présente dans l'ensemble + */ + private boolean remove(Carte c){ + this.nbreCarte++; + return contenu.remove(c); + } + + /** + * Permet de transférer une paire de carte (par exemple depuis la table vers un joueur) + * Si ces cartes sont toutes les deux visibles + * @param target destination du transfert + * @param c1 première carte + * @param c2 seconde carte + * @return true en cas de succès, false sinon + * @throws NullPointerException si un élément passé en paramètre est null. + * @throws IllegalArgumentException si les cartes ne sont pas toutes les deux visibles + * @throws IllegalStateException si this ne contient pas les deux cartes. + */ + public boolean transfer(EnsembleCarte target, Carte c1, Carte c2){ + return this.contenu.contains(c1) && this.contenu.remove(c1) && target.add(c1) && this.contenu.contains(c2) && this.contenu.remove(c2) && target.add(c2); + } + + + public String toString(){ + // Stringbuilder is the most efficient method of building a String like datastructure incrementally. + StringBuilder sb = new StringBuilder(" de taille " + this.contenu.size() + ", contenant : \n"); + for (Carte c : this.contenu){ + sb.append(" _ " + c.toString() +"\n"); + } + return sb.toString(); + } + + + // tests obsolètes [serait OK si classe n'était pas abstraite] + + // public static void main(String[] args) { + + // Carte un = new Carte(1); + // Carte deux = new Carte (2); + // deux.toggleVisible(); + // Carte unBis = new Carte(1); + + // Carte deuxBis = new Carte(2); + + // EnsembleCarte e1 = new EnsembleCarte(); + // System.out.println(e1.add(un) && e1.add(deux)); + // System.out.println(e1.toString()); + + // EnsembleCarte e2 = new EnsembleCarte(); + // System.out.println(e2.add(un) && e2.add(unBis)); + // System.out.println(e2.toString()); + + // e1.transfer(e2,un,deuxBis); + // System.out.println(e1.toString()); + // System.out.println(e2.toString()); + + // } +} + + diff --git a/DEV.2.3/TP/TP1/ex2/v0/Joueur.class b/DEV.2.3/TP/TP1/ex2/v0/Joueur.class new file mode 100644 index 0000000..fbc1163 Binary files /dev/null and b/DEV.2.3/TP/TP1/ex2/v0/Joueur.class differ diff --git a/DEV.2.3/TP/TP1/ex2/v0/Joueur.java b/DEV.2.3/TP/TP1/ex2/v0/Joueur.java new file mode 100644 index 0000000..3a4a69a --- /dev/null +++ b/DEV.2.3/TP/TP1/ex2/v0/Joueur.java @@ -0,0 +1,95 @@ +import java.util.LinkedHashSet; + +// Copyright Florent Madelaine, (3 juin 2020) + +// florent.madelaine@u-pec.fr + +// Ce logiciel est un programme informatique simulant une petite partie du jeu de Memory + +// Ce logiciel est régi par la licence CeCILL soumise au droit français et +// respectant les principes de diffusion des logiciels libres. Vous pouvez +// utiliser, modifier et/ou redistribuer ce programme sous les conditions +// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA +// sur le site "http://www.cecill.info". + +// En contrepartie de l'accessibilité au code source et des droits de copie, +// de modification et de redistribution accordés par cette licence, il n'est +// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, +// seule une responsabilité restreinte pèse sur l'auteur du programme, le +// titulaire des droits patrimoniaux et les concédants successifs. + +// A cet égard l'attention de l'utilisateur est attirée sur les risques +// associés au chargement, à l'utilisation, à la modification et/ou au +// développement et à la reproduction du logiciel par l'utilisateur étant +// donné sa spécificité de logiciel libre, qui peut le rendre complexe à +// manipuler et qui le réserve donc à des développeurs et des professionnels +// avertis possédant des connaissances informatiques approfondies. Les +// utilisateurs sont donc invités à charger et tester l'adéquation du +// logiciel à leurs besoins dans des conditions permettant d'assurer la +// sécurité de leurs systèmes et ou de leurs données et, plus généralement, +// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. + +// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez +// pris connaissance de la licence CeCILL, et que vous en avez accepté les +// termes. + +/** + * Classe servant à représenter le joueur dans le modèle. + * Pour l'instant juste un nom et un ensemble de cartes + */ +public class Joueur extends EnsembleCarte { + /** + * Nom du joueur + */ + private String nom; + + /** + * Constructeur + * @param nom Futur nom du joueur, ne doit pas être null + * @throws nullPointerException si nom est null. + */ + public Joueur(String nom){ + this.nom=nom; + } + + public String toString(){ + return "Joueur " + this.nom + " " + super.toString(); + } + + + public static void main(String[] args) { + // c'est un peu moche mais on peut pour simplifier mettre des tests manuels dans un main dans chaque classe. + // C'est plutôt mieux que de mettre des print dans chaque méthode car vous êtes plus sûr de la stabilité de vos tests (vous pouvez rejouer les tests plus tard). + + // Les Joueurs + Joueur toto = new Joueur("Toto"); + Joueur titi = new Joueur("Titi"); + Joueur tata = new Joueur("Tata"); + + // Les cartes + Carte un = new Carte(1); + Carte deux = new Carte (2); + Carte unBis = new Carte(1); + Carte deuxBis = new Carte(2); + + // la Table + Table t = new Table(); + t.add(un); + t.add(deux); + t.add(unBis); + t.add(deuxBis); + + System.out.println(t); + System.out.println(toto); + + t.reveler(un); + t.reveler(unBis); + + t.transfer(toto,un,unBis); + + System.out.println(t); + System.out.println(toto); + } +} + + diff --git a/DEV.2.3/TP/TP1/ex2/v0/Table.class b/DEV.2.3/TP/TP1/ex2/v0/Table.class new file mode 100644 index 0000000..c2ea401 Binary files /dev/null and b/DEV.2.3/TP/TP1/ex2/v0/Table.class differ diff --git a/DEV.2.3/TP/TP1/ex2/v0/Table.java b/DEV.2.3/TP/TP1/ex2/v0/Table.java new file mode 100644 index 0000000..1c1cc57 --- /dev/null +++ b/DEV.2.3/TP/TP1/ex2/v0/Table.java @@ -0,0 +1,123 @@ +import java.util.LinkedHashSet; + +// Copyright Florent Madelaine, (3 juin 2020) + +// florent.madelaine@u-pec.fr + +// Ce logiciel est un programme informatique simulant une petite partie du jeu de Memory + +// Ce logiciel est régi par la licence CeCILL soumise au droit français et +// respectant les principes de diffusion des logiciels libres. Vous pouvez +// utiliser, modifier et/ou redistribuer ce programme sous les conditions +// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA +// sur le site "http://www.cecill.info". + +// En contrepartie de l'accessibilité au code source et des droits de copie, +// de modification et de redistribution accordés par cette licence, il n'est +// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, +// seule une responsabilité restreinte pèse sur l'auteur du programme, le +// titulaire des droits patrimoniaux et les concédants successifs. + +// A cet égard l'attention de l'utilisateur est attirée sur les risques +// associés au chargement, à l'utilisation, à la modification et/ou au +// développement et à la reproduction du logiciel par l'utilisateur étant +// donné sa spécificité de logiciel libre, qui peut le rendre complexe à +// manipuler et qui le réserve donc à des développeurs et des professionnels +// avertis possédant des connaissances informatiques approfondies. Les +// utilisateurs sont donc invités à charger et tester l'adéquation du +// logiciel à leurs besoins dans des conditions permettant d'assurer la +// sécurité de leurs systèmes et ou de leurs données et, plus généralement, +// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. + +// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez +// pris connaissance de la licence CeCILL, et que vous en avez accepté les +// termes. + + + +/** + * Classe gérant la table de jeu du Memory dans le modèle + * Pour l'instant ne gère pas le tour des joueurs. + * Devrait probablement le faire un jour. + */ +public class Table extends EnsembleCarte { + + /** + * Constructeur de Table vide (seul constructeur pour l'instant) + */ + public Table(){ + } + + /** + * Nécessaire de la rendre publique car on a un parti pris que on commence avec une table vide à laquelle on ajoute des cartes. + * On pourrait alternativement faire un constructeur qui fabrique les cartes ou bien qui prend une collection de cartes. + * Ça n'aurait pas la vertu pédagogique de montrer qu'on peut surcharger une méthode en élevant les droits en java. + * + * Par délégation mais en rendant publique la méthode (pour l'initialisation en fait). + * @param c Carte à ajou + * @return true si la carte est ajoutée à l'ensemble + * @throws NullPointerException si la carte est null + * @throws IllegalStateException si la carte ne peut pas être ajoutée car elle est déjà présente dans l'ensemble + */ + @Override + public boolean add(Carte c){ + return super.add(c); + } + + /** + * révèle une carte. + * @param c une carte à révèler + * @throws NullPointerException si la carte est null + * @throws IllegalArgumentException si la carte n'est pas sur la table + * @throws IllegalStateException si la carte est déjà révélée + */ + public void reveler(Carte c){ + c.toggleVisible(); + } + + /** + * cache une carte. + * @param c une carte à cacher + * @throws NullPointerException si la carte est null + * @throws IllegalArgumentException si la carte n'est pas sur la table + * @throws IllegalStateException si la carte est déjà cachée + */ + public void cacher(Carte c){ + c.toggleVisible(); + } + + + public String toString(){ + return "Table " + super.toString(); + } + + + public static void main(String[] args) { + // c'est un peu moche mais on peut pour simplifier mettre des tests manuels dans un main dans chaque classe. + // C'est plutôt mieux que de mettre des print dans chaque méthode car vous êtes plus sûr de la stabilité de vos tests (vous pouvez rejouer les tests plus tard). + + // Les cartes + Carte un = new Carte(1); + Carte deux = new Carte (2); + Carte unBis = new Carte(1); + Carte deuxBis = new Carte(2); + + + // la Table + Table t = new Table(); + t.add(un); + t.add(deux); + t.add(unBis); + t.add(deuxBis); + + System.out.println(t); + + t.reveler(un); + t.reveler(unBis); + + System.out.println(t); + + } +} + + diff --git a/DEV.2.3/TP/TP1/ex2/v0/TestCarte.java b/DEV.2.3/TP/TP1/ex2/v0/TestCarte.java new file mode 100644 index 0000000..9862dd2 --- /dev/null +++ b/DEV.2.3/TP/TP1/ex2/v0/TestCarte.java @@ -0,0 +1,85 @@ +import static org.junit.Assert.assertTrue; // import static : une facilité offerte depuis java5 (pas besoin de mettre le préfixe) +import static org.junit.Assert.assertFalse; // +import org.junit.Test; + + +/** + * Une classe pour faire des tests sur la classe Carte avec JUnit + */ +public class TestCarte { + + // un test pour Junit4 c'est une méthode avec l'annotation @Test devant une méthode avec un type de retour void. + @Test + public void egaleSiIdentiquesEtVisible() { + Carte un = new Carte(1); + un.toggleVisible(); + // on peut stipuler que des choses sont normalement égales (il faut charger de manière statique les Assert si on veut éviter d'avoir à écrire de quelle classe on parle) + assertTrue(un.egale(un)); + } + + // le nom du test doit être le plus explicite possible + @Test + public void egalSiMemeValeurEtVisible() { + Carte un = new Carte(1); + un.toggleVisible(); + Carte unBis = new Carte(1); + unBis.toggleVisible(); + assertTrue(un.egale(unBis)); + } + + @Test + public void pasEgalSiPasMemeValeurEtVisible() { + Carte un = new Carte(1); + un.toggleVisible(); + Carte deux = new Carte(2); + deux.toggleVisible(); + assertFalse(un.egale(deux)); + } + + // un test pour Junit4 qui cherche à vérifier qu'il y a bien une exception + @Test(expected = NullPointerException.class) + public void egalPasFaitPourNull(){ + Carte bad = null; + Carte un = new Carte(1); + un.egale(bad); + } + + // un autre test pour Junit4 qui cherche à vérifier qu'il y a bien une exception + @Test(expected = IllegalArgumentException.class) + public void egalPasFaitPourParametreNonVisible(){ + Carte un = new Carte(1); + un.toggleVisible(); + Carte deux = new Carte(2); + un.egale(deux); + } + + // un autre test pour Junit4 qui cherche à vérifier qu'il y a bien une exception + @Test(expected = IllegalStateException.class) + public void egalPasFaitPourCarteThisNonVisible(){ + Carte un = new Carte(1); + Carte deux = new Carte(2); + deux.toggleVisible(); + un.egale(deux); + } + + //Le monde est mal fait et parfois c'est le test qui est faux. + //Notez que je suis vraiment méchant car ce test est satisfait au début avec le code proposé... + //Moralité : faites des tests très simples et faites vous relire! + @Test + public void egalTestMalFait(){ + Carte un = new Carte(1); + un.toggleVisible(); + Carte deux = new Carte(2); + deux.toggleVisible(); + un.toggleVisible();//copié collé de la mort + assertFalse(un.egale(deux)); + } + + // si on ne met pas l'annotation arobase test, le test n'est jamais pris en compte. + // c'est juste une méthode annexe qui n'est pas appellée comme dans n'importe quelle classe. + public void autreTestMalFait(){ + assertFalse(true); + } + + +} diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/AssertTests.java b/DEV.2.3/TP/TP2/Junit4Exemples/AssertTests.java new file mode 100644 index 0000000..44b0c16 --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/AssertTests.java @@ -0,0 +1,106 @@ +/** + Il y a en fait pleins d'assertions possibles. + + voici un exemple faisant un petit tour de ce qui est possible que j'ai pris ici. + https://github.com/junit-team/junit4/wiki/Assertions + + NB. hamcrest est un projet maintenant intégré à junit + (c'est un anagrame de matchers) + + */ + +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.anyOf; +import static org.hamcrest.CoreMatchers.both; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.everyItem; +import static org.hamcrest.CoreMatchers.hasItems; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.CoreMatchers.sameInstance; +import static org.hamcrest.CoreMatchers.startsWith; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; + +import org.hamcrest.core.CombinableMatcher; +import org.junit.Test; + +public class AssertTests { + @Test + public void testAssertArrayEquals() { + byte[] expected = "trial".getBytes(); + byte[] actual = "trial".getBytes(); + assertArrayEquals("failure - byte arrays not same", expected, actual); + } + + @Test + public void testAssertEquals() { + assertEquals("failure - strings are not equal", "text", "text"); + } + + @Test + public void testAssertFalse() { + assertFalse("failure - should be false", false); + } + + @Test + public void testAssertNotNull() { + assertNotNull("should not be null", new Object()); + } + + @Test + public void testAssertNotSame() { + assertNotSame("should not be same Object", new Object(), new Object()); + } + + @Test + public void testAssertNull() { + assertNull("should be null", null); + } + + @Test + public void testAssertSame() { + Integer aNumber = Integer.valueOf(768); + assertSame("should be same", aNumber, aNumber); + } + + // JUnit Matchers assertThat + @Test + public void testAssertThatBothContainsString() { + assertThat("albumen", both(containsString("a")).and(containsString("b"))); + } + + @Test + public void testAssertThatHasItems() { + assertThat(Arrays.asList("one", "two", "three"), hasItems("one", "three")); + } + + @Test + public void testAssertThatEveryItemContainsString() { + assertThat(Arrays.asList(new String[] { "fun", "ban", "net" }), everyItem(containsString("n"))); + } + + // Core Hamcrest Matchers with assertThat + @Test + public void testAssertThatHamcrestCoreMatchers() { + assertThat("good", allOf(equalTo("good"), startsWith("good"))); + assertThat("good", not(allOf(equalTo("bad"), equalTo("good")))); + assertThat("good", anyOf(equalTo("bad"), equalTo("good"))); + assertThat(7, not(CombinableMatcher. either(equalTo(3)).or(equalTo(4)))); + assertThat(new Object(), not(sameInstance(new Object()))); + } + + @Test + public void testAssertTrue() { + assertTrue("failure - should be true", true); + } +} diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/Calculator.java b/DEV.2.3/TP/TP2/Junit4Exemples/Calculator.java new file mode 100644 index 0000000..3f8e4a5 --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/Calculator.java @@ -0,0 +1,30 @@ + +/** + Calculator est une classe offrant une seule méthode qui évalue une somme, donnée sous la forme d'une chaîne de caractère listant des opérandes séparées par des + + +*/ + +public class Calculator { + + /** + somme les opérandes passées sous forme d'une chaîne de caractères et retourne le résultat sous forme d'entier. + @param expression : chaîne de caractères ("nombres" séparés par des + sans espaces), par exemple "42+3" ou encore "-42+42" (le moins unaire est autorisé). + ici nombre est à comprendre au sens de parseInt(java.lang.String) + @throws NumberFormatException : si l'expression n'est pas dans ce format (par exemple "x+2" ou " 1 +2" -- il y a des espaces -- ou encore "9999999990"). + */ + public int evaluate(String expression) { + int sum = 0; + for (String summand: expression.split("\\+")) + sum += Integer.valueOf(summand); + return sum; + } + + /** + Pour appeller cette super méthode depuis la ligne de commande (on ne regarde que le premier argument, les autres sont ignorés). + + */ + public static void main(String[] args) { + Calculator calculator = new Calculator(); + System.out.println(calculator.evaluate(args[0])); + } +} diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest0.java b/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest0.java new file mode 100644 index 0000000..38fc2c3 --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest0.java @@ -0,0 +1,30 @@ +import static org.junit.Assert.assertEquals; // import static : une facilité offerte par java5 +import org.junit.Test; + +/** + CalculatorTest0 est un premier exemple de test pour la classe Calculator utilisant junit4 + Assert, ou comment vérifier qu'une méthode donne un résultat correct? + + Remarque en passant, pour tester en ligne de commande (une fois les classes compilées), il faut faire + $java org.junit.runner.JUnitCore CalculatorTest0 + + Remarque, comme expliqué dans la doc de org.junit.runner.JUnitCore +JUnitCore is a *facade* for running tests. It supports running JUnit 4 tests, JUnit 3.8.x tests, and mixtures. To run tests from the command line, run java org.junit.runner.JUnitCore TestClass1 TestClass2 + + Oh le joli design pattern. C'est cadeau. + */ + +public class CalculatorTest0 { + + + // un test pour Junit4 c'est une méthode avec l'annotation suivante devant la méthode. + @Test + public void evaluatesGoodExpression() { + Calculator calculator = new Calculator(); + int sum = calculator.evaluate("1+2+3"); + // on peut stipuler que des choses sont normalement égales (il faut charger de manière statique les Assert si on veut éviter d'avoir à écrire de quelle classe on parle) + assertEquals(6, sum); + } + + +} diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest1.java b/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest1.java new file mode 100644 index 0000000..f8bed1d --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest1.java @@ -0,0 +1,18 @@ +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +/** + CalculatorTest1 est un exemple de test pour la classe Calculator utilisant junit4. + Comment vérifier qu'on lance bien une exception? + */ + +public class CalculatorTest1 { + + + // un test pour Junit4 qui cherche à vérifier qu'il y a bien une exception + @Test(expected = NumberFormatException.class) + public void doesNotEvaluateBadExpression() { + Calculator calculator = new Calculator(); + int sum = calculator.evaluate("1 +2+3");//notez l'espace qui va génèrez une exception + } +} diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest2.java b/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest2.java new file mode 100644 index 0000000..25b6590 --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest2.java @@ -0,0 +1,48 @@ +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +import org.junit.BeforeClass; // ne pas oublie de charger le fait qu'on veut l'annotation @BeforeClass +import org.junit.AfterClass; + +/** + + CalculatorTest2 est un exemple de test pour la classe Calculator utilisant junit4 + Il réunit en fait les deux tests des 2 classes précédentes dans une seule classe. + + Typiquement on a en effet tous les tests simples portant sur une classe "métier" regroupée dans une classe de test correspondante. + Avec les annotations, on peut factoriser des choses concernant tous ces tests. + + */ + +public class CalculatorTest2 { + static Calculator calculator; + + // On peut si on le souhaite faire un traitement avant tous les tests (typiquement on fait quelque chose de cher comme se connecter à une base de données, ici j'économise une instance de Calculator (on s'en moque un peu pour être honnête). + @BeforeClass + public static void setUp() { + System.out.println("Avant tous les tests"); + calculator = new Calculator(); + } + + @Test + public void evaluatesGoodExpression() { + System.out.println("Test evaluation bonne expression"); + int sum = calculator.evaluate("1+2+3"); + assertEquals(6, sum); + } + + + @Test(expected = NumberFormatException.class) + public void doesNotEvaluateBadExpression() { + System.out.println("Test evaluation mauvaise expression"); + int sum = calculator.evaluate("1 +2+3"); + } + + // On peut si on le souhaite faire un traitement après tous les tests (typiquement on fait quelque chose de cher comme se connecter à une base de données, ici j'économise une instance de Calculator (on s'en moque un peu pour être honnête). + @AfterClass + public static void tearDown() { + System.out.println("Après tous les Test"); + calculator = null; + } + +} diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest3.java b/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest3.java new file mode 100644 index 0000000..64caf19 --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/CalculatorTest3.java @@ -0,0 +1,20 @@ +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +/** + CalculatorTest3 est un exemple de test pour la classe Calculator utilisant junit4 qui est volontairement non satisfait + + */ + +public class CalculatorTest3 { + + + @Test + public void evaluatesGoodExpression() throws Exception{ + Calculator calculator = new Calculator(); + int sum = calculator.evaluate("1+2+3"); + assertEquals(42, sum); + } + + +} diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/Largest.java b/DEV.2.3/TP/TP2/Junit4Exemples/Largest.java new file mode 100644 index 0000000..1e77d1b --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/Largest.java @@ -0,0 +1,18 @@ +public class Largest { + + /** + * Return the largest element in a list. + * + * @param list A list of integers + * @return The largest number in the given list + */ + public static int largest(int[] list) { + int index, max=Integer.MAX_VALUE; + for (index = 0; index < list.length-1; index++) { + if (list[index] > max) { + max = list[index]; + } + } + return max; + } +} \ No newline at end of file diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/Readme.txt b/DEV.2.3/TP/TP2/Junit4Exemples/Readme.txt new file mode 100644 index 0000000..b1cf4db --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/Readme.txt @@ -0,0 +1,43 @@ +Les fichiers et ce qu'ils illustrent + +Calculator.java le fichier contenant la classe qu'on va prétendre vsouloir tester. + +CalculatorTest0.java mon premier test avec Junit4 et assert +CalculatorTest1.java mon second test avec Junit4 pour des exceptions +CalculatorTest2.java les deux précédents +CalculatorTest3.java un test volontairement non satisfait + +Jusqu'ici pour exécuter un test, on compile tous les fichiers (une fois le classpath correct) puis on fait : + +$java org.junit.runner.JUnitCore CalculatorTest0 + +voir plusieurs classes de tests suite à suite, en faisant : + +$java org.junit.runner.JUnitCore CalculatorTest0 CalculatorTest1 + +Des choses un peu plus avancées + +RunForestRun.java un exemple de runner (alternative à la ligne de commande qui fait la même chose en java). +TestParam.java mon premier test avancé permettant d'exécuter un test simple sur une liste de paramètres. +TestSuite.java comment combiner plusieurs tests (par exemple si on veut tester plusieurs classes en même temps). +AssertTests.java Squelette de toutes les variantes d'assertion proposées par Junit4 + +=== + +Pour pouvoir utiliser ces tests à bon escients, il faut : +_ avoir installé Junit4 (c'est un jar) +_ faire ce qu'il faut au CLASSPATH pour que Junit4 soit dedans. + +Par exemple sur ma machine, j'ai plusieurs versions de junit: + +$ ls -l /usr/share/java/junit* +-rw-r--r-- 1 root root 108762 mai 18 2012 /usr/share/java/junit-3.8.2.jar +-rw-r--r-- 1 root root 313072 mars 8 2016 /usr/share/java/junit4-4.12.jar +lrwxrwxrwx 1 root root 15 mars 8 2016 /usr/share/java/junit4.jar -> junit4-4.12.jar +lrwxrwxrwx 1 root root 15 mai 18 2012 /usr/share/java/junit.jar -> junit-3.8.2.jar + +Du coup, j'ai fait en sorte que mon CLASSPATH contienne /usr/share/java/junit4.jar + +$ echo $CLASSPATH +.:/usr/lib/jvm/java-8-openjdk-amd64/lib:/usr/share/java/junit4.jar + diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/RunForestRun.java b/DEV.2.3/TP/TP2/Junit4Exemples/RunForestRun.java new file mode 100644 index 0000000..8626247 --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/RunForestRun.java @@ -0,0 +1,24 @@ +/** + + Alternative à la ligne de commande, on peut appeller le runner depuis java avec org.junit.runner.JUnitCore.runClasses +qui retourne un objet de type Result qui modélise les résultats des tests. + +En particulier, on peut accéder à la liste des échecs -- un échec eest un objet Failure -- avec getFailures + + */ + + +import org.junit.runner.JUnitCore; +import org.junit.runner.Result; +import org.junit.runner.notification.Failure; + +public class RunForestRun { + + public static void main(String[] args) { + final Result result = org.junit.runner.JUnitCore.runClasses(CalculatorTest0.class,CalculatorTest1.class,CalculatorTest3.class); + for (final Failure failure : result.getFailures()) { + System.out.println(failure.toString()); // affiche détail sur chaque échec + } + System.out.println(result.wasSuccessful()); // affiche true ssi aucune erreurs + } +} diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/TestParam.java b/DEV.2.3/TP/TP2/Junit4Exemples/TestParam.java new file mode 100644 index 0000000..2416862 --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/TestParam.java @@ -0,0 +1,47 @@ +/** + + Example d'utilisation d'un runner spécial : Parameterized. + + Ce runner permet de facilement itérer des tests similaires sur plusieurs choix de valeurs. + + + */ +import static org.junit.Assert.assertEquals; + +import java.util.Arrays; +import java.util.Collection; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + + +// l'annotation @RunWith propre aux runners +@RunWith(Parameterized.class) +public class TestParam { + + // l'annotation @Parameters pour aller chercher les paramètres des tests (on itère sur des tuples d'objet) + @Parameters(name = "{index}: {0} = {2}") + public static Iterable data() { + return Arrays.asList(new Object[][] { { "1+2+3", 6 }, { "40+2", 42 }, + { "001+41", 42 }, { "0000", 0 }, { "999+-999", 0 } }); + } + + // les attributs qui correspondent aux éléments de nos tuples + private String expression; + private int res; + + // le constructeur + public TestParam(String expression, int res) { + this.expression = expression; + this.res = res; + } + + // le test qui va manger les paramètres qu'on vient de définir + @Test + public void evaluatesGoodExpressions() { + Calculator calculator=new Calculator(); + assertEquals(res, calculator.evaluate(expression)); + } +} diff --git a/DEV.2.3/TP/TP2/Junit4Exemples/TestSuite.java b/DEV.2.3/TP/TP2/Junit4Exemples/TestSuite.java new file mode 100644 index 0000000..d342de3 --- /dev/null +++ b/DEV.2.3/TP/TP2/Junit4Exemples/TestSuite.java @@ -0,0 +1,26 @@ +/** + Un runner spécial qui sert à créer une collection de tests. + Typiquement, on peut avoir une classe de tests unitaires pour chaque classe métier et une "suite de tests" qui va appeller tous les tests de classes ayant un lien (par exemple dans le même paquet). + + Ceci est de nouveau un test, qu'on peut exécuter en faisant par exemple dans une console + java org.junit.runner.JUnitCore TestSuite + + */ + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +// @RunWith permet d'indiquer le runner +@RunWith(Suite.class) + +//les tests à faire et dans quel ordre. +@Suite.SuiteClasses({ + CalculatorTest0.class, + CalculatorTest1.class, + CalculatorTest3.class +}) + +public class TestSuite { + // La classe est vide en fait + // C'est juste un conteneur pour les annotations du dessus, utilisés par Junit4 +} diff --git a/DEV.3.1/TP/TP2/Galerie.1/Controlleur.java b/DEV.3.1/TP/TP2/Galerie.1/Controlleur.java deleted file mode 100644 index 8954ad2..0000000 --- a/DEV.3.1/TP/TP2/Galerie.1/Controlleur.java +++ /dev/null @@ -1,27 +0,0 @@ -public class Controlleur { - - private int numFenetre = 0; - private GFenetre gfenetre; - - public Controlleur() { - this.gfenetre = gfenetre - } - - public void change(int numFenetre) { - this.numFenetre = numFenetre; - frame.getContentPane().removeAll(); - - if(this.numFenetre == 0) { - if(this.getImage() == ) - this.image1.setHorizontalAlignment(JLabel.CENTER); - this.frame.add(this.image1, BorderLayout.CENTER); - } else if(this.numFenetre == 1) { - this.image2.setHorizontalAlignment(JLabel.CENTER); - this.frame.add(this.image2, BorderLayout.CENTER); - } - - this.frame.revalidate(); - this.frame.repaint(); - - } -} \ No newline at end of file diff --git a/DEV.3.1/TP/TP2/Galerie.1/GFenetre.class b/DEV.3.1/TP/TP2/Galerie.1/GFenetre.class deleted file mode 100644 index f3e43d8..0000000 Binary files a/DEV.3.1/TP/TP2/Galerie.1/GFenetre.class and /dev/null differ diff --git a/DEV.3.1/TP/TP2/Galerie.1/GestionSouris.class b/DEV.3.1/TP/TP2/Galerie.1/GestionSouris.class deleted file mode 100644 index b7514c9..0000000 Binary files a/DEV.3.1/TP/TP2/Galerie.1/GestionSouris.class and /dev/null differ diff --git a/DEV.3.1/TP/TP2/Galerie.1/Main.class b/DEV.3.1/TP/TP2/Galerie.1/Main.class deleted file mode 100644 index b9f4ba5..0000000 Binary files a/DEV.3.1/TP/TP2/Galerie.1/Main.class and /dev/null differ diff --git a/DEV.3.1/TP/TP2/Galerie.1/imag2.jpeg b/DEV.3.1/TP/TP2/Galerie.1/imag2.jpeg new file mode 100644 index 0000000..a47ce0e Binary files /dev/null and b/DEV.3.1/TP/TP2/Galerie.1/imag2.jpeg differ diff --git a/ClassDiagram1.png b/autre/ClassDiagram1.png similarity index 100% rename from ClassDiagram1.png rename to autre/ClassDiagram1.png diff --git a/SequenceDiagram1.png b/autre/SequenceDiagram1.png similarity index 100% rename from SequenceDiagram1.png rename to autre/SequenceDiagram1.png diff --git a/UseCaseDiagram1.png b/autre/UseCaseDiagram1.png similarity index 100% rename from UseCaseDiagram1.png rename to autre/UseCaseDiagram1.png diff --git a/boucle b/autre/boucle similarity index 100% rename from boucle rename to autre/boucle diff --git a/coursDEV.1.1/10 Chaînes de caractères.docx b/coursDEV.1.1/10 Chaînes de caractères.docx deleted file mode 100644 index 9679e77..0000000 Binary files a/coursDEV.1.1/10 Chaînes de caractères.docx and /dev/null differ diff --git a/coursDEV.1.1/11 Fonctions.docx b/coursDEV.1.1/11 Fonctions.docx deleted file mode 100644 index dad9cba..0000000 Binary files a/coursDEV.1.1/11 Fonctions.docx and /dev/null differ diff --git a/coursDEV.1.1/12 Organisation du code.docx b/coursDEV.1.1/12 Organisation du code.docx deleted file mode 100644 index e69de29..0000000 diff --git a/coursDEV.1.1/13 Allocation dynamique.docx b/coursDEV.1.1/13 Allocation dynamique.docx deleted file mode 100644 index 33a9c6f..0000000 Binary files a/coursDEV.1.1/13 Allocation dynamique.docx and /dev/null differ diff --git a/coursDEV.1.1/14 Les structures.docx b/coursDEV.1.1/14 Les structures.docx deleted file mode 100644 index 85f2f8f..0000000 Binary files a/coursDEV.1.1/14 Les structures.docx and /dev/null differ diff --git a/coursDEV.1.1/15 Les fichiers.docx b/coursDEV.1.1/15 Les fichiers.docx deleted file mode 100644 index 7735dab..0000000 Binary files a/coursDEV.1.1/15 Les fichiers.docx and /dev/null differ diff --git a/coursDEV.1.1/15.01 Les fichiers exercices.pdf b/coursDEV.1.1/15.01 Les fichiers exercices.pdf deleted file mode 100644 index 3d89bf9..0000000 Binary files a/coursDEV.1.1/15.01 Les fichiers exercices.pdf and /dev/null differ diff --git a/coursDEV.1.1/16 Ecriture et lecture de texte, Flux prédéfinis, Accès direct, Flux mixtes.docx b/coursDEV.1.1/16 Ecriture et lecture de texte, Flux prédéfinis, Accès direct, Flux mixtes.docx deleted file mode 100644 index c6be42b..0000000 Binary files a/coursDEV.1.1/16 Ecriture et lecture de texte, Flux prédéfinis, Accès direct, Flux mixtes.docx and /dev/null differ diff --git a/coursDEV.1.1/17 Liste chaînées.docx b/coursDEV.1.1/17 Liste chaînées.docx deleted file mode 100644 index 560c023..0000000 Binary files a/coursDEV.1.1/17 Liste chaînées.docx and /dev/null differ diff --git a/coursDEV.1.1/17.01.docx b/coursDEV.1.1/17.01.docx deleted file mode 100644 index 52f4d61..0000000 Binary files a/coursDEV.1.1/17.01.docx and /dev/null differ diff --git a/coursDEV.1.1/18 Les constantes nommées.docx b/coursDEV.1.1/18 Les constantes nommées.docx deleted file mode 100644 index 19c889f..0000000 Binary files a/coursDEV.1.1/18 Les constantes nommées.docx and /dev/null differ diff --git a/coursDEV.1.1/19 La récursivité.docx b/coursDEV.1.1/19 La récursivité.docx deleted file mode 100644 index 49350c3..0000000 Binary files a/coursDEV.1.1/19 La récursivité.docx and /dev/null differ diff --git a/coursDEV.1.1/19.01.docx b/coursDEV.1.1/19.01.docx deleted file mode 100644 index 0f09a10..0000000 Binary files a/coursDEV.1.1/19.01.docx and /dev/null differ diff --git a/coursDEV.1.1/20 Piles et Files.docx b/coursDEV.1.1/20 Piles et Files.docx deleted file mode 100644 index 34ffd24..0000000 Binary files a/coursDEV.1.1/20 Piles et Files.docx and /dev/null differ diff --git a/coursDEV.1.1/20.01 Comment coder une File-Pile.docx b/coursDEV.1.1/20.01 Comment coder une File-Pile.docx deleted file mode 100644 index 8e0a208..0000000 Binary files a/coursDEV.1.1/20.01 Comment coder une File-Pile.docx and /dev/null differ diff --git a/coursDEV.1.1/20.01 representation de file en liste chainée.c b/coursDEV.1.1/20.01 representation de file en liste chainée.c deleted file mode 100644 index b646fef..0000000 --- a/coursDEV.1.1/20.01 representation de file en liste chainée.c +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -/*Définissez les types nécessaires pour une file de caractères :*/ -struct maillon_s { - char valeurs; - struct maillon_s* suivant; -}; - -struct file_s { - struct maillon_s* premier; - struct maillon_s* dernier; -} - -typedef struct maillon_s maillon; -typedef struct file_s file; - - -char dequeue(file* f){ - maillon m = *(f->premier); /*je fais une copie de tout ce qu'il y a dans le maillo A*/ - free(f->premier); - f->premier = m.suivant; - - if(f->premier==NULL){ - f->dernier=NULL; - } - return m.valeur -} - -int main(void){ - return 0; -} \ No newline at end of file diff --git a/coursDEV.1.1/20.01 représentation-file-listechainée.png b/coursDEV.1.1/20.01 représentation-file-listechainée.png deleted file mode 100644 index ad6bbd3..0000000 Binary files a/coursDEV.1.1/20.01 représentation-file-listechainée.png and /dev/null differ diff --git a/coursDEV.1.1/20.01-structure-rassemblant-infofile-char.c b/coursDEV.1.1/20.01-structure-rassemblant-infofile-char.c deleted file mode 100644 index d0b1c1d..0000000 --- a/coursDEV.1.1/20.01-structure-rassemblant-infofile-char.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -typedef struct { - char tab[50]; - int indice_debut; - int indice_fin; - int taille; -} car_file; - - -char dequeue(car_file* f){ - f->indice_debut=(f->indice_debut+1)%50; - f-taille--; - return f->tab[(f->indice_debut+49)%50]; -} - - - - -int main(void){ - - - return 0; -} \ No newline at end of file diff --git a/coursDEV.1.1/6 Les constantes nommés et la Bibliothèque math.docx b/coursDEV.1.1/6 Les constantes nommés et la Bibliothèque math.docx deleted file mode 100644 index e69de29..0000000 diff --git a/coursDEV.1.1/7 Les Tableaux.docx b/coursDEV.1.1/7 Les Tableaux.docx deleted file mode 100644 index e307291..0000000 Binary files a/coursDEV.1.1/7 Les Tableaux.docx and /dev/null differ diff --git a/coursDEV.1.1/8 Les Tableaux multidimensionnels.docx b/coursDEV.1.1/8 Les Tableaux multidimensionnels.docx deleted file mode 100644 index 9eefc49..0000000 Binary files a/coursDEV.1.1/8 Les Tableaux multidimensionnels.docx and /dev/null differ diff --git a/coursDEV.1.1/9 Les adresses et les pointeurs.docx b/coursDEV.1.1/9 Les adresses et les pointeurs.docx deleted file mode 100644 index e69de29..0000000 diff --git a/coursDEV.1.1/note TP DEV.docx b/coursDEV.1.1/note TP DEV.docx deleted file mode 100644 index 38e1000..0000000 Binary files a/coursDEV.1.1/note TP DEV.docx and /dev/null differ diff --git a/coursDEV.1.1/salut.c b/coursDEV.1.1/salut.c deleted file mode 100644 index e69de29..0000000