Example usage for com.intellij.openapi.actionSystem CommonShortcuts getDiff

List of usage examples for com.intellij.openapi.actionSystem CommonShortcuts getDiff

Introduction

In this page you can find the example usage for com.intellij.openapi.actionSystem CommonShortcuts getDiff.

Prototype

public static ShortcutSet getDiff() 

Source Link

Usage

From source file:com.intellij.dvcs.push.ui.PushLog.java

License:Apache License

public PushLog(Project project, final CheckedTreeNode root) {
    DefaultTreeModel treeModel = new DefaultTreeModel(root);
    treeModel.nodeStructureChanged(root);
    myTreeCellRenderer = new MyTreeCellRenderer();
    myTree = new CheckboxTree(myTreeCellRenderer, root) {

        @Override/*  w  w w  .j a v a 2  s .  c  o  m*/
        public boolean isPathEditable(TreePath path) {
            return isEditable() && path.getLastPathComponent() instanceof DefaultMutableTreeNode;
        }

        @Override
        protected void onNodeStateChanged(CheckedTreeNode node) {
            if (node instanceof EditableTreeNode) {
                ((EditableTreeNode) node).fireOnSelectionChange(node.isChecked());
            }
        }

        @Override
        public String getToolTipText(MouseEvent event) {
            final TreePath path = myTree.getPathForLocation(event.getX(), event.getY());
            if (path == null) {
                return "";
            }
            Object node = path.getLastPathComponent();
            if (node == null || (!(node instanceof DefaultMutableTreeNode))) {
                return "";
            }
            if (node instanceof TooltipNode) {
                return ((TooltipNode) node).getTooltip();
            }
            return "";
        }

        @Override
        public boolean stopEditing() {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) myTree.getLastSelectedPathComponent();
            if (node instanceof EditableTreeNode) {
                JComponent editedComponent = (JComponent) node.getUserObject();
                InputVerifier verifier = editedComponent.getInputVerifier();
                if (verifier != null && !verifier.verify(editedComponent))
                    return false;
            }
            boolean result = super.stopEditing();
            if (myShouldRepaint) {
                refreshNode(root);
            }
            return result;
        }

        @Override
        public void cancelEditing() {
            super.cancelEditing();
            if (myShouldRepaint) {
                refreshNode(root);
            }
        }
    };
    myTree.setUI(new MyTreeUi());
    myTree.setBorder(new EmptyBorder(2, 0, 0, 0)); //additional vertical indent
    myTree.setEditable(true);
    myTree.setHorizontalAutoScrollingEnabled(false);
    myTree.setShowsRootHandles(root.getChildCount() > 1);
    MyTreeCellEditor treeCellEditor = new MyTreeCellEditor();
    myTree.setCellEditor(treeCellEditor);
    treeCellEditor.addCellEditorListener(new CellEditorListener() {
        @Override
        public void editingStopped(ChangeEvent e) {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) myTree.getLastSelectedPathComponent();
            if (node != null && node instanceof EditableTreeNode) {
                JComponent editedComponent = (JComponent) node.getUserObject();
                InputVerifier verifier = editedComponent.getInputVerifier();
                if (verifier != null && !verifier.verify(editedComponent)) {
                    // if invalid and interrupted, then revert
                    ((EditableTreeNode) node).fireOnCancel();
                } else {
                    ((EditableTreeNode) node).fireOnChange();
                }
            }
            myTree.firePropertyChange(PushLogTreeUtil.EDIT_MODE_PROP, true, false);
        }

        @Override
        public void editingCanceled(ChangeEvent e) {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) myTree.getLastSelectedPathComponent();
            if (node != null && node instanceof EditableTreeNode) {
                ((EditableTreeNode) node).fireOnCancel();
            }
            myTree.firePropertyChange(PushLogTreeUtil.EDIT_MODE_PROP, true, false);
        }
    });
    // complete editing when interrupt
    myTree.setInvokesStopCellEditing(true);
    myTree.setRootVisible(false);
    TreeUtil.collapseAll(myTree, 1);
    final VcsBranchEditorListener linkMouseListener = new VcsBranchEditorListener(myTreeCellRenderer);
    linkMouseListener.installOn(myTree);

    myTree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
    myTree.addTreeSelectionListener(new TreeSelectionListener() {
        @Override
        public void valueChanged(TreeSelectionEvent e) {
            updateChangesView();
        }
    });
    myTree.addFocusListener(new FocusAdapter() {
        @Override
        public void focusLost(FocusEvent e) {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) myTree.getLastSelectedPathComponent();
            if (node != null && node instanceof RepositoryNode && myTree.isEditing()) {
                //need to force repaint foreground  for non-focused editing node
                myTree.getCellEditor().getTreeCellEditorComponent(myTree, node, true, false, false,
                        myTree.getRowForPath(TreeUtil.getPathFromRoot(node)));
            }
        }
    });
    myTree.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), START_EDITING);
    //override default tree behaviour.
    myTree.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "");

    ToolTipManager.sharedInstance().registerComponent(myTree);
    PopupHandler.installPopupHandler(myTree, VcsLogUiImpl.POPUP_ACTION_GROUP, CONTEXT_MENU);

    myChangesBrowser = new ChangesBrowser(project, null, Collections.<Change>emptyList(), null, false, true,
            null, ChangesBrowser.MyUseCase.LOCAL_CHANGES, null);
    myChangesBrowser.getDiffAction().registerCustomShortcutSet(CommonShortcuts.getDiff(), myTree);
    final EditSourceForDialogAction editSourceAction = new EditSourceForDialogAction(myChangesBrowser);
    editSourceAction.registerCustomShortcutSet(CommonShortcuts.getEditSource(), myChangesBrowser);
    myChangesBrowser.addToolbarAction(editSourceAction);
    setDefaultEmptyText();

    Splitter splitter = new Splitter(false, 0.7f);
    myScrollPane = ScrollPaneFactory.createScrollPane(myTree);
    myScrollPane.setOpaque(false);
    splitter.setFirstComponent(myScrollPane);
    splitter.setSecondComponent(myChangesBrowser);

    setLayout(new BorderLayout());
    add(splitter);
    myTree.setMinimumSize(new Dimension(200, myTree.getPreferredSize().height));
    myTree.setRowHeight(0);
}

