Beispiel #1
0
        public override void Run()
        {
            var wb = Workbench.Instance;
            if (wb == null) return;
            var ed = wb.ActiveEditor;
            if (ed == null) return;
            var edSvc = ed.EditorService;

            TextFileDiffList sLF = null;
            TextFileDiffList dLF = null;
            string sourceFile = null;
            string targetFile = null;
            try
            {
                edSvc.SyncSessionCopy();
                XmlCompareUtil.PrepareForComparison(edSvc.ResourceService,
                                                    edSvc.ResourceID,
                                                    edSvc.EditedResourceID,
                                                    out sourceFile,
                                                    out targetFile);
                sLF = new TextFileDiffList(sourceFile);
                dLF = new TextFileDiffList(targetFile);
            }
            catch (Exception ex)
            {
                ErrorDialog.Show(ex);
                return;
            }
            finally
            {
                try { File.Delete(sourceFile); }
                catch { }
                try { File.Delete(targetFile); }
                catch { }
            }

            try
            {
                double time = 0;
                DiffEngine de = new DiffEngine();
                time = de.ProcessDiff(sLF, dLF, DiffEngineLevel.SlowPerfect);

                var rep = de.DiffReport();
                TextDiffView dlg = new TextDiffView(sLF, dLF, rep, time);
                dlg.Text += " - " + edSvc.ResourceID; //NOXLATE
                dlg.ShowDialog();
                dlg.Dispose();
            }
            catch (Exception ex)
            {
                string tmp = string.Format("{0}{1}{1}***STACK***{1}{2}",
                    ex.Message,
                    Environment.NewLine,
                    ex.StackTrace);
                MessageBox.Show(tmp, Strings.CompareError);
                return;
            }
        }
        private void btnDiff_Click(object sender, EventArgs e)
        {
            TextFileDiffList sLF = null;
            TextFileDiffList dLF = null;
            string sourceFile = null;
            string targetFile = null;
            try
            {
                _edSvc.SyncSessionCopy();
                XmlCompareUtil.PrepareForComparison(_edSvc.ResourceService,
                                                    _edSvc.ResourceID,
                                                    _edSvc.EditedResourceID,
                                                    out sourceFile,
                                                    out targetFile);
                sLF = new TextFileDiffList(sourceFile);
                dLF = new TextFileDiffList(targetFile);
            }
            catch (Exception ex)
            {
                ErrorDialog.Show(ex);
                return;
            }
            finally
            {
                try { File.Delete(sourceFile); }
                catch { }
                try { File.Delete(targetFile); }
                catch { }
            }

            try
            {
                double time = 0;
                DiffEngine de = new DiffEngine();
                time = de.ProcessDiff(sLF, dLF, DiffEngineLevel.SlowPerfect);

                var rep = de.DiffReport();
                TextDiffView dlg = new TextDiffView(sLF, dLF, rep, time);
                dlg.Text += " - " + _edSvc.ResourceID; //NOXLATE
                dlg.ShowDialog();
                dlg.Dispose();
            }
            catch (Exception ex)
            {
                string tmp = string.Format("{0}{1}{1}***STACK***{1}{2}",
                    ex.Message,
                    Environment.NewLine,
                    ex.StackTrace);
                MessageBox.Show(tmp, Strings.CompareError);
                return;
            }
        }