// Fill out your copyright notice in the Description page of Project Settings. #include "UI/API_Test/APITestOverlay.h" #include "UI/API_Test/APITestManager.h" #include "Components/Button.h" #include "Components/ScrollBox.h" #include "Components/TextBlock.h" #include "UI/API/ListFleets/FleetId.h" #include "UI/API/ListFleets/ListFleetsBox.h" #include "UI/HTTP/HTTPRequestTypes.h" void UAPITestOverlay::NativeConstruct() { Super::NativeConstruct(); check(APITestManagerClass); APITestManager = NewObject(this, APITestManagerClass); check (ListFleetsBox) check (ListFleetsBox->Button_ListFleets) ListFleetsBox->Button_ListFleets->OnClicked.AddDynamic(this, &UAPITestOverlay::ListFleetsButtonClicked); } void UAPITestOverlay::ListFleetsButtonClicked() { check(APITestManager); APITestManager->OnListFleetsResponseReceived.AddDynamic(this, &UAPITestOverlay::OnListFleetsResponseReceived); APITestManager->ListFleets(); ListFleetsBox->Button_ListFleets->SetIsEnabled(false); } void UAPITestOverlay::OnListFleetsResponseReceived(const FDS_ListFleetsResponse& ListFleetResponse, bool bWasSuccessful) { if (APITestManager->OnListFleetsResponseReceived.IsAlreadyBound(this, &UAPITestOverlay::OnListFleetsResponseReceived)) { APITestManager->OnListFleetsResponseReceived.RemoveDynamic(this, &UAPITestOverlay::OnListFleetsResponseReceived); } check(FleetIdWidgetClass); ListFleetsBox->ScrollBox_ListFleets->ClearChildren(); if (bWasSuccessful) { for (const FString& FleetId : ListFleetResponse.FleetIds) { UFleetId* FleetIdWidget = CreateWidget(this, FleetIdWidgetClass); FleetIdWidget->TextBlock_FleetId->SetText(FText::FromString(FleetId)); ListFleetsBox->ScrollBox_ListFleets->AddChild(FleetIdWidget); } } else { UFleetId* FleetIdWidget = CreateWidget(this, FleetIdWidgetClass); FleetIdWidget->TextBlock_FleetId->SetText(FText::FromString("Something went wrong!")); ListFleetsBox->ScrollBox_ListFleets->AddChild(FleetIdWidget); } ListFleetsBox->Button_ListFleets->SetIsEnabled(true); }