From source file:com.intellij.history.integration.ui.views.DirectoryHistoryDialog.java

License:Apache License

private ActionGroup createChangesTreeActions(JComponent root) {
    DefaultActionGroup result = new DefaultActionGroup();
    ShowDifferenceAction a = new ShowDifferenceAction();
    a.registerCustomShortcutSet(CommonShortcuts.getDiff(), root);
    result.add(a);/*from   w  w  w.  j  a  v a  2  s  .c  om*/
    result.add(new RevertSelectionAction());
    result.addSeparator();
    result.addAll(myChangesTree.getTreeActions());
    return result;
}

From source file:com.ritesh.idea.plugin.ui.toolswindow.reviewpanel.ReviewsPanel.java

License:Apache License

@SuppressWarnings("unchecked")
private void initUI() {
    setLayout(new BorderLayout());

    changesTree = new ReviewChangesTreeList(project, new ArrayList());

    mainReviewToolbar = createMainReviewToolbar();

    JPanel reviewsListPanel = new JPanel(new BorderLayout());
    JPanel toolbarGroup = new JPanel(new BorderLayout());
    toolbarGroup.add(mainReviewToolbar, BorderLayout.WEST);
    toolbarGroup.add(createReviewListToolbar(), BorderLayout.CENTER);

    reviewsListPanel.add(toolbarGroup, BorderLayout.PAGE_START);
    reviewsListPanel.add(new JBScrollPane(reviewsTable), BorderLayout.CENTER);

    JPanel diffPanel = new JPanel(new BorderLayout());
    diffPanel.add(createDiffPanelToolbar(), BorderLayout.PAGE_START);
    diffPanel.add(changesTree, BorderLayout.CENTER);

    Splitter splitter = new Splitter(false, 0.7f);
    splitter.setFirstComponent(reviewsListPanel);
    splitter.setSecondComponent(diffPanel);

    add(splitter);/*from   www .ja  v a 2 s  .co  m*/

    reviewsTable.setRowHeight(20);
    reviewsTable.setShowGrid(false);
    reviewsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (e.getValueIsAdjusting() || getSelectedReviewIndex() < 0)
                return;
            controller.selectedReviewChanged(getSelectedReviewIndex());
        }
    });

    statusComboBox.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            controller.statusChanged((String) statusComboBox.getSelectedItem());
        }
    });
    repositoryComboBox.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            controller.repositoryChanged((String) repositoryComboBox.getSelectedItem());
        }
    });
    changesTree.setDoubleClickHandler(new Runnable() {
        @Override
        public void run() {
            loadFileComments();
        }
    });
    new AnAction() {
        @Override
        public void actionPerformed(AnActionEvent anActionEvent) {
            loadFileComments();
        }
    }.registerCustomShortcutSet(new CustomShortcutSet(CommonShortcuts.getDiff().getShortcuts()), changesTree);

    // Trigger to load reviews
    statusComboBox.setSelectedIndex(0);
    repositoryComboBox.setEnabled(false);
    controller.loadRepositories(null);

}

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

