void SPropertyEditorAsset::OnAssetDropped( UObject* InObject )
{
	if( CanEdit() )
	{
		SetValue(InObject);
	}
}
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;
}
bool SPropertyEditorAsset::CanPaste()
{
	FString ClipboardText;
	FPlatformMisc::ClipboardPaste(ClipboardText);

	const FString PossibleObjectPath = FPackageName::ExportTextPathToObjectPath(ClipboardText);

	bool bCanPaste = false;

	if( CanEdit() )
	{
		if( PossibleObjectPath == TEXT("None") )
		{
			bCanPaste = true;
		}
		else
		{
			FAssetRegistryModule& AssetRegistryModule = FModuleManager::Get().LoadModuleChecked<FAssetRegistryModule>(TEXT("AssetRegistry"));
			bCanPaste = PossibleObjectPath.Len() < NAME_SIZE && AssetRegistryModule.Get().GetAssetByObjectPath( *PossibleObjectPath ).IsValid();
		}
	}

	return bCanPaste;
}
bool SPropertyEditorText::IsReadOnly() const
{
	return !CanEdit();
}
	bool STextPropertyWidget::IsReadOnly() const
	{
		return !CanEdit();
	}