コード例 #1
0
 // Shows the difference between two array entries.
 private void DisplayArrayDiff(object ao, object bo, DiffOperation dop, int indent)
 {
     if (dop is RemoveOperation)
     {
         RemovedText(_af.ArrayItem(ao, indent), "");
     }
     else if (dop is ChangeOperation)
     {
         ChangedText(_af.ArrayItem(ao, indent), _bf.ArrayItem(bo, indent));
     }
     else if (dop is ChangeObjectOperation)
     {
         SameText(_af.ObjectStart(indent), _bf.ObjectStart(indent));
         DisplayDiff(ao as Hashtable, bo as Hashtable, (dop as ChangeObjectOperation).Diff, indent + 1);
         SameText(_af.ObjectEnd(indent), _bf.ObjectEnd(indent));
     }
     else if (dop is ChangePositionArrayOperation)
     {
         SameText(_af.ArrayStart(indent), _bf.ArrayStart(indent));
         DisplayDiff(ao as ArrayList, bo as ArrayList, (dop as ChangePositionArrayOperation).Diff, indent + 1);
         SameText(_af.ArrayEnd(indent), _bf.ArrayEnd(indent));
     }
     else if (dop is ChangeIdArrayOperation)
     {
         SameText(_af.ArrayStart(indent), _bf.ArrayStart(indent));
         DisplayDiff(ao as ArrayList, bo as ArrayList, (dop as ChangeIdArrayOperation).Diff, indent + 1);
         SameText(_af.ArrayEnd(indent), _bf.ArrayEnd(indent));
     }
     else
     {
         SameText(_af.ArrayItem(ao, indent), _bf.ArrayItem(bo, indent));
     }
 }
コード例 #2
0
 // Shows the difference between ao and bo in the text box.
 private void DisplayArrayDiff(RichTextBox rtb, IFormatter f, object ao, object bo, DiffOperation dop,
                               int indent, string path)
 {
     CheckLineNumber(rtb, path);
     if (dop is RemoveOperation)
     {
         RemovedText(rtb, f.ArrayItem(ao, indent));
     }
     else if (dop is ChangeOperation)
     {
         ChangedText(rtb, f.ArrayItem(ao, indent), f.ArrayItem(bo, indent));
     }
     else if (dop is ChangeObjectOperation)
     {
         SameText(rtb, f.ObjectStart(indent));
         DisplayDiff(rtb, f, ao as Hashtable, bo as Hashtable, (dop as ChangeObjectOperation).Diff, indent + 1, path);
         SameText(rtb, f.ObjectEnd(indent));
     }
     else if (dop is ChangePositionArrayOperation)
     {
         SameText(rtb, f.ArrayStart(indent));
         DisplayDiff(rtb, f, ao as ArrayList, bo as ArrayList, (dop as ChangePositionArrayOperation).Diff, indent + 1, path);
         SameText(rtb, f.ArrayEnd(indent));
     }
     else if (dop is ChangeIdArrayOperation)
     {
         SameText(rtb, f.ArrayStart(indent));
         DisplayDiff(rtb, f, ao as ArrayList, bo as ArrayList, (dop as ChangeIdArrayOperation).Diff, indent + 1, path);
         SameText(rtb, f.ArrayEnd(indent));
     }
     else
     {
         SameText(rtb, f.ArrayItem(ao, indent));
     }
 }