Skip to content

Commit 7f271af

Browse files
committed
TestSitePluginを作成
1 parent f82b042 commit 7f271af

21 files changed

+971
-61
lines changed

MultiCommentViewer.sln

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 15
4-
VisualStudioVersion = 15.0.27428.2002
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.28729.10
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiCommentViewer", "MultiCommentViewer\MultiCommentViewer.csproj", "{1CAA4971-6CB9-4FB5-AC5E-BFC6BED83C87}"
77
ProjectSection(ProjectDependencies) = postProject
@@ -91,6 +91,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SitePluginTests", "SitePlug
9191
EndProject
9292
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TwicasIF", "TwicasIF\TwicasIF.csproj", "{4DA33B17-792D-44D7-93F6-D0561788676D}"
9393
EndProject
94+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestSitePlugin", "TestSitePlugin\TestSitePlugin.csproj", "{74CCA5B2-D0BA-4839-9E2B-EFCF309835E5}"
95+
EndProject
96+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestSiteIF", "TestSiteIF\TestSiteIF.csproj", "{FF176BCD-7F7E-4C42-9E8D-17912097B3C7}"
97+
EndProject
9498
Global
9599
GlobalSection(SolutionConfigurationPlatforms) = preSolution
96100
Debug|Any CPU = Debug|Any CPU
@@ -257,6 +261,14 @@ Global
257261
{4DA33B17-792D-44D7-93F6-D0561788676D}.Debug|Any CPU.Build.0 = Debug|Any CPU
258262
{4DA33B17-792D-44D7-93F6-D0561788676D}.Release|Any CPU.ActiveCfg = Release|Any CPU
259263
{4DA33B17-792D-44D7-93F6-D0561788676D}.Release|Any CPU.Build.0 = Release|Any CPU
264+
{74CCA5B2-D0BA-4839-9E2B-EFCF309835E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
265+
{74CCA5B2-D0BA-4839-9E2B-EFCF309835E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
266+
{74CCA5B2-D0BA-4839-9E2B-EFCF309835E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
267+
{74CCA5B2-D0BA-4839-9E2B-EFCF309835E5}.Release|Any CPU.Build.0 = Release|Any CPU
268+
{FF176BCD-7F7E-4C42-9E8D-17912097B3C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
269+
{FF176BCD-7F7E-4C42-9E8D-17912097B3C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
270+
{FF176BCD-7F7E-4C42-9E8D-17912097B3C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
271+
{FF176BCD-7F7E-4C42-9E8D-17912097B3C7}.Release|Any CPU.Build.0 = Release|Any CPU
260272
EndGlobalSection
261273
GlobalSection(SolutionProperties) = preSolution
262274
HideSolutionNode = FALSE

MultiCommentViewer/MultiCommentViewer.csproj

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
<Generator>MSBuild:Compile</Generator>
6767
<SubType>Designer</SubType>
6868
</ApplicationDefinition>
69+
<Compile Include="ViewModels\CommentViewModel\TestCommentViewModel.cs" />
6970
<Compile Include="ViewModels\CommentViewModel\TwicasCommentViewModel.cs" />
7071
<Compile Include="ViewModels\CommentViewModel\OpenrecCommentViewModel.cs" />
7172
<Compile Include="ViewModels\CommentViewModel\LineLiveCommentViewModel.cs" />
@@ -245,6 +246,14 @@
245246
<Project>{AAF4779F-F8BF-4794-A6E8-4ED88A8B6B68}</Project>
246247
<Name>SitePluginCommon</Name>
247248
</ProjectReference>
249+
<ProjectReference Include="..\TestSiteIF\TestSiteIF.csproj">
250+
<Project>{ff176bcd-7f7e-4c42-9e8d-17912097b3c7}</Project>
251+
<Name>TestSiteIF</Name>
252+
</ProjectReference>
253+
<ProjectReference Include="..\TestSitePlugin\TestSitePlugin.csproj">
254+
<Project>{74cca5b2-d0ba-4839-9e2b-efcf309835e5}</Project>
255+
<Name>TestSitePlugin</Name>
256+
</ProjectReference>
248257
<ProjectReference Include="..\TwicasIF\TwicasIF.csproj">
249258
<Project>{4da33b17-792d-44d7-93f6-d0561788676d}</Project>
250259
<Name>TwicasIF</Name>

MultiCommentViewer/Test/SitePluginLoaderTest.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public class SitePluginLoaderTest : ISitePluginLoader
2525
new LineLiveSitePlugin.LineLiveSiteContext(options,new LineLiveSitePlugin.LineLiveServer(), logger),
2626
new WhowatchSitePlugin.WhowatchSiteContext(options, logger),
2727
new MirrativSitePlugin.MirrativSiteContext(options,new MirrativSitePlugin.MirrativServer(), logger),
28+
#if DEBUG
29+
new TestSitePlugin.TestSiteContext(options),
30+
#endif
2831
};
2932
foreach(var site in list)
3033
{
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
using Plugin;
2+
using SitePlugin;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Threading.Tasks;
6+
using System.Windows;
7+
using System.Windows.Media;
8+
9+
namespace MultiCommentViewer
10+
{
11+
public class TestCommentViewModel : IMcvCommentViewModel
12+
{
13+
private readonly TestSitePlugin.ITestMessage _message;
14+
private readonly IMessageMetadata _metadata;
15+
private readonly IMessageMethods _methods;
16+
private void SetNickname(IUser user)
17+
{
18+
if (!string.IsNullOrEmpty(user.Nickname))
19+
{
20+
_nickItems = new List<IMessagePart> { Common.MessagePartFactory.CreateMessageText(user.Nickname) };
21+
}
22+
else
23+
{
24+
_nickItems = null;
25+
}
26+
}
27+
private TestCommentViewModel(IMessageMetadata metadata, IMessageMethods methods, IConnectionStatus connectionStatus)
28+
{
29+
_metadata = metadata;
30+
_methods = methods;
31+
32+
ConnectionName = connectionStatus;
33+
ConnectionName.PropertyChanged += (s, e) =>
34+
{
35+
switch (e.PropertyName)
36+
{
37+
case nameof(ConnectionName.Name):
38+
RaisePropertyChanged(nameof(ConnectionName));
39+
break;
40+
}
41+
};
42+
_metadata.PropertyChanged += (s, e) =>
43+
{
44+
switch (e.PropertyName)
45+
{
46+
case nameof(_metadata.BackColor):
47+
RaisePropertyChanged(nameof(Background));
48+
break;
49+
case nameof(_metadata.ForeColor):
50+
RaisePropertyChanged(nameof(Foreground));
51+
break;
52+
case nameof(_metadata.FontFamily):
53+
RaisePropertyChanged(nameof(FontFamily));
54+
break;
55+
case nameof(_metadata.FontStyle):
56+
RaisePropertyChanged(nameof(FontStyle));
57+
break;
58+
case nameof(_metadata.FontWeight):
59+
RaisePropertyChanged(nameof(FontWeight));
60+
break;
61+
case nameof(_metadata.FontSize):
62+
RaisePropertyChanged(nameof(FontSize));
63+
break;
64+
case nameof(_metadata.IsNameWrapping):
65+
RaisePropertyChanged(nameof(UserNameWrapping));
66+
break;
67+
case nameof(_metadata.IsVisible):
68+
RaisePropertyChanged(nameof(IsVisible));
69+
break;
70+
}
71+
};
72+
if (_metadata.User != null)
73+
{
74+
var user = _metadata.User;
75+
user.PropertyChanged += (s, e) =>
76+
{
77+
switch (e.PropertyName)
78+
{
79+
case nameof(user.Nickname):
80+
SetNickname(user);
81+
RaisePropertyChanged(nameof(NameItems));
82+
break;
83+
}
84+
};
85+
SetNickname(user);
86+
}
87+
}
88+
public TestCommentViewModel(TestSitePlugin.ITestComment comment, IMessageMetadata metadata, IMessageMethods methods, IConnectionStatus connectionStatus)
89+
: this(metadata, methods, connectionStatus)
90+
{
91+
_message = comment;
92+
93+
_nameItems = comment.NameItems;
94+
MessageItems = comment.CommentItems;
95+
Thumbnail = comment.UserIcon;
96+
Id = comment.Id?.ToString();
97+
PostTime = comment.PostTime;
98+
}
99+
public TestCommentViewModel(TestSitePlugin.ITestConnected connected, IMessageMetadata metadata, IMessageMethods methods, IConnectionStatus connectionStatus)
100+
: this(metadata, methods, connectionStatus)
101+
{
102+
_message = connected;
103+
MessageItems = connected.CommentItems;
104+
}
105+
public TestCommentViewModel(TestSitePlugin.ITestDisconnected disconnected, IMessageMetadata metadata, IMessageMethods methods, IConnectionStatus connectionStatus)
106+
: this(metadata, methods, connectionStatus)
107+
{
108+
_message = disconnected;
109+
MessageItems = disconnected.CommentItems;
110+
}
111+
112+
public IConnectionStatus ConnectionName { get; }
113+
114+
private IEnumerable<IMessagePart> _nickItems { get; set; }
115+
private IEnumerable<IMessagePart> _nameItems { get; set; }
116+
public IEnumerable<IMessagePart> NameItems
117+
{
118+
get
119+
{
120+
if (_nickItems != null)
121+
{
122+
return _nickItems;
123+
}
124+
else
125+
{
126+
return _nameItems;
127+
}
128+
}
129+
}
130+
131+
public IEnumerable<IMessagePart> MessageItems { get; private set; }
132+
133+
public SolidColorBrush Background => new SolidColorBrush(_metadata.BackColor);
134+
135+
public ICommentProvider CommentProvider => _metadata.CommentProvider;
136+
137+
public FontFamily FontFamily => _metadata.FontFamily;
138+
139+
public int FontSize => _metadata.FontSize;
140+
141+
public FontStyle FontStyle => _metadata.FontStyle;
142+
143+
public FontWeight FontWeight => _metadata.FontWeight;
144+
145+
public SolidColorBrush Foreground => new SolidColorBrush(_metadata.ForeColor);
146+
147+
public string Id { get; private set; }
148+
149+
public string Info { get; private set; }
150+
151+
public bool IsVisible => _metadata.IsVisible;
152+
153+
public string PostTime { get; private set; }
154+
155+
public IMessageImage Thumbnail { get; private set; }
156+
157+
public string UserId => _metadata.User?.UserId;
158+
159+
public TextWrapping UserNameWrapping
160+
{
161+
get
162+
{
163+
if (_metadata.IsNameWrapping)
164+
{
165+
return TextWrapping.Wrap;
166+
}
167+
else
168+
{
169+
return TextWrapping.NoWrap;
170+
}
171+
}
172+
}
173+
174+
public Task AfterCommentAdded()
175+
{
176+
return Task.CompletedTask;
177+
}
178+
#region INotifyPropertyChanged
179+
[NonSerialized]
180+
private System.ComponentModel.PropertyChangedEventHandler _propertyChanged;
181+
/// <summary>
182+
///
183+
/// </summary>
184+
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged
185+
{
186+
add { _propertyChanged += value; }
187+
remove { _propertyChanged -= value; }
188+
}
189+
/// <summary>
190+
///
191+
/// </summary>
192+
/// <param name="propertyName"></param>
193+
protected void RaisePropertyChanged([System.Runtime.CompilerServices.CallerMemberName] string propertyName = "")
194+
{
195+
_propertyChanged?.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
196+
}
197+
#endregion
198+
}
199+
}

MultiCommentViewer/ViewModels/MainViewModel.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,7 @@ private void AddComment(IMessageContext messageContext, IConnectionStatus connec
563563
if(messageContext.Message is IInfoMessage infoMessage)
564564
{
565565
//TODO:
566+
Debug.WriteLine(infoMessage.CommentItems.ToText());
566567
}
567568
else if(messageContext.Message is WhowatchSitePlugin.IWhowatchMessage whowatchMessage)
568569
{
@@ -692,6 +693,13 @@ private void AddComment(IMessageContext messageContext, IConnectionStatus connec
692693
mcvCvm = new TwicasCommentViewModel(disconnected, messageContext.Metadata, messageContext.Methods, connectionName);
693694
}
694695
}
696+
else if(messageContext.Message is TestSitePlugin.ITestMessage testMessage)
697+
{
698+
if(testMessage is TestSitePlugin.ITestComment comment)
699+
{
700+
mcvCvm = new TestCommentViewModel(comment, messageContext.Metadata, messageContext.Methods, connectionName);
701+
}
702+
}
695703
if (mcvCvm != null)
696704
{
697705
_comments.Add(mcvCvm);

0 commit comments

Comments
 (0)