Пример #1
0
        private void btnCompare_Click(object sender, EventArgs e)
        {
            bool bValid = true;

            if (string.IsNullOrEmpty(txtSource.Text))
            {
                errorProvider.SetError(txtSource, Strings.Required);
                bValid = false;
            }
            else
            {
                errorProvider.SetError(txtSource, null);
            }
            if (string.IsNullOrEmpty(txtTarget.Text))
            {
                errorProvider.SetError(txtTarget, Strings.Required);
                bValid = false;
            }
            else
            {
                errorProvider.SetError(txtTarget, null);
            }

            if (bValid)
            {
                var set = XmlCompareUtil.PrepareForComparison(_conn.ResourceService,
                                                              this.Source,
                                                              this.Target);

                double     time = 0;
                DiffEngine de   = new DiffEngine();
                time = de.ProcessDiff(set.Source, set.Target, DiffEngineLevel.SlowPerfect);

                var rep = de.DiffReport();
                using (TextDiffView dlg = new TextDiffView(set.Source, set.Target, rep, time))
                {
                    dlg.SetLabels(this.Source, this.Target);
                    dlg.ShowDialog();
                    this.Close();
                }
            }
        }
Пример #2
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;
            }
        }
Пример #3
0
        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;
            }
        }