List of usage examples for com.intellij.openapi.actionSystem CommonShortcuts getDiff
public static ShortcutSet getDiff()
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); }