protected void initializeItemsToDraw() {

    ownedCognitons = h.getEsprit().getCognitons();
    allCognitons = new ArrayList<TypeCogniton>();
    plans = new ArrayList<NPlan>();

    for (Cogniton cog : ownedCognitons) {
      allCognitons.add(cog.getCogniton());
    }

    //	allCognitons.addAll(Configuration.cloudCognitons);
    ownedPlans = h.getEsprit().getPlans();
    for (NPlanPondere pl : ownedPlans) {
      plans.add(pl.getPlan());
    }
    for (Group gr : h.getEsprit().getGroups().keySet()) {
      groups.add(gr);
      for (TypeCogniton cog : gr.getArrayListOfCognitonType(h.getEsprit().getGroups().get(gr))) {
        allCognitons.add(cog);
      }
    }
  }
  public void updateData() {

    try {
      semaphore.acquire();
    } catch (InterruptedException ex) {
      System.out.println(ex);
    }

    groups = new ArrayList<Group>();
    for (Group gr : h.getEsprit().getGroups().keySet()) {
      groups.add(gr);
    }

    // Add cognitons
    for (Cogniton cog : h.getEsprit().getCognitons()) {
      if (!this.cognitonIsDrawn(cog.getCogniton())) {
        this.afficherCogniton(cog.getCogniton(), Math.random() * 400, Math.random() * 400);

        this.gCognitons.get(gCognitons.size() - 1).setOpacite(0.0);
        this.gCognitons
            .get(gCognitons.size() - 1)
            .addAnimation(
                new JJAnimationOpacite(50, gCognitons.get(gCognitons.size() - 1), 0.02, false));

        this.supprimerLiensInfluence();
        this.supprimerLiensConditionnels();
        this.clearTriggerLink();

        creerLiensInfluence();
        creerLiensConditionnels();
        createTriggerLink();
      }
    }
    for (Group gr : groups) {
      for (Cogniton cog : gr.getRolesAndCulturons().get(h.getEsprit().getGroups().get(gr))) {
        if (!this.cognitonIsDrawn(cog.getCogniton())) {
          this.afficherCogniton(cog.getCogniton(), Math.random() * 400, Math.random() * 400);

          this.gCognitons.get(gCognitons.size() - 1).setOpacite(0.0);
          this.gCognitons
              .get(gCognitons.size() - 1)
              .addAnimation(
                  new JJAnimationOpacite(50, gCognitons.get(gCognitons.size() - 1), 0.02, false));

          this.supprimerLiensInfluence();
          this.supprimerLiensConditionnels();
          this.clearTriggerLink();

          creerLiensInfluence();
          creerLiensConditionnels();
          createTriggerLink();
        }
      }
    }

    // Add plans
    for (NPlanPondere pl : h.getEsprit().getPlans()) {
      if (!this.planIsDrawn(pl.getPlan())) {
        this.afficherPlan(pl.getPlan(), Math.random() * 400, Math.random() * 400, pl);

        this.gPlan.get(gPlan.size() - 1).setOpacite(0.0);
        this.gPlan
            .get(gPlan.size() - 1)
            .addAnimation(new JJAnimationOpacite(50, gPlan.get(gPlan.size() - 1), 0.02, false));

        this.supprimerLiensInfluence();
        this.supprimerLiensConditionnels();
        this.clearTriggerLink();

        creerLiensInfluence();
        creerLiensConditionnels();
        createTriggerLink();
      }
    }
    // Remove cognitons
    for (TypeCogniton cog : Configuration.cognitons) {
      if (cog.getType() != TypeDeCogniton.CULTURON
          && this.cognitonIsDrawn(cog)
          && !h.getEsprit().ownCogniton(cog)) {
        this.removeCogniton(cog);

        this.supprimerLiensInfluence();
        this.supprimerLiensConditionnels();
        this.clearTriggerLink();

        creerLiensInfluence();
        creerLiensConditionnels();
        createTriggerLink();
      } else if (cog.getType() == TypeDeCogniton.CULTURON) {
        boolean exist = false;
        for (Group gr : groups) {
          if (gr.roleContainsCulturon(cog, h.getEsprit().getGroups().get(gr))) {
            exist = true;
          }
        }
        if (!exist) {
          this.removeCogniton(cog);

          this.supprimerLiensInfluence();
          this.supprimerLiensConditionnels();
          this.clearTriggerLink();

          creerLiensInfluence();
          creerLiensConditionnels();
          createTriggerLink();
        }
      }
    }
    // Remove plans
    for (NPlan pl : Configuration.plans) {
      if (this.planIsDrawn(pl) && !h.getEsprit().ownPlan(pl)) {
        this.removePlan(pl);

        this.supprimerLiensInfluence();
        this.supprimerLiensConditionnels();
        this.clearTriggerLink();

        creerLiensInfluence();
        creerLiensConditionnels();
        createTriggerLink();
      }
    }
    semaphore.release();
  }