// Project Lab - NHTV IGAD
//////////////////////////////////////////
// Author: Yoshi van Belkom - 130118
//////////////////////////////////////////


#pragma once

#include "PropertyEditing.h"
#include "SkillTreeEditorViewportClient.h"

//////////////////////////////////////////
// The Skill Tree Details viewport.
//////////////////////////////////////////
class FSkillTreeDetailsCustomization : public IDetailCustomization
{
public:
	static TSharedRef<IDetailCustomization> MakeInstance();

	static TSharedRef<IDetailCustomization> MakeInstanceForSkillTreeEditor( );

	// IDetailCustomization interface
	virtual void CustomizeDetails( IDetailLayoutBuilder& DetailLayout ) override;
	// End of IDetailCustomization interface

protected:
	FSkillTreeDetailsCustomization( );

	static FDetailWidgetRow& GenerateWarningRow( IDetailCategoryBuilder& a_warningCategory, bool a_experimental, const FText& a_warningText, const FText& a_tooltip, const FString& a_excerptLink, const FString& a_excerptName );

	void BuildSkillTreeSection( IDetailCategoryBuilder& a_skillTreeCategory, IDetailLayoutBuilder& a_detailLayout );
};

//////////////////////////////////////////
// The Skill Details viewport.
//////////////////////////////////////////
class FSkillDetailsCustomization : public IDetailCustomization
{
public:
	static TSharedRef<IDetailCustomization> MakeInstance();

	static TSharedRef<IDetailCustomization> MakeInstanceForSkillTreeEditor( );

	// IDetailCustomization interface
	virtual void CustomizeDetails( IDetailLayoutBuilder& DetailLayout ) override;
	// End of IDetailCustomization interface

protected:
	FSkillDetailsCustomization( );

	static FDetailWidgetRow& GenerateWarningRow( IDetailCategoryBuilder& a_warningCategory, bool a_experimental, const FText& a_warningText, const FText& a_tooltip, const FString& a_excerptLink, const FString& a_excerptName );

	void BuildSkillSection( IDetailCategoryBuilder& a_skillCategory, IDetailLayoutBuilder& a_detailLayout );
};

