84 lines
2.2 KiB
Java
84 lines
2.2 KiB
Java
package dev.lions.components;
|
|
|
|
import jakarta.faces.application.FacesMessage;
|
|
import jakarta.faces.context.FacesContext;
|
|
import jakarta.faces.view.ViewScoped;
|
|
import jakarta.inject.Inject;
|
|
import jakarta.inject.Named;
|
|
import jakarta.validation.constraints.NotBlank;
|
|
|
|
import java.io.Serial;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import java.io.Serializable;
|
|
import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Composant gérant l'affichage des notifications dans l'interface utilisateur.
|
|
*/
|
|
@Slf4j
|
|
@Named
|
|
@ViewScoped
|
|
public class NotificationComponent implements Serializable {
|
|
|
|
@Serial
|
|
private static final long serialVersionUID = 1L;
|
|
private static final String MESSAGE_BUNDLE = "messages";
|
|
|
|
@Inject
|
|
FacesContext facesContext;
|
|
|
|
@Inject
|
|
transient ResourceBundle messageBundle;
|
|
|
|
/**
|
|
* Affiche un message de succès.
|
|
*/
|
|
public void showSuccess(@NotBlank String key) {
|
|
log.debug("Affichage message succès: {}", key);
|
|
addMessage(FacesMessage.SEVERITY_INFO,
|
|
getMessage(key + ".title", "Succès"),
|
|
getMessage(key + ".detail"));
|
|
}
|
|
|
|
/**
|
|
* Affiche un message d'erreur.
|
|
*/
|
|
public void showError(@NotBlank String key) {
|
|
log.debug("Affichage message erreur: {}", key);
|
|
addMessage(FacesMessage.SEVERITY_ERROR,
|
|
getMessage(key + ".title", "Erreur"),
|
|
getMessage(key + ".detail"));
|
|
}
|
|
|
|
/**
|
|
* Affiche un message d'avertissement.
|
|
*/
|
|
public void showWarning(@NotBlank String key) {
|
|
log.debug("Affichage message avertissement: {}", key);
|
|
addMessage(FacesMessage.SEVERITY_WARN,
|
|
getMessage(key + ".title", "Attention"),
|
|
getMessage(key + ".detail"));
|
|
}
|
|
|
|
/**
|
|
* Récupère un message localisé avec fallback.
|
|
*/
|
|
private String getMessage(String key, String defaultValue) {
|
|
try {
|
|
return messageBundle.getString(key);
|
|
} catch (Exception e) {
|
|
log.warn("Message non trouvé: {}", key);
|
|
return defaultValue;
|
|
}
|
|
}
|
|
|
|
private String getMessage(String key) {
|
|
return getMessage(key, key);
|
|
}
|
|
|
|
private void addMessage(FacesMessage.Severity severity, String summary, String detail) {
|
|
facesContext.addMessage(null, new FacesMessage(severity, summary, detail));
|
|
log.debug("Message ajouté: {} - {}", summary, detail);
|
|
}
|
|
} |