package nc.noumea.mairie.organigramme.enums; /* * #%L * Logiciel de Gestion des Organigrammes de la Ville de Nouméa * $Id:$ * $HeadURL:$ * %% * Copyright (C) 2015 Mairie de Nouméa * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ /** * Modélise une transition de workflow (libellé, statut source, statut cible). * * @author AgileSoft.NC */ public enum Transition { // @formatter:off TRANSITOIRE("Transitoire", Statut.ACTIF, Statut.TRANSITOIRE), ACTIF_APRES_PREVISION("Activer", Statut.PREVISION, Statut.ACTIF), INACTIF_APRES_TRANSITOIRE("Inactif", Statut.TRANSITOIRE, Statut.INACTIF), INACTIF_APRES_ACTIF("Inactif", Statut.ACTIF, Statut.INACTIF); // @formatter:on String libelle; Statut statutSource; Statut statut; Transition(String libelle, Statut statutSource, Statut statut) { this.libelle = libelle; this.statut = statut; this.statutSource = statutSource; } /** * @return libellé de la transition, lisible pour l'utilisateur */ public String getLibelle() { return this.libelle; } /** * @return le statut cible de la transition */ public Statut getStatut() { return this.statut; } /** * @return le statut source (de départ) de la transition */ public Statut getStatutSource() { return this.statutSource; } /** * @return le nom de l'image sur le bouton, déduit du nom de la transition */ public String getButtonImage() { return "/imgs/icon/statut-" + this.statut.name().replaceAll("_", "-").toLowerCase() + ".png"; } /** * @return le nom de la transition, ex : "TRANSITOIRE" */ public String getName() { return this.name(); } @Override public String toString() { return statutSource.getLibelle() + " -> " + statut.getLibelle(); } };