Highlighting Changes in Java
- by Buzz Lightyear
Basically, i have done my program so that it will display differences in strings and display the whole line. I want to highlight (in a colour) the differences in the line.
Example:
Original at line 5
<rect x="60.01" width="855.38" id="rect_1" y="-244.35" height="641.13" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: none; "/>
Edited at line 5
<rect x="298.43" width="340.00" y="131.12" height="380.00" id="rect_1" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(255, 102, 0); "/>
In this example, the width is different from the 'original' from the 'edited' version. I would like to be able to highlight that difference and any other difference.
My code so far:
Patch patch = DiffUtils.diff(centralFile, remoteFile);
StringBuffer resultsBuff = new StringBuffer(remoteFileData.length);
for (Delta delta : patch.getDeltas())
{
resultsBuff.append("Original at line " + delta.getOriginal().getPosition() + "\n");
for (Object line : delta.getOriginal().getLines())
{
resultsBuff.append(" " + line + "\n");
}
resultsBuff.append("Edited at line " + delta.getRevised().getPosition() + "\n");
for (Object line : delta.getRevised().getLines())
{
resultsBuff.append(" " + line + "\n");
}
resultsBuff.append("\n");
}
return resultsBuff.toString();
}
That will display two whole lines like the example before (the original and the edited version) I want to be able to highlight the changes that have actually been made, is there any way to do this in Java?