提交 0e9cd4f3 编写于 作者: G Gen Lu

Refactor based on CR comments

上级 c7ec038a
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Windows;
namespace Microsoft.VisualStudio.InteractiveWindow
{
internal partial class InteractiveWindow
{
private sealed class SystemClipboard : InteractiveWindowClipboard
{
internal override bool ContainsData(string format) => Clipboard.ContainsData(format);
internal override object GetData(string format) => Clipboard.GetData(format);
internal override bool ContainsText() => Clipboard.ContainsText();
internal override string GetText() => Clipboard.GetText();
internal override void SetDataObject(object data, bool copy) => Clipboard.SetDataObject(data, copy);
}
}
}
......@@ -46,7 +46,7 @@ internal partial class InteractiveWindow : IInteractiveWindow, IInteractiveWindo
/// </remarks>
private readonly UIThreadOnly _uiOnly;
internal InteractiveWindowClipboard InteractiveWindowClipboard { get; set; } = new SystemWindowsClipboardWrapper();
internal InteractiveWindowClipboard InteractiveWindowClipboard { get; set; } = new SystemClipboard();
#region Initialization
......@@ -540,32 +540,6 @@ private static void DoEvents()
internal event Action<State> StateChanged;
#endregion
private sealed class SystemWindowsClipboardWrapper : InteractiveWindowClipboard
{
internal override bool ContainsData(string format) => Clipboard.ContainsData(format);
internal override object GetData(string format) => Clipboard.GetData(format);
internal override bool ContainsText() => Clipboard.ContainsText();
internal override string GetText() => Clipboard.GetText();
internal override void SetDataObject(object data, bool copy) => Clipboard.SetDataObject(data, copy);
}
}
internal abstract class InteractiveWindowClipboard
{
internal abstract bool ContainsData(string format);
internal abstract object GetData(string format);
internal abstract bool ContainsText();
internal abstract string GetText();
internal abstract void SetDataObject(object data, bool copy);
#endregion
}
}
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.VisualStudio.InteractiveWindow
{
internal abstract class InteractiveWindowClipboard
{
internal abstract bool ContainsData(string format);
internal abstract object GetData(string format);
internal abstract bool ContainsText();
internal abstract string GetText();
internal abstract void SetDataObject(object data, bool copy);
}
}
......@@ -27,8 +27,7 @@ public InteractiveWindowTests()
_states = new List<InteractiveWindow.State>();
_testHost = new InteractiveWindowTestHost(_states.Add);
_testClipboard = new TestClipboard();
((InteractiveWindow)Window).InteractiveWindowClipboard = _testClipboard;
((InteractiveWindow)Window).InteractiveWindowClipboard = _testClipboard;
}
void IDisposable.Dispose()
......@@ -1366,23 +1365,4 @@ internal static void Copy(this IInteractiveWindowOperations operations)
((IInteractiveWindowOperations2)operations).Copy();
}
}
internal sealed class TestClipboard : InteractiveWindowClipboard
{
DataObject _data = null;
internal void Clear() => _data = null;
internal IDataObject GetDataObject() => _data;
internal override bool ContainsData(string format) => _data?.GetData(format) != null;
internal override object GetData(string format) => _data?.GetData(format);
internal override bool ContainsText() => _data != null ? _data.ContainsText() : false;
internal override string GetText() => _data?.GetText();
internal override void SetDataObject(object data, bool copy) => _data = (DataObject)data;
}
}
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Windows;
namespace Microsoft.VisualStudio.InteractiveWindow.UnitTests
{
internal sealed class TestClipboard : InteractiveWindowClipboard
{
DataObject _data = null;
internal void Clear() => _data = null;
internal IDataObject GetDataObject() => _data;
internal override bool ContainsData(string format) => _data?.GetData(format) != null;
internal override object GetData(string format) => _data?.GetData(format);
internal override bool ContainsText() => _data != null ? _data.ContainsText() : false;
internal override string GetText() => _data?.GetText();
internal override void SetDataObject(object data, bool copy) => _data = (DataObject)data;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册