1- using UnityEngine . UIElements ;
1+ using System ;
2+ using UnityEditor . VersionControl ;
3+ using UnityEngine . UIElements ;
24
35namespace GBG . EditorMessages . Editor
46{
@@ -8,7 +10,8 @@ public class MessageDetailsElement : VisualElement
810 private readonly MessageDetailsTabElement _messageTab ;
911 private readonly MessageDetailsTabElement _contextTab ;
1012 private readonly MessageDetailsTabElement _customDataTab ;
11- private readonly Label _detailsLabel ;
13+ private readonly Label _contentLabel ;
14+ private Message _message ;
1215
1316
1417 public MessageDetailsElement ( )
@@ -69,7 +72,7 @@ public MessageDetailsElement()
6972 detailsContainer . Add ( detailsScrollView ) ;
7073
7174 // Message Details Label
72- _detailsLabel = new Label
75+ _contentLabel = new Label
7376 {
7477 enableRichText = true ,
7578 selection = { isSelectable = true , } ,
@@ -79,33 +82,62 @@ public MessageDetailsElement()
7982 whiteSpace = WhiteSpace . Normal ,
8083 }
8184 } ;
82- detailsScrollView . Add ( _detailsLabel ) ;
85+ detailsScrollView . Add ( _contentLabel ) ;
8386
8487 #endregion
8588 }
8689
8790 public void SetMessage ( Message message )
8891 {
89- _detailsLabel . text = message ? . Content ;
92+ _message = message ;
93+
94+ MessageType messageType = message ? . type ?? MessageType . Info ;
95+ switch ( messageType )
96+ {
97+ case MessageType . Info :
98+ _messageTab . Icon . image = EditorMessageUtility . GetInfoIcon ( ) ;
99+ break ;
100+ case MessageType . Warning :
101+ _messageTab . Icon . image = EditorMessageUtility . GetWarningIcon ( ) ;
102+ break ;
103+ case MessageType . Error :
104+ _messageTab . Icon . image = EditorMessageUtility . GetErrorIcon ( ) ;
105+ break ;
106+ default :
107+ throw new ArgumentOutOfRangeException ( nameof ( messageType ) , messageType , null ) ;
108+ }
109+
110+ _contextTab . style . display = string . IsNullOrEmpty ( message ? . context )
111+ ? DisplayStyle . None : DisplayStyle . Flex ;
112+ _customDataTab . style . display = string . IsNullOrEmpty ( message ? . customData )
113+ ? DisplayStyle . None : DisplayStyle . Flex ;
114+
115+ OnClickMessageTab ( ) ;
90116 }
91117
92118
93119 private void OnClickMessageTab ( )
94120 {
121+ _contentLabel . text = _message ? . content ;
122+
95123 _messageTab . style . backgroundColor = EditorMessageUtility . ActiveColor ;
96124 _contextTab . style . backgroundColor = EditorMessageUtility . InactiveColor ;
97125 _customDataTab . style . backgroundColor = EditorMessageUtility . InactiveColor ;
98126 }
99127
100128 private void OnClickContextTab ( )
101129 {
130+ _contentLabel . text = _message ? . context ;
131+
102132 _messageTab . style . backgroundColor = EditorMessageUtility . InactiveColor ;
103133 _contextTab . style . backgroundColor = EditorMessageUtility . ActiveColor ;
104134 _customDataTab . style . backgroundColor = EditorMessageUtility . InactiveColor ;
105135 }
106136
107137 private void OnClickCustomDataTab ( )
108138 {
139+ _contentLabel . text = _message ? . customData ;
140+
109141 _messageTab . style . backgroundColor = EditorMessageUtility . InactiveColor ;
110142 _contextTab . style . backgroundColor = EditorMessageUtility . InactiveColor ;
111143 _customDataTab . style . backgroundColor = EditorMessageUtility . ActiveColor ;
0 commit comments