diff --git a/src/main/java/view/EditorView.java b/src/main/java/view/EditorView.java index 6a7bac4343553135da8b7943557c92e7e164a81c..e13fb373ec6ff314ea2e4a27b4d4257c8b34ee0f 100644 --- a/src/main/java/view/EditorView.java +++ b/src/main/java/view/EditorView.java @@ -82,5 +82,14 @@ public class EditorView extends JPanel { }); setPreferredSize(new Dimension(400, 600)); + + inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "escape"); + getActionMap().put("escape", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent actionEvent) { + System.out.println("transfer focus"); + area.transferFocus(); + } + }); } } diff --git a/src/main/java/view/TreePanel.java b/src/main/java/view/TreePanel.java index f34ef8c37310a2ce59e25dec7c9c3d7f3975c0fd..5ffd6f006ebf5f373541ac7a9ca1a1796ae09d07 100644 --- a/src/main/java/view/TreePanel.java +++ b/src/main/java/view/TreePanel.java @@ -3,15 +3,20 @@ package view; import complexityparser.Model; import lib.Observable; import lib.Observer; +import org.antlr.v4.gui.TreeViewer; import javax.swing.*; import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; /** * a basic pannel displaying the ANTLR tree */ public class TreePanel extends JScrollPane implements Observer { + private TreeViewer viewr; + public TreePanel(Model m) { super(m.getTreeComponent()); m.add(this); @@ -19,12 +24,24 @@ public class TreePanel extends JScrollPane implements Observer { setPreferredSize(new Dimension(600, 600)); getVerticalScrollBar().setUnitIncrement(10); getHorizontalScrollBar().setUnitIncrement(10); + + JScrollBar vertical = getVerticalScrollBar(); + InputMap im = vertical.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); + im.put(KeyStroke.getKeyStroke("DOWN"), "positiveUnitIncrement"); + im.put(KeyStroke.getKeyStroke("UP"), "negativeUnitIncrement"); + + JScrollBar horizontal = getHorizontalScrollBar(); + im = horizontal.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); + im.put(KeyStroke.getKeyStroke("RIGHT"), "positiveUnitIncrement"); + im.put(KeyStroke.getKeyStroke("LEFT"), "negativeUnitIncrement"); } @Override public void update(Observable m) { Model model = (Model) m; - setViewportView(model.getTreeComponent()); + + viewr = model.getTreeComponent(); + setViewportView(viewr); } }