package clientarbres;

import alxtree.*;

public class AppletClientArbres extends Applet implements AlxTreeListener
{
  AlxTreeContainer alxTreeContainer;

  public void AppletClientArbres()
  {
    creationArbre();
    initGraphique();
    alxTreeContainer.getAlxTree().addChangeListener(this); //mieux vaut faire ça aprés la création de l'arbre
  }

  /** en réponse à un événement sur <code>AlxTreeContainer</code> */
  public void alxTreeChanged(AlxTreeEvent ate)
  {
      AlxNoeud alxNoeud = ate.getAlxNoeud(); //récupère le noeud qui a subit une modification
      if (alxNoeud.isFeuille()) //si c'est une feuille de l'arbre qui a généré l'événement
        if (alxNoeud.isOuvert())
          //code de l'ouverture d'un noeud. //on récupère l'adresse complète, du père au fils avec: alxNoeud.getChemin();
        else
          //code de la fermeture d'un noeud
    }
  }

  /** exemple de création de l'arbre */
  private void creationArbre()
  {
    AlxNoeud racine = new AlxNoeud("racine");
    AlxNoeud fils1 = new AlxNoeud("fils1");
    racine.addFils(fils1); //exemple d'ajout de fils
    racine.addFils("fils2"); //exemple d'ajout de fils
    racine.addFils(1,"fils3"); //exemple d'insertion de fils à un indice donné

    racine.getFilsAt(1).addFils("petitFils1.1");
    AlxNoeud temp = racine.getFilsAt(2); //accés à des fils;
    AlxNoeud temp2 = racine.getFils("fils2"); //accés à des fils;

    //méthode d'accés style fichier permettant de parcourir tous les fils d'un noeud
    racine.resetFils(); //permet de commencer la lecture des fils au début
    while(racine.hasMoreFils()) //tant qu'il y a d'autres fils
    {
        AlxNoeud temp = racine.getNextFils(); //récupère le fils suivant
    }

    alxTreeContainer = new AlxTreeContainer(new AlxTree(racine)); //création du nouvel AlxTreeContainer
  }

  private void initGraphique()
  {
    this.setLayout(new BorderLayout());
    alxTreeContainer.getAlxTree().setBackground(Color.white);
    this.add(alxTreeContainer, BorderLayout.CENTER);
  }
}

Quitter