Add error notification

This commit is contained in:
2026-05-22 17:46:25 +02:00
parent 5b7e33f5dd
commit b99bb9de6e
2 changed files with 19 additions and 21 deletions
@@ -129,7 +129,10 @@ public class GUI extends Application implements IView {
@Override
public void showError(String message) {
Platform.runLater(() -> {
controllerMain.isError = true;
controllerMain.render();
});
}
}
@@ -8,6 +8,7 @@ import it.polimi.ingsw.gc14.Model.Orders.OrderPlayer;
import it.polimi.ingsw.gc14.Network.EventType;
import it.polimi.ingsw.gc14.Network.NetworkEvent;
import javafx.animation.ScaleTransition;
import javafx.animation.TranslateTransition;
import javafx.application.Platform;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
@@ -56,6 +57,8 @@ public class MainFXMLController {
private ClientController controller;
public boolean isError;
// ==== IMAGE CACHE ====
private static final Map<String, Image> imageCache = new HashMap<>();
@@ -83,6 +86,7 @@ public class MainFXMLController {
});
renderBackground();
isError=false;
}
@@ -95,26 +99,6 @@ public class MainFXMLController {
renderSidePanel();
}
public void render(NetworkEvent event) {
if (mainHBox.getWidth() == 0 || mainHBox.getHeight() == 0) {
Platform.runLater(() -> render(event));
return;
}
if (event.getEventType() == EventType.SLOT_CHOICE) {
renderBoard();
renderSidePanel();
} else {
renderUpper();
renderBoard();
renderLower();
renderSidePanel();
if (Objects.equals(event.getUsername(), controller.myUsername)
|| event.getEventType() == EventType.NEXT_ROUND) {
renderMyHand();
}
}
}
// ==== EFFECTS ====
private void addClip(ImageView img) {
@@ -311,6 +295,17 @@ public class MainFXMLController {
usernameLabel.getStyleClass().add("label-medium");
if (player.getUserName().equals(controller.myUsername)) {
usernameLabel.setStyle("-fx-text-fill: #9d0208");
if(isError) {
TranslateTransition tt = new TranslateTransition(Duration.millis(50), card);
tt.setFromX(0);
tt.setByX(10);
tt.setCycleCount(6);
tt.setAutoReverse(true);
tt.play();
isError=false;
}
}
headerRow.getChildren().addAll(totem, usernameLabel);