@@ -15,7 +15,6 @@ You should have received a copy of the GNU General Public License
1515along with Foobar. If not, see
1616<http: //www.gnu.org/licenses />.
1717-->
18-
1918@inherits BaseLocalizedComponent
2019
2120@inject IStringLocalizer <CuesheetData > _localizer
@@ -37,7 +36,9 @@ along with Foobar. If not, see
3736 <FileInput Id =" @fileInputAudiofileId" Label =" @_localizer[" Audiofile " ]" FileName =" @Cuesheet.Audiofile?.Name" OnFileSelected =" OnAudiofileSelected" Error =" @fileInputAudiofileErrorText" Filter =" @String.Join(" , " , Audiofile.AudioCodecs.Select(x => x.MimeType))" DisplayDownloadFile
3837 OnDownloadFileClicked =" DownloadAudio" OnFileRenameClicked =" AudioFileRename" FileRenameDisabled =" Cuesheet.Audiofile == null" FileDownloadDisabled =" Cuesheet.Audiofile != null ? Cuesheet.Audiofile.IsContentStreamLoaded == false : true" />
3938 <FileInput Label =" @_localizer[" CD Textfile " ]" FileName =" @Cuesheet.CDTextfile?.Name" OnFileSelected =" OnCDTextfileSelected" Filter =" @FileExtensions.CDTextfile" Error =" @fileInputCDTextfileErrorText" OnFileRenameClicked =" CDTextFileRename" FileRenameDisabled =" Cuesheet.CDTextfile == null" />
40- <MudTextField @bind-Value =" Cuesheet.Cataloguenumber" For =" (() => Cuesheet.Cataloguenumber)" Validation =" _validationService.ValidateProperty" Label =" @_localizer[" Cataloguenumber " ]" Placeholder =" @_localizer[" Enter the cuesheet catalogue number here " ]" Variant =" Variant.Outlined" />
39+ <MudTextField @ref =" catalogueNumberTextField" @bind-Value =" catalogueNumber" For =" (() => Cuesheet.Cataloguenumber)" Validation =" _validationService.ValidateProperty"
40+ Label =" @_localizer[" Cataloguenumber " ]" Placeholder =" @_localizer[" Enter the cuesheet catalogue number here " ]" Variant =" Variant.Outlined"
41+ Mask =" @(new PatternMask(" 00 00000 00000 0 " ))" OnBlur =" CataloguenumberOnBlur" />
4142 break ;
4243 }
4344
@@ -62,7 +63,9 @@ along with Foobar. If not, see
6263 string ? fileInputAudiofileId ;
6364 string ? fileInputAudiofileErrorText ;
6465 string ? fileInputCDTextfileErrorText ;
66+ string ? catalogueNumber ;
6567 MudForm ? form ;
68+ MudTextField <string >? catalogueNumberTextField ;
6669
6770 protected override void OnInitialized ()
6871 {
@@ -73,13 +76,17 @@ along with Foobar. If not, see
7376 }
7477 _sessionStateContainer .ImportCuesheetChanged += SessionStateContainer_ImportCuesheetChanged ;
7578 _sessionStateContainer .CuesheetChanged += SessionStateContainer_CuesheetChanged ;
79+ TraceChangeManager .UndoDone += TraceChangeManager_UndoDone ;
80+ TraceChangeManager .RedoDone += TraceChangeManager_RedoDone ;
7681 }
7782
7883 protected override void Dispose (bool disposing )
7984 {
8085 base .Dispose (disposing );
8186 _sessionStateContainer .ImportCuesheetChanged -= SessionStateContainer_ImportCuesheetChanged ;
8287 _sessionStateContainer .CuesheetChanged -= SessionStateContainer_CuesheetChanged ;
88+ TraceChangeManager .UndoDone -= TraceChangeManager_UndoDone ;
89+ TraceChangeManager .RedoDone -= TraceChangeManager_RedoDone ;
8390 }
8491
8592 protected override void OnParametersSet ()
@@ -89,6 +96,7 @@ along with Foobar. If not, see
8996 {
9097 SetAudiofileValidationText ();
9198 }
99+ catalogueNumber = Cuesheet ? .Cataloguenumber ;
92100 }
93101
94102 async Task OnAudiofileSelected (IBrowserFile ? browserFile )
@@ -220,4 +228,24 @@ along with Foobar. If not, see
220228 {
221229 StateHasChanged ();
222230 }
231+
232+ void CataloguenumberOnBlur ()
233+ {
234+ if (Cuesheet != null )
235+ {
236+ Cuesheet .Cataloguenumber = catalogueNumber ? .Replace (" " , string .Empty );
237+ }
238+ }
239+
240+ void TraceChangeManager_RedoDone (object ? sender , EventArgs e )
241+ {
242+ catalogueNumber = Cuesheet ? .Cataloguenumber ;
243+ catalogueNumberTextField ? .ResetAsync ();
244+ }
245+
246+ void TraceChangeManager_UndoDone (object ? sender , EventArgs e )
247+ {
248+ catalogueNumber = Cuesheet ? .Cataloguenumber ;
249+ catalogueNumberTextField ? .ResetAsync ();
250+ }
223251}
0 commit comments