License:Apache License

public RepositoryChangesBrowser get(Project project, GerritChangeListPanel changeListPanel) {
    selectBaseRevisionAction = new SelectBaseRevisionAction(project, selectedRevisions);

    TableView<ChangeInfo> table = changeListPanel.getTable();

    final GerritRepositoryChangesBrowser changesBrowser = new GerritRepositoryChangesBrowser(project);
    changesBrowser.getDiffAction().registerCustomShortcutSet(CommonShortcuts.getDiff(), table);
    changesBrowser.getViewer()/*  w w  w  .  j  av a  2 s . co m*/
            .setScrollPaneBorder(IdeBorderFactory.createBorder(SideBorder.LEFT | SideBorder.TOP));
    changesBrowser.getViewer().setChangeDecorator(changesBrowser.getChangeNodeDecorator());

    changeListPanel.addListSelectionListener(new Consumer<ChangeInfo>() {
        @Override
        public void consume(ChangeInfo changeInfo) {
            changesBrowser.setSelectedChange(changeInfo);
        }
    });
    return changesBrowser;
}

From source file:com.vladsch.MissingInActions.util.CommonUIShortcuts.java

License:Apache License

public static ShortcutSet getDiff() {
    return CommonShortcuts.getDiff();
}

From source file:org.community.intellij.plugins.communitycase.history.wholeTree.LogUI.java

License:Apache License

private JComponent createRepositoryBrowserDetails() {
    myRepoLayout = new CardLayout();
    myRepoPanel = new JPanel(myRepoLayout);
    myRepositoryChangesBrowser = new RepositoryChangesBrowser(myProject,
            Collections.<CommittedChangeList>emptyList(), Collections.<Change>emptyList(), null);
    myRepositoryChangesBrowser.getDiffAction().registerCustomShortcutSet(CommonShortcuts.getDiff(), myJBTable);
    myJBTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        @Override/*ww  w  . j a v  a  2s.c om*/
        public void valueChanged(ListSelectionEvent e) {
            if (!myDataBeingAdded) {
                selectionChanged();
            }
        }
    });
    myRepoPanel.add("main", myRepositoryChangesBrowser);
    // todo loading circle
    myRepoPanel.add("loading", panelWithCenteredText("Loading..."));
    myRepoPanel.add("tooMuch", panelWithCenteredText("Too many rows selected"));
    myRepoPanel.add("empty", panelWithCenteredText("Nothing selected"));
    myRepoLayout.show(myRepoPanel, "empty");
    return myRepoPanel;
}

From source file:org.jetbrains.idea.svn.dialogs.ToBeMergedDialog.java

License:Apache License

