示例#1
0
        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;
        }
示例#2
0
        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;
        }