Example usage for com.intellij.openapi.diff DiffRequest getProject

List of usage examples for com.intellij.openapi.diff DiffRequest getProject

Introduction

In this page you can find the example usage for com.intellij.openapi.diff DiffRequest getProject.

Prototype

@Nullable
    public Project getProject() 

Source Link

Usage

From source file:com.ritesh.idea.plugin.ui.diff.CommentsDiffTool.java

License:Apache License

@Override
public void show(DiffRequest request) {
    final FrameWrapper frameWrapper = new FrameWrapper(request.getProject(), request.getGroupKey());
    final DiffPanelImpl diffPanel = createDiffPanelImpl(request, frameWrapper.getFrame(), frameWrapper);
    final Editor editor = diffPanel.getEditor2();
    updateHighLights(editor);/*from  w  ww  .  ja  v a2  s . co m*/

    editor.addEditorMouseListener(new EditorMouseAdapter() {
        @Override
        public void mouseClicked(EditorMouseEvent e) {
            if (e.getArea() != null && e.getArea().equals(EditorMouseEventArea.LINE_MARKERS_AREA)) {
                final Point locationOnScreen = e.getMouseEvent().getLocationOnScreen();
                final int lineNumber = EditorUtil.yPositionToLogicalLine(editor, e.getMouseEvent()) + 1;
                showCommentsView(locationOnScreen, lineNumber, editor);
            }
        }
    });

    DiffUtil.initDiffFrame(request.getProject(), frameWrapper, diffPanel, diffPanel.getComponent());
    frameWrapper.setTitle(request.getWindowTitle());
    frameWrapper.show();
}

From source file:com.urswolfer.intellij.plugin.gerrit.ui.diff.CustomizableFrameDiffTool.java

License:Apache License

public void show(DiffRequest request) {
    Collection hints = request.getHints();
    boolean shouldOpenDialog = shouldOpenDialog(hints);
    if (shouldOpenDialog) {
        final DialogBuilder builder = new DialogBuilder(request.getProject());
        DiffPanelImpl diffPanel = createDiffPanelIfShouldShow(request, builder.getWindow(), builder, true);
        if (diffPanel == null) {
            Disposer.dispose(builder);/*from ww  w  .  j a  va 2s  .  c o  m*/
            return;
        }
        if (hints.contains(DiffTool.HINT_DIFF_IS_APPROXIMATE)) {
            diffPanel.setPatchAppliedApproximately(); // todo read only and not variants
        }
        final Runnable onOkRunnable = request.getOnOkRunnable();
        if (onOkRunnable != null) {
            builder.setOkOperation(new Runnable() {
                @Override
                public void run() {
                    builder.getDialogWrapper().close(0);
                    onOkRunnable.run();
                }
            });
        } else {
            builder.removeAllActions();
        }
        builder.setCenterPanel(diffPanel.getComponent());
        builder.setPreferredFocusComponent(diffPanel.getPreferredFocusedComponent());
        builder.setTitle(request.getWindowTitle());
        builder.setDimensionServiceKey(request.getGroupKey());

        new AnAction() {
            public void actionPerformed(final AnActionEvent e) {
                builder.getDialogWrapper().close(0);
            }
        }.registerCustomShortcutSet(
                new CustomShortcutSet(
                        KeymapManager.getInstance().getActiveKeymap().getShortcuts("CloseContent")),
                diffPanel.getComponent());
        showDiffDialog(builder, hints);
    } else {
        final FrameWrapper frameWrapper = new FrameWrapper(request.getProject(), request.getGroupKey());
        DiffPanelImpl diffPanel = createDiffPanelIfShouldShow(request, frameWrapper.getFrame(), frameWrapper,
                true);
        if (diffPanel == null) {
            Disposer.dispose(frameWrapper);
            return;
        }
        if (hints.contains(DiffTool.HINT_DIFF_IS_APPROXIMATE)) {
            diffPanel.setPatchAppliedApproximately();
        }
        frameWrapper.setTitle(request.getWindowTitle());
        DiffUtil.initDiffFrame(diffPanel.getProject(), frameWrapper, diffPanel, diffPanel.getComponent());

        new AnAction() {
            public void actionPerformed(final AnActionEvent e) {
                frameWrapper.getFrame().dispose();
            }
        }.registerCustomShortcutSet(
                new CustomShortcutSet(
                        KeymapManager.getInstance().getActiveKeymap().getShortcuts("CloseContent")),
                diffPanel.getComponent());

        frameWrapper.show();
    }
}

From source file:com.urswolfer.intellij.plugin.gerrit.ui.diff.CustomizableFrameDiffTool.java

License:Apache License

private static boolean askForceOpenDiff(DiffRequest data) {
    byte[] bytes1;
    byte[] bytes2;
    try {/*  www  .  j av a  2  s . c o m*/
        bytes1 = data.getContents()[0].getBytes();
        bytes2 = data.getContents()[1].getBytes();
    } catch (IOException e) {
        MessagesEx.error(data.getProject(), e.getMessage()).showNow();
        return false;
    }
    String message = Arrays.equals(bytes1, bytes2)
            ? DiffBundle.message("diff.contents.are.identical.message.text")
            : DiffBundle.message("diff.contents.have.differences.only.in.line.separators.message.text");
    Messages.showInfoMessage(data.getProject(), message, DiffBundle.message("no.differences.dialog.title"));
    return false;
}

From source file:com.urswolfer.intellij.plugin.gerrit.ui.diff.CustomizableFrameDiffTool.java

License:Apache License

protected DiffPanel createDiffPanel(DiffRequest data, Window window, @NotNull Disposable parentDisposable,
        FrameDiffTool tool) {/* ww w  .  j a v  a  2  s .  c  o m*/
    DiffPanel diffPanel = null;
    try {
        diffPanel = new DiffPanelImpl(window, data.getProject(), true, true,
                DiffManagerImpl.FULL_DIFF_DIVIDER_POLYGONS_OFFSET, tool) {
            @Override
            public void setDiffRequest(DiffRequest data) {
                super.setDiffRequest(data);
                diffRequestChange(data, this);
            }
        };
        int contentCount = data.getContents().length;
        LOG.assertTrue(contentCount == 2, String.valueOf(contentCount));
        LOG.assertTrue(data.getContentTitles().length == contentCount);
        diffPanel.setDiffRequest(data);
        return diffPanel;
    } catch (RuntimeException e) {
        if (diffPanel != null) {
            Disposer.dispose(diffPanel);
        }
        throw e;
    }
}