private void initUI() {
    final ListSelectionListener selectionListener = new ListSelectionListener() {
        @Override/*from   w w w .j a v  a2s  .  c om*/
        public void valueChanged(ListSelectionEvent e) {
            final List objects = myRevisionsList.getSelectedObjects();
            myRepositoryChangesBrowser.setChangesToDisplay(Collections.<Change>emptyList());
            myAlreadyMerged.clear();
            if ((!objects.isEmpty())) {
                final List<CommittedChangeList> lists = ObjectsConvertor.convert(objects,
                        new Convertor<Object, CommittedChangeList>() {
                            @Override
                            public CommittedChangeList convert(Object o) {
                                if (o instanceof CommittedChangeList) {
                                    final CommittedChangeList cl = (CommittedChangeList) o;
                                    final Collection<String> notMerged = myMergeChecker
                                            .getNotMergedPaths(cl.getNumber());
                                    final SvnChangeList svnList = (SvnChangeList) cl;

                                    final Collection<String> forCheck = new HashSet<String>();
                                    forCheck.addAll(svnList.getAddedPaths());
                                    forCheck.addAll(svnList.getChangedPaths());
                                    forCheck.addAll(svnList.getDeletedPaths());
                                    for (String path : forCheck) {
                                        if ((notMerged != null) && (!notMerged.isEmpty())
                                                && !notMerged.contains(path)) {
                                            myAlreadyMerged.add(((SvnChangeList) cl).getByPath(path));
                                        }
                                    }
                                    return cl;
                                }
                                return null;
                            }
                        }, ObjectsConvertor.NOT_NULL);
                final List<Change> changes = CommittedChangesTreeBrowser.collectChanges(lists, false);
                myRepositoryChangesBrowser.setChangesToDisplay(changes);
            }

            mySplitter.doLayout();
            myRepositoryChangesBrowser.repaint();
        }
    };
    final MyListCellRenderer listCellRenderer = new MyListCellRenderer();
    myRevisionsList = new TableView<CommittedChangeList>() {
        @Override
        public TableCellRenderer getCellRenderer(int row, int column) {
            return listCellRenderer;
        }

        @Override
        public void valueChanged(ListSelectionEvent e) {
            super.valueChanged(e);
            selectionListener.valueChanged(e);
        }
    };
    myRevisionsList.getExpandableItemsHandler().setEnabled(false);
    new TableViewSpeedSearch<CommittedChangeList>(myRevisionsList) {
        @Override
        protected String getItemText(@NotNull CommittedChangeList element) {
            return element.getComment();
        }
    };
    final ListTableModel<CommittedChangeList> flatModel = new ListTableModel<CommittedChangeList>(FAKE_COLUMN);
    myRevisionsList.setModelAndUpdateColumns(flatModel);
    myRevisionsList.setTableHeader(null);
    myRevisionsList.setShowGrid(false);
    final AbstractBaseTagMouseListener mouseListener = new AbstractBaseTagMouseListener() {
        @Override
        public Object getTagAt(@NotNull MouseEvent e) {
            JTable table = (JTable) e.getSource();
            int row = table.rowAtPoint(e.getPoint());
            int column = table.columnAtPoint(e.getPoint());
            if (row == -1 || column == -1)
                return null;
            listCellRenderer.customizeCellRenderer(table, table.getValueAt(row, column),
                    table.isRowSelected(row), false, row, column);
            return listCellRenderer.myRenderer
                    .getFragmentTagAt(e.getPoint().x - table.getCellRect(row, column, false).x);
        }
    };
    mouseListener.installOn(myRevisionsList);

    final PagedListWithActions.InnerComponentManager<CommittedChangeList> listsManager = new PagedListWithActions.InnerComponentManager<CommittedChangeList>() {
        @Override
        public Component getComponent() {
            return myRevisionsList;
        }

        @Override
        public void setData(List<CommittedChangeList> committedChangeLists) {
            flatModel.setItems(committedChangeLists);
            flatModel.fireTableDataChanged();
        }

        @Override
        public void refresh() {
            myRevisionsList.revalidate();
            myRevisionsList.repaint();
        }
    };
    myMore100Action = new MoreXAction(100);
    myMore500Action = new MoreXAction(500);
    final PagedListWithActions<CommittedChangeList> byRevisions = new PagedListWithActions<CommittedChangeList>(
            myListsEngine, listsManager, new MySelectAll(), new MyUnselectAll(), myMore100Action,
            myMore500Action);

    mySplitter = new Splitter(false, 0.7f);
    mySplitter.setFirstComponent(byRevisions.getComponent());

    flatModel.setItems(myListsEngine.getCurrent());
    flatModel.fireTableDataChanged();

    myRepositoryChangesBrowser = new RepositoryChangesBrowser(myProject,
            Collections.<CommittedChangeList>emptyList(), Collections.<Change>emptyList(), null);
    myRepositoryChangesBrowser.getDiffAction().registerCustomShortcutSet(CommonShortcuts.getDiff(),
            myRevisionsList);
    setChangesDecorator();
    mySplitter.setSecondComponent(myRepositoryChangesBrowser);
    mySplitter.setDividerWidth(2);

    addRevisionListListeners();

    myPanel.add(mySplitter, BorderLayout.CENTER);
}