diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/gui/JTreeTable.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/gui/JTreeTable.java index 8379f6475..265f67e5c 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/gui/JTreeTable.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/gui/JTreeTable.java @@ -36,10 +36,14 @@ package com.puppycrawl.tools.checkstyle.gui; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics; +import java.awt.event.ActionEvent; import java.awt.event.MouseEvent; import java.util.EventObject; +import javax.swing.Action; +import javax.swing.AbstractAction; import javax.swing.JTable; import javax.swing.JTree; +import javax.swing.KeyStroke; import javax.swing.ListSelectionModel; import javax.swing.LookAndFeel; import javax.swing.UIManager; @@ -101,6 +105,23 @@ public class JTreeTable extends JTable // Metal looks better like this. setRowHeight(getRowHeight()); } + + Action expand = new AbstractAction() { + public void actionPerformed(ActionEvent e) { + TreePath selected = tree.getSelectionPath(); + if (tree.isExpanded(selected)) { + tree.collapsePath(selected); + } + else { + tree.expandPath(selected); + } + tree.setSelectionPath(selected); + } + }; + KeyStroke stroke = KeyStroke.getKeyStroke("ENTER"); + String command = "expand/collapse"; + getInputMap().put(stroke, command); + getActionMap().put(command, expand); } /** @@ -296,6 +317,7 @@ public class JTreeTable extends JTable } } } + return false; } } diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/gui/ParseTreeInfoPanel.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/gui/ParseTreeInfoPanel.java index 19d6fd49a..286dfb8ee 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/gui/ParseTreeInfoPanel.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/gui/ParseTreeInfoPanel.java @@ -23,6 +23,7 @@ import java.awt.BorderLayout; import java.awt.Component; import java.awt.GridLayout; import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; import java.io.File; import java.io.IOException; import java.util.TooManyListenersException; @@ -34,6 +35,7 @@ import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; +import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import javax.swing.filechooser.FileFilter; @@ -79,6 +81,7 @@ public class ParseTreeInfoPanel extends JPanel public FileSelectionAction() { super("Select Java File"); + putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_S)); } public void actionPerformed(ActionEvent e) @@ -99,6 +102,7 @@ public class ParseTreeInfoPanel extends JPanel public ReloadAction() { super("Reload Java File"); + putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_R)); } public void actionPerformed(ActionEvent e)