GestionConfiguation.java :  » App » projet-android-lpd2i » lpd2i » outils » stockage » Android Open Source

Android Open Source » App » projet android lpd2i 
projet android lpd2i » lpd2i » outils » stockage » GestionConfiguation.java
/*
 * GestionConfiguation.java              22 fvr. 2011
 */
package lpd2i.outils.stockage;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Arrays;

import lpd2i.gestionMateriel.Batiment;
import lpd2i.gestionMateriel.Equipement;
import lpd2i.gestionMateriel.Equipement.ETAT_POSSIBLES;
import lpd2i.gestionMateriel.Etage;
import lpd2i.gestionMateriel.LocalisationGPS;
import lpd2i.gestionMateriel.Organisation;
import lpd2i.gestionMateriel.Piece;
import lpd2i.gestionMateriel.Piece.PIECE;
import lpd2i.gestionMateriel.PositionGPS;
import android.content.Context;

/**
 * TODO commenter le role de la classe
 * 
 * @author melanie.marc
 */
public class GestionConfiguation {

  /**
   * fichier de sauvegarde de configuration par dfaut
   */
  public static final String FICHIER = "sauvegarde_configuration";

  /**
   * Permet de sauvegarder une organisation dans un fichier
   * 
   * @param aSauvegarder
   *            , organisation a sauvegarder
   * @param destination
   *            , fichier d'enregistrement de l'organisation
   */
  public static void sauvegardeConfiguration(Context context,
      Organisation aSauvegarder) {

    ObjectInputStream fluxIn;
    ObjectOutputStream organisationOut;
    FileOutputStream fileOutPut;
    @SuppressWarnings("unused")
    Organisation aRecuperer = null;
    String chemin;
    ;

    try {
      // rcupration du chemin du fichier
      fluxIn = new ObjectInputStream(context.openFileInput(FICHIER));
      chemin = (String) fluxIn.readObject();
      fluxIn.close();
      // sauvegarde de la configuration
      fileOutPut = new FileOutputStream(new File(chemin));
      organisationOut = new ObjectOutputStream(fileOutPut);
      organisationOut.writeObject(aSauvegarder);
      organisationOut.close();
      
    } catch (FileNotFoundException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

  /**
   * Permet de charger le chemin de la configuration de le stock il pourra
   * ainsi etre accessible par la recuperation
   * 
   * @param context
   *            Permet d'accder au fichier de sauvegarde intenre 
   *            l'application
   * @param chemin
   *            Permet de dfinir le chemin ou sera stock la congiguration
   */
  public static void chargerCheminConfiguration(Context context, String chemin) {
    ObjectOutputStream fluxOut;

    try {
      fluxOut = new ObjectOutputStream(context.openFileOutput(FICHIER, 0));
      fluxOut.writeObject(chemin);
      fluxOut.close();
    } catch (FileNotFoundException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

  /**
   * Permet de rcuprer une organisation sauvegarde dans un fichier
   * 
   * @param source
   *            , fichier source de rcupration de l'organisation
   * @return organisation rcupre
   */
  public static Organisation recuperationConfiguration(Context context) {

    ObjectInputStream fluxIn;
    ObjectInputStream organisationIn;
    FileInputStream fileInPut;
    Organisation aRecuperer = null;
    String chemin;
    ;

    try {
      // rcupration du chemin du fichier
      fluxIn = new ObjectInputStream(context.openFileInput(FICHIER));
      chemin = (String) fluxIn.readObject();
      fluxIn.close();
      
      // rcupration de l'organisation
      fileInPut = new FileInputStream(new File(chemin));
      organisationIn = new ObjectInputStream(fileInPut);
      aRecuperer = (Organisation) organisationIn.readObject();
      organisationIn.close();
      
    } catch (FileNotFoundException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return aRecuperer;
  }

  /**
   * Cration d'une organisation pour une base de test Il s'agit la de l'IUT
   * de Rodez contenant 2 batiments => le premier contient 5 etages
   * (1,0,-1,-2,-3) => le second contient 3 etages (1,0,-1) -> chaque etage de
   * chaque batiment contiendra des espaces et sous espaces contenant des
   * equipements
   */
  public static Organisation creationOrganisation() {

    // l'organisation est l'Iut de Rodez
    Organisation organisation = Organisation
        .getOrganisation("IUT de Rodez");

    /* creation du batiment A design par une localisation GPS */
    Batiment batA = new Batiment("Batiment A");
    LocalisationGPS localisationBatA = new LocalisationGPS();

    // TODO localisation GPS fausse...
    localisationBatA.add(new PositionGPS(44.360378, 2.576406));
    localisationBatA.add(new PositionGPS(44.360159, 2.576924));
    localisationBatA.add(new PositionGPS(44.360010, 2.576808));
    localisationBatA.add(new PositionGPS(44.360228, 2.576277));
    /*
     * localisationBatA.add(new PositionGPS(45.802718, 2.747142));
     * localisationBatA.add(new PositionGPS(45.802684, 2.747303));
     * localisationBatA.add(new PositionGPS(45.802460, 2.747190));
     * localisationBatA.add(new PositionGPS(45.802506, 2.747035));
     */
    batA.setLocalisationGPS(localisationBatA);
    // ajout du batiment A  l'organisation
    organisation.add(batA);

    /* cration du batiment B design par une localisation GPS */
    Batiment batB = new Batiment("Batiment B");
    LocalisationGPS localisationBatB = new LocalisationGPS();
    // TODO localisation GPS fausse...
    localisationBatB.add(new PositionGPS(44.359981, 2.576243));
    localisationBatB.add(new PositionGPS(44.359784, 2.576725));
    localisationBatB.add(new PositionGPS(44.359498, 2.576492));
    localisationBatB.add(new PositionGPS(44.359722, 2.576039));

    /*
     * localisationBatB.add(new PositionGPS(45.802746, 2.747083));
     * localisationBatB.add(new PositionGPS(45.802405, 2.746603));
     * localisationBatB.add(new PositionGPS(45.802529, 2.746439));
     * localisationBatB.add(new PositionGPS(45.802851, 2.746933));
     */
    batB.setLocalisationGPS(localisationBatB);
    // ajout du batiment B  l'organisation
    organisation.add(batB);

    /**************************************************************
     * \ Batiment A \
     **************************************************************/

    // cration de 5 etages
    Etage premierEtageA = new Etage("Amphi");
    premierEtageA.setEtage(1);
    Etage rdcEtageA = new Etage("Hall");
    rdcEtageA.setEtage(0);
    Etage premierSousEtageA = new Etage("Info");
    premierSousEtageA.setEtage(-1);
    Etage secondSousEtageA = new Etage("Infocom");
    secondSousEtageA.setEtage(-2);
    Etage troisiemeSousEtageA = new Etage("Qlio");
    troisiemeSousEtageA.setEtage(-3);
    // ajout des etages au batiment A
    batA.addEspace(premierEtageA);
    batA.addEspace(rdcEtageA);
    batA.addEspace(premierSousEtageA);
    batA.addEspace(secondSousEtageA);
    batA.addEspace(troisiemeSousEtageA);

    /* ajout de sous espaces a l'etage 1 avec equipement */

    // TODO on pourrait rajouter la petite piece interieure de l'amphi
    // accessible par escalier
    Piece hallA1 = new Piece(PIECE.HALL, "Hall Amphi");
    premierEtageA.addEspace(hallA1);
    Piece amphi = new Piece(PIECE.PIECE, "Amphitheatre");
    amphi.addEquipement(new Equipement(true, "retroprojecteur"));
    amphi.addEquipement(new Equipement(true, ETAT_POSSIBLES.DEGRADE,
        "cran droulant"));
    amphi.addEquipement(new Equipement(true, ETAT_POSSIBLES.HORS_SERVICE,
        "microphone"));
    premierEtageA.addEspace(amphi);

    /* ajout de sous espaces a l'etage 0 avec equipement */

    Piece hallA0 = new Piece(PIECE.HALL, "Hall batiment A");
    hallA0.addEquipement(new Equipement(true, ETAT_POSSIBLES.HORS_SERVICE,
        "Machine a caf"));
    hallA0.addEquipement(new Equipement(true, "Machine 1"));
    hallA0.addEquipement(new Equipement(false, ETAT_POSSIBLES.DEGRADE,
        "Machine 2"));
    hallA0.addEquipement(new Equipement(true, "Machine 3"));
    hallA0.addEquipement(new Equipement(true, "Machine 4"));
    hallA0.addEquipement(new Equipement(true, "Machine 5"));
    hallA0.addEquipement(new Equipement(false, ETAT_POSSIBLES.DEGRADE,
        "Machine 6"));
    hallA0.addEquipement(new Equipement(true, "Machine 7"));
    hallA0.addEquipement(new Equipement(true, "Machine 8"));
    hallA0.addEquipement(new Equipement(true, ETAT_POSSIBLES.DEGRADE,
        "Machine 9"));
    hallA0.addEquipement(new Equipement(true, ETAT_POSSIBLES.HORS_SERVICE,
        "Machine 10"));
    hallA0.addEquipement(new Equipement(true, "Machine 11"));
    hallA0.addEquipement(new Equipement(false, "Machine 12"));
    hallA0.addEquipement(new Equipement(true, ETAT_POSSIBLES.DEGRADE,
        "Machine 13"));
    hallA0.addEquipement(new Equipement(true, ETAT_POSSIBLES.HORS_SERVICE,
        "Machine 14"));
    rdcEtageA.addEspace(hallA0);

    /* ajout de sous espaces a l'etage -1 avec leurs equipements */

    // couloir principal de l'etage contenant une imprimante
    // ainsi que les autres sous espaces
    Piece couloirA1 = new Piece(PIECE.COULOIR, "couloir principal etage -1");
    couloirA1.addEquipement(new Equipement(true, ETAT_POSSIBLES.DEGRADE,
        "Table"));
    couloirA1.addEquipement(new Equipement(true, ETAT_POSSIBLES.DEGRADE,
        "Relieuse seule sans matriel"));
    premierSousEtageA.addEspace(couloirA1);

    // placard a balais dans le couloir
    Piece placard = new Piece(PIECE.PIECE, "Placard a balai");
    placard.addEquipement(new Equipement(false, "balai brosse"));
    placard.addEquipement(new Equipement(true, ETAT_POSSIBLES.DEGRADE,
        "seau"));
    couloirA1.addEspace(placard);

    // salle informatique contenant une liste d'ordinateurs
    Piece a304 = new Piece(PIECE.PIECE, "Salle info A304");
    Equipement[] ordinateurs = {
        new Equipement(true, ETAT_POSSIBLES.DEGRADE,
            "Imprimante noir et blanc"),
        new Equipement(
            true,
            "Bureau Professeur Ordinateur1 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(true, ETAT_POSSIBLES.DEGRADE,
            "Bureau Ordinateur2 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(true,
            "Bureau Ordinateur3 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(true,
            "Bureau Ordinateur4 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(true, ETAT_POSSIBLES.HORS_SERVICE,
            "Bureau Ordinateur5 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(false,
            "Bureau Ordinateur6 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(true,
            "Bureau Ordinateur7 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(true,
            "Bureau Ordinateur8 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(true,
            "Bureau Ordinateur9 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(
            false,
            "Bureau Ordinateur10 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(
            true,
            "Bureau Ordinateur11 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(
            true,
            "Bureau Ordinateur12 HP compos de son ecran, sa tour, son clavier et sa souris"),
        new Equipement(true, "retroprojecteur"),
        new Equipement(true, "chaise1"),
        new Equipement(true, "chaise2"),
        new Equipement(true, "chaise3"),
        new Equipement(true, "chaise4"),
        new Equipement(true, "chaise5"),
        new Equipement(false, "chaise6"),
        new Equipement(true, "chaise7"),
        new Equipement(true, "chaise8"),
        new Equipement(false, "chaise9"),
        new Equipement(true, "chaise10"),
        new Equipement(true, "chaise11"),
        new Equipement(true, "chaise12") };

    a304.addAllEquipement(Arrays.asList(ordinateurs));
    couloirA1.addEspace(a304);

    // bureau secretariat info
    Piece secretariatInfo = new Piece(PIECE.PIECE,
        "Secretariat de Annie Caulet");
    secretariatInfo
        .addEquipement(new Equipement(true, "Bureau avec chaise"));
    secretariatInfo.addEquipement(new Equipement(false, "imprimante"));
    secretariatInfo.addEquipement(new Equipement(true, "photocopieuse"));
    secretariatInfo
        .addEquipement(new Equipement(true, "ordinateur complet"));
    couloirA1.addEspace(secretariatInfo);

    /* ajout de sous espaces a l'etage -2 avec leurs equipements */

    // couloir principal de l'etage contenant une imprimante
    // ainsi que les autres sous espaces
    Piece hallA2 = new Piece(PIECE.COULOIR, "couloir principal etage -2");
    hallA2.addEquipement(new Equipement(true, ETAT_POSSIBLES.DEGRADE,
        "Imprimante couleurs laser jet"));
    secondSousEtageA.addEspace(hallA2);

    Piece bureauAdminReseau = new Piece(PIECE.PIECE,
        "Piece des administrateurs rseau de l'IUT");
    bureauAdminReseau.addEquipement(new Equipement(false, "Imprimante"));
    bureauAdminReseau.addEquipement(new Equipement(true,
        "Bureau 1 avec chaise et ordinateur complet"));
    bureauAdminReseau.addEquipement(new Equipement(true,
        "Bureau 2 avec chaise et ordinateur complet"));
    bureauAdminReseau.addEquipement(new Equipement(true,
        "Bureau 3 avec chaise et ordinateur complet"));
    bureauAdminReseau.addEquipement(new Equipement(true, "Imprimante"));
    secondSousEtageA.addEspace(bureauAdminReseau);

    /* ajout de sous espaces a l'etage -3 avec leurs equipements */

    // couloir principal de l'etage contenant des sous espaces
    Piece couloirA3 = new Piece(PIECE.PIECE, "couloir etage -3");
    Piece atelier = new Piece(PIECE.PIECE, "atelier");
    Piece salleInfo = new Piece(PIECE.PIECE, "salle informatique");
    couloirA3.addEspace(atelier);
    couloirA3.addEspace(salleInfo);
    atelier.addEquipement(new Equipement(false, "diffrents outils"));
    salleInfo.addEquipement(new Equipement(true, ETAT_POSSIBLES.DEGRADE,
        "retroprojecteur"));
    troisiemeSousEtageA.addEspace(couloirA3);

    /**************************************************************
     * \ Batiment B \
     **************************************************************/

    // cration de 3 etages
    Etage premierEtageB = new Etage("Labo Langues");
    premierEtageB.setEtage(1);
    Etage rdcEtageB = new Etage("GEA");
    rdcEtageB.setEtage(0);
    Etage premierSousEtageB = new Etage("Commun");
    premierSousEtageB.setEtage(-1);
    // ajout des etages au batiment B
    batB.addEspace(premierEtageB);
    batB.addEspace(rdcEtageB);
    batB.addEspace(premierSousEtageB);

    /* ajout de sous espaces a l'etage 1 avec equipement */

    Piece couloirB1 = new Piece(PIECE.COULOIR, "Couloir fond");
    Piece salleExamen = new Piece(PIECE.PIECE, "Salle d'examen");
    salleExamen.addEquipement(new Equipement(true, "50 places eleves"));
    salleExamen.addEquipement(new Equipement(true, ETAT_POSSIBLES.DEGRADE,
        "une bureau enseignant"));
    salleExamen.addEquipement(new Equipement(false, "retropreojecteur"));
    couloirB1.addEspace(salleExamen);
    premierEtageB.addEspace(couloirB1);

    /* ajout de sous espaces a l'etage 0 avec equipement */

    Piece hallB0 = new Piece(PIECE.HALL, "Hall Batiment B");
    Piece bureauSurveillant = new Piece(PIECE.PIECE,
        "Bureau du surveillant de l'IUT");
    bureauSurveillant.addEquipement(new Equipement(true, "bureau"));
    hallB0.addEspace(bureauSurveillant);
    rdcEtageB.addEspace(hallB0);

    /* ajout de sous espaces a l'etage -1 avec equipement */

    Piece couloirBM1 = new Piece(PIECE.COULOIR, "Couloir");
    Piece escalierIntermiediaire = new Piece(PIECE.ESCALIER,
        "Escalier intermediaire allant vers passerelle");
    Piece salleExamenB306 = new Piece(PIECE.PIECE, "Salle d'examen B306");
    salleExamenB306
        .addEquipement(new Equipement(false, "80 places eleves"));
    salleExamenB306.addEquipement(new Equipement(true,
        ETAT_POSSIBLES.DEGRADE, "une bureau enseignant"));
    salleExamenB306.addEquipement(new Equipement(true, "retropreojecteur"));
    couloirBM1.addEspace(escalierIntermiediaire);
    couloirBM1.addEspace(salleExamenB306);
    premierSousEtageB.addEspace(couloirBM1);

    return organisation;
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.