2
* This panel is for the input.
5
package geogebra.cas.view;
7
import geogebra.gui.inputfield.AutoCompleteTextField;
8
import geogebra.main.Application;
10
import java.awt.BorderLayout;
11
import java.awt.Color;
12
import java.awt.Component;
14
import java.awt.KeyboardFocusManager;
15
import java.awt.event.FocusEvent;
16
import java.awt.event.FocusListener;
17
import java.beans.PropertyChangeEvent;
18
import java.beans.PropertyChangeListener;
20
import javax.swing.BorderFactory;
21
import javax.swing.JButton;
22
import javax.swing.JPanel;
23
import javax.swing.JTextField;
24
import javax.swing.text.JTextComponent;
26
public class CASInputPanel extends JPanel {
28
private AutoCompleteTextField inputArea;
30
private Application app;
32
public CASInputPanel(Application app) {
35
setBackground(Color.white);
36
setLayout(new BorderLayout(0,0));
38
// use autocomplete text field from input bar
39
// but ignore Escape, Up, Down keys
40
inputArea = new AutoCompleteTextField(1, app, false, app.getCommandDictionaryCAS());
41
inputArea.setCASInput(true);
42
inputArea.setAutoComplete(true);
43
inputArea.showPopupSymbolButton(true);
44
inputArea.setBorder(BorderFactory.createEmptyBorder());
45
add(inputArea, BorderLayout.CENTER);
48
// inputArea.addFocusListener(new FocusListener() {
50
// public void focusGained(FocusEvent e) {
51
//// String text = inputArea.getText();
52
//// int pos = text != null ? text.length() : 0;
53
//// inputArea.setCaretPosition(pos);
54
//// inputArea.setSelectionStart(pos);
55
//// inputArea.setSelectionEnd(pos);
57
// System.out.println("inputArea focus GAINED: " + e);
60
// public void focusLost(FocusEvent e) {
61
// //System.out.println("inputArea focus LOST: " + e);
62
// Application.printStacktrace("inputArea focus LOST: " + e);
67
// KeyboardFocusManager focusManager =
68
// KeyboardFocusManager.getCurrentKeyboardFocusManager();
69
// focusManager.addPropertyChangeListener(
70
// new PropertyChangeListener() {
71
// public void propertyChange(PropertyChangeEvent e) {
72
// System.out.println(e.getPropertyName() + ": old: " + e.getOldValue() + ", new: "+ e.getNewValue() + ", source: " + e.getSource());
74
// if (e.getNewValue() instanceof JButton) {
75
// JButton bt = (JButton) e.getNewValue();
76
// System.out.println("BUTTON: " + bt.getText() + ", " + bt.getToolTipText());
79
//// String prop = e.getPropertyName();
80
//// if (("focusOwner".equals(prop))) {
82
//// Component comp = (Component)e.getNewValue();
83
//// String name = comp.getName();
84
//// System.out.println("focus owner: " + name + ", " + comp);
91
public void setInput(String inValue) {
92
inputArea.setText(inValue);
95
public String getInput() {
96
return inputArea.getText();
99
public JTextComponent getInputArea() {
103
public void setInputAreaFocused() {
104
boolean success = inputArea.requestFocusInWindow();
107
final public void setFont(Font ft) {
110
if (inputArea != null)
111
inputArea.setFont(ft);
114
public void setLabels() {
115
inputArea.setDictionary(app.getCommandDictionaryCAS());