protected override void MarkupCommandExecute(IDialogService dlgsvc) { if (DataContext == null || dlgsvc == null) { return; } var tab = DataContext.Work.TabSelectedItem; if (tab.TLKTexts.IsCompare) { DataContext.MsgPopup.Show("비교 중인 파일은 해당 기능을 사용할 수 없습니다."); return; } var path = dlgsvc.OpenFileService("TRA files(*.tra) | *.tra"); if (string.IsNullOrEmpty(path)) { return; } var TRA = new TLK.IO.TRAFILE(); if (!TRA.ImportTraFile(path, DataContext.Work.TabSelectedItem.TLKTexts)) { DataContext.MsgPopup.Show("TRA 파일 적용 실패."); } else { DataContext.Work.ClearFilterText(); DataContext.Work.Tabs.ReloadWorkTab( DataContext.Work.TabSelectedItem, DataContext.Settings.TextEncoding); DataContext.MsgPopup.Show("TRA 파일 적용 완료."); } TRA = null; }
protected override void MarkupCommandExecute(IDialogService dlgsvc) { if (DataContext == null || dlgsvc == null) { return; } var savepath = dlgsvc.SaveFileService(); if (string.IsNullOrEmpty(savepath)) { return; } var TRA = new TLK.IO.TRAFILE(); if (DataContext.Work.IsSelected) { var context = DataContext.Work; if (context.TabSelectedItem != null && context.Tabs.Count > 0) { if (!TRA.ExportTraFile(savepath, context.TabSelectedItem.TLKTexts)) { DataContext.MsgPopup.Show("TRA 파일 작성 실패."); } else { DataContext.MsgPopup.Show("TRA 파일 생성 완료."); } } } else if (DataContext.Merge.IsSelected) { var context = DataContext.Merge; if (context.TabSelectedItem != null && context.Tabs.Count > 0) { var first = context.TLKs.FirstOrDefault(i => i.FilePath.Equals(context.TabSelectedItem.FirstFileName)); var second = context.TLKs.FirstOrDefault(i => i.FilePath.Equals(context.TabSelectedItem.SecondFileName)); var masklength = context.TabSelectedItem.TLKInfos[0].SummaryFlags.Length; var temp = (from item in context.TabSelectedItem.TLKInfos where (item.SummaryFlags.Get(masklength - 1)) select item.Index).ToArray(); if (first != null && second != null && temp.Count() > 0) { var oldFileName = Path.GetFileName(savepath); var firstfilename = savepath.Replace(oldFileName, "Red_" + oldFileName); var secondfilename = savepath.Replace(oldFileName, "Blue_" + oldFileName); var firstResult = TRA.ExportTraFile(firstfilename, first, temp); var secondResult = TRA.ExportTraFile(secondfilename, second, temp); if (firstResult && secondResult) { DataContext.MsgPopup.Show("TRA 파일 생성 완료."); } else { DataContext.MsgPopup.Show("TRA 파일 작성 실패."); } } } } TRA = null; }