Example usage for com.intellij.openapi.diff DiffRequestFactory createMergeRequest

List of usage examples for com.intellij.openapi.diff DiffRequestFactory createMergeRequest

Introduction

In this page you can find the example usage for com.intellij.openapi.diff DiffRequestFactory createMergeRequest.

Prototype

public abstract MergeRequest createMergeRequest(@NotNull String leftText, @NotNull String rightText,
        @NotNull String originalContent, @NotNull VirtualFile file, @Nullable Project project,
        @Nullable ActionButtonPresentation okButtonPresentation,
        @Nullable ActionButtonPresentation cancelButtonPresentation);

Source Link

Document

Creates a request for a merge operation.

Usage

From source file:com.dci.intellij.dbn.editor.code.SourceCodeEditorManager.java

License:Apache License

private void showSourceDiffDialog(final String databaseContent, final SourceCodeFile virtualFile,
        final Editor editor) {
    new SimpleLaterInvocator() {
        public void run() {
            DiffRequestFactory diffRequestFactory = new DiffRequestFactoryImpl();
            MergeRequest mergeRequest = diffRequestFactory.createMergeRequest(databaseContent,
                    virtualFile.getContent(), virtualFile.getLastSavedContent(), virtualFile,
                    virtualFile.getProject(), ActionButtonPresentation.APPLY,
                    ActionButtonPresentation.CANCEL_WITH_PROMPT);
            mergeRequest.setVersionTitles(new String[] { "Database version", "Merge result", "Your version" });
            final DBSchemaObject object = virtualFile.getObject();
            mergeRequest.setWindowTitle("Version conflict resolution for " + object.getQualifiedNameWithType());

            DiffManager.getInstance().getDiffTool().show(mergeRequest);

            int result = mergeRequest.getResult();
            if (result == 0) {
                doUpdateSourceToDatabase(object, virtualFile, editor);
                //sourceCodeEditor.afterSave();
            } else if (result == 1) {
                new WriteActionRunner() {
                    public void run() {
                        editor.getDocument().setText(virtualFile.getContent());
                        object.getStatus().set(DBObjectStatus.SAVING, false);
                    }//from ww  w  .ja  v  a 2 s.  co  m
                }.start();
            }
        }
    }.start();
}