package be.msyben.vinylManager.tools.importexport;

import be.msyben.vinylManager.properties.Language;

/**
 * Champs possibles pour l'export tabulaire.
 */
public enum TableFormatExportField {
    artiste("exportTable.name.artiste", false, false),
    titre("exportTable.name.titre", false, false),
    compositeur("exportTable.name.compositeur.full", false, false),
    reference("exportTable.name.reference", false, false),
    editeur("exportTable.name.editeur", false, false),
    annee("exportTable.name.annee", false, false),
    anneeParution("exportTable.name.annee.parution", false, false),
    pays("exportTable.name.pays", false, false),
    chef("exportTable.name.chef", false, false),
    orchestre("exportTable.name.orchestre", false, false),
    musiciens("exportTable.name.musiciens", false, false),
    etatAlbum("exportTable.name.etat", false, false),
    commentaire("exportTable.name.commentaire", false, false),
    etoiles("exportTable.name.etoiles", false, false),
    genre("exportTable.name.genre", false, false),
    valeur("exportTable.name.valeur", false, false),
    support("exportTable.name.support", false, false),
    parolier("exportTable.name.parolier", false, false),
    location("exportTable.name.location", false, false),
    possede("exportTable.name.possede", false, false),
    dateAchat("exportTable.name.date.achat", false, false),
    compilation("exportTable.name.compilation", false, false),
    numDisque("exportTable.name.num.disque", true, false),
    etatDisque("exportTable.name.etat.disque", true, false),
    taille("exportTable.name.taille", true, false),
    vitesse("exportTable.name.vitesse", true, false),
    couleur("exportTable.name.couleur", true, false),
    canaux("exportTable.name.canaux", true, false),
    face("exportTable.name.face", false, true),
    numPiste("exportTable.name.numero.piste", false, true),
    piste("exportTable.name.piste", false, true),
    duree("exportTable.name.duree", false, true),
    pisteArtiste("exportTable.name.piste.artiste", false, true),
    pisteAnnee("exportTable.name.piste.annee", false, true);
    
    private String key;
    private boolean hasDisque; // Indique si on devra boucler sur un disque
    private boolean hasTitre; // Indique si on devra boucler sur un titre
    
    TableFormatExportField(String key, boolean hasDisque, boolean hasTitre) {
        this.key = key;
        this.hasDisque = hasDisque;
        this.hasTitre = hasTitre;
    }

    public String getKey() {
        return key;
    }

    public boolean isHasDisque() {
        return hasDisque;
    }

    public boolean isHasTitre() {
        return hasTitre;
    }
    
    
    
    @Override
    public String toString() {
        String s = Language.getInstance().get(key);
        if (s.isEmpty()) {
            return key;
        } else {
            return s;
        }
    }
}
