Java源码示例:name.fraser.neil.plaintext.DiffMatchPatch

示例1
private String generatePatchDescription(
        DocumentEvent documentEvent, List<DiffMatchPatch.Patch> patches) {

    logger.info("Creating JSON from patches.");
    String source = documentEvent.getSource().toString();

    if (documentEvent.getSource().toString().length() <= 20) {
        return null;
    }

    source = source.substring(20, source.length() - 1);
    return JsonMaker.create()
            .add("file", new PathResolver().getPathRelativeToProject(source))
            .add("patches", diff.patch_toText(patches))
            .add(
                    "full_document",
                    documentEvent.getNewLength() == documentEvent.getDocument().getTextLength())
            .toString();
}
 
示例2
private void createPatches(Exercise exercise, DocumentEvent documentEvent) {
    List<DiffMatchPatch.Patch> patches;
    patches = diff.patch_make(previous, modified);

    if (isRemoveEvent(documentEvent)) {
        addEventToManager(
                exercise, "text_remove", generatePatchDescription(documentEvent, patches));
    } else if (isPasteEvent(documentEvent)) {
        addEventToManager(
                exercise, "text_paste", generatePatchDescription(documentEvent, patches));
    } else {
        addEventToManager(
                exercise, "text_insert", generatePatchDescription(documentEvent, patches));
    }
}
 
示例3
@SuppressWarnings("serial")
public DiffTextPanel(final String id, final IModel<String> newText, final IModel<String> oldText, final Behavior... behaviors)
{
  super(id);
  this.newText = newText;
  this.oldText = oldText;
  label = new Label(WICKET_ID, new Model<String>() {
    @Override
    public String getObject()
    {
      if (prettyHtml == null) {
        final DiffMatchPatch diffMatchPatch = new DiffMatchPatch();
        String newValue = newText.getObject();
        if (newValue == null || "null".equals(newValue) == true) {
          newValue = getString("label.null");
        }
        String oldValue = oldText.getObject();
        if (oldValue == null || "null".equals(oldValue) == true) {
          oldValue = getString("label.null");
        }
        final LinkedList<Diff> diffs = diffMatchPatch.diff_main(oldValue, newValue);
        diffMatchPatch.diff_cleanupSemantic(diffs);
        prettyHtml = getPrettyHtml(diffs);
      }
      return prettyHtml;
    }
  });
  label.add(behaviors).setEscapeModelStrings(false);
  add(label);
}