bool SPropertyEditorAsset::OnAssetDraggedOver( const UObject* InObject ) const
{
	if (CanEdit() && InObject != NULL && InObject->IsA(ObjectClass))
	{
		// Check against custom asset filter
		if (!OnShouldFilterAsset.IsBound()
			|| !OnShouldFilterAsset.Execute(FAssetData(InObject)))
		{
			return CanSetBasedOnCustomClasses( FAssetData(InObject) );
		}
	}

	return false;
}
void SPropertyEditorAsset::SetValue( const FAssetData& AssetData )
{
	AssetComboButton->SetIsOpen(false);

	bool bAllowedToSetBasedOnFilter = CanSetBasedOnCustomClasses( AssetData );

	if( bAllowedToSetBasedOnFilter )
	{
		if(PropertyEditor.IsValid())
		{
			PropertyEditor->GetPropertyHandle()->SetValue(AssetData);
		}

		OnSetObject.ExecuteIfBound(AssetData);
	}
}