// Fill out your copyright notice in the Description page of Project Settings. #include "UI/APITest/APITestOverlay.h" #include "Blueprint/WidgetLayoutLibrary.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/APITest/APITestManager.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 FDSListFleetsResponse& ListFleetsResponse, bool bWasSuccessful) { if (APITestManager->OnListFleetsResponseReceived.IsAlreadyBound(this, &UAPITestOverlay::OnListFleetsResponseReceived)) { APITestManager->OnListFleetsResponseReceived.RemoveDynamic(this, &UAPITestOverlay::OnListFleetsResponseReceived); } ListFleetsBox->ScrollBox_ListFleets->ClearChildren(); check(FleetIdWidgetClass); if (bWasSuccessful) { for (const FString& FleetId : ListFleetsResponse.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); }