Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
MessageFrame.cs
2{
6 public abstract class MessageFrame : Frame
7 {
11 public MessageFrame()
12 : base()
13 {
14 this.Messages = [];
15 this.Content = this.Messages;
16 }
17
21 public abstract MessageType MessageType { get; }
22
26 public VerticalStackLayout Messages { get; }
27
34 public static MessageFrame Create(ChatMessage Message)
35 {
36 return Message.MessageType switch
37 {
38 MessageType.Sent => new SendFrame(),
39 MessageType.Received => new ReceiveFrame(),
40 _ => throw new InvalidOperationException("Unhandled message type: " + Message.MessageType.ToString()),
41 };
42 }
43
44 private static IView GetView(ChatMessage Message)
45 {
46 if (Message.ParsedXaml is not IView View)
47 {
48 View = new Label()
49 {
50 Text = Message.PlainText
51 };
52 }
53
54 return View;
55 }
56
61 public IView AddLast(ChatMessage Message)
62 {
63 IView View = GetView(Message);
64 this.Messages.Add(View);
65 return View;
66 }
67
72 public IView AddFirst(ChatMessage Message)
73 {
74 IView View = GetView(Message);
75 this.Messages.Insert(0, View);
76 return View;
77 }
78
79 }
80}
IView AddFirst(ChatMessage Message)
Adds a message to the frame as the first message.
Definition: MessageFrame.cs:72
static MessageFrame Create(ChatMessage Message)
Creates a message frame for a given message.
Definition: MessageFrame.cs:34
VerticalStackLayout Messages
Messages in frame.
Definition: MessageFrame.cs:26
IView AddLast(ChatMessage Message)
Adds a message to the frame.
Definition: MessageFrame.cs:61
MessageFrame()
Abstract base class for message frames.
Definition: MessageFrame.cs:11