Skip to content

Commit

Permalink
feat: added paymentMethodSection
Browse files Browse the repository at this point in the history
  • Loading branch information
MatheaGjerde committed Mar 30, 2026
1 parent 9a4e4dc commit 9625956
Showing 1 changed file with 43 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ public class DonationPageView extends BorderPane {
private final DonationController donationController;

private final List<Node> allDonationElements = new ArrayList<>();
private final List<Node> allPaymentElements = new ArrayList<>();
private final Map<Object, BigDecimal> elementAmounts = new HashMap<>();
private final Map<Object, String> elementPaymentMethods = new HashMap<>();

public DonationPageView(AppState appState, NavigationController nav, DonationController donationController) {
this.appState = appState;
Expand All @@ -37,7 +39,7 @@ public DonationPageView(AppState appState, NavigationController nav, DonationCon
getStylesheets().add(getClass().getResource("/donationpage/donation.css").toExternalForm());

VBox content = new VBox();
content.getChildren().addAll(createDonationGrid(), createDonateSection());
content.getChildren().addAll(createDonationGrid(), createPaymentMethodSection(), createDonateSection());
setCenter(content);

}
Expand Down Expand Up @@ -115,6 +117,29 @@ private VBox createCustomButton() {
allDonationElements.add(box);
return box;
}

public HBox createPaymentMethodSection() {
Button appleBtn = new Button("Apple Pay");
Button vippsBtn = new Button("Vipps");
Button visaBtn = new Button("Visa");

for (Button btn : new Button[]{appleBtn, vippsBtn, visaBtn}) {
btn.getStyleClass().add("payment-method-button");

btn.setOnAction(e -> {selectPaymentMethod(btn);});
allPaymentElements.add(btn);
}

elementPaymentMethods.put(appleBtn, "Apple Pay");
elementPaymentMethods.put(vippsBtn, "Vipps");
elementPaymentMethods.put(visaBtn, "Visa");

HBox sectionPm = new HBox(appleBtn, vippsBtn, visaBtn);
sectionPm.setAlignment(Pos.CENTER);
sectionPm.setPadding(new Insets(20, 20, 20, 20));
return sectionPm;
}

private HBox createDonateSection() {
Button donateBtn = new Button("Donate");
donateBtn.getStyleClass().add("donate-button");
Expand All @@ -137,6 +162,14 @@ private void selectDonationElement(Node element) {
// Extract and store the amount
extractAndStoreAmount(element);
}
private void selectPaymentMethod(Node element) {
for (Node node : allPaymentElements) {
node.getStyleClass().remove("payment-method-selected");
}
element.getStyleClass().add("payment-method-selected");

extractAndStorePaymentMethod(element);
}

private void extractAndStoreAmount(Node element) {
BigDecimal amount = elementAmounts.get(element);
Expand All @@ -147,6 +180,15 @@ private void extractAndStoreAmount(Node element) {
}
}

private void extractAndStorePaymentMethod(Node element) {
String paymentMethod = elementPaymentMethods.get(element);
if (paymentMethod != null) {
appState.setCurrentPaymentMethod(paymentMethod);
} else {
System.err.println("Error: No amount found for selected element");
}
}

private BigDecimal parseAmount(String amountStr) {
try {
return new BigDecimal(amountStr.replace("kr", "").trim());
Expand Down

0 comments on commit 9625956

Please sign in to comment.