package com.faforever.client.notification;
import com.faforever.client.preferences.PreferencesService;
import com.faforever.client.preferences.ToastPosition;
import javafx.fxml.FXML;
import javafx.geometry.Pos;
import javafx.scene.layout.Pane;
import javafx.scene.layout.Region;
import javafx.scene.layout.VBox;
import org.springframework.context.ApplicationContext;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
public class TransientNotificationsController {
@FXML
VBox transientNotificationsRoot;
@Resource
ApplicationContext applicationContext;
@Resource
PreferencesService preferencesService;
public TransientNotificationsController() {
}
@PostConstruct
void postConstruct() {
ToastPosition toastPosition = preferencesService.getPreferences().getNotification().getToastPosition();
switch (toastPosition) {
case TOP_RIGHT:
transientNotificationsRoot.setAlignment(Pos.TOP_RIGHT);
break;
case BOTTOM_RIGHT:
transientNotificationsRoot.setAlignment(Pos.BOTTOM_RIGHT);
break;
case BOTTOM_LEFT:
transientNotificationsRoot.setAlignment(Pos.BOTTOM_LEFT);
break;
case TOP_LEFT:
transientNotificationsRoot.setAlignment(Pos.TOP_LEFT);
break;
default:
throw new AssertionError("Uncovered position: " + toastPosition);
}
}
public Pane getRoot() {
return transientNotificationsRoot;
}
public void addNotification(TransientNotification notification) {
TransientNotificationController controller = applicationContext.getBean(TransientNotificationController.class);
controller.setNotification(notification);
Region controllerRoot = controller.getRoot();
transientNotificationsRoot.getChildren().add(0, controllerRoot);
}
}