isac-java/src/java/isac/gui/treetable/FormulaTextField.java
author Walther Neuper <wneuper@ist.tugraz.at>
Wed, 06 Sep 2017 12:50:24 +0200
changeset 5195 7151cbfc9f54
parent 5183 a85c7ff660d9
permissions -rw-r--r--
add notifyBraille
nsimic@3150
     1
package isac.gui.treetable;
nsimic@3150
     2
wneuper@5195
     3
import isac.gui.mawen.editor.EditorListener;
wneuper@5195
     4
import isac.gui.mawen.syntax.Ast;
wneuper@5195
     5
import isac.interfaces.IEditor;
wneuper@5195
     6
s1520454056@5068
     7
import java.awt.Dimension;
s1520454056@5120
     8
import java.awt.event.KeyEvent;
s1520454056@5120
     9
import java.awt.event.KeyListener;
s1520454056@5116
    10
import java.util.ArrayList;
s1520454056@5068
    11
s1520454056@5068
    12
import javax.swing.JComponent;
nsimic@3150
    13
import javax.swing.JTextField;
nsimic@3150
    14
s1520454056@5120
    15
public class FormulaTextField extends JTextField implements IEditor, KeyListener {
nsimic@3150
    16
wneuper@5195
    17
/*err*/private Ast.Ast formula;
s1520454056@5101
    18
  
a@4999
    19
	/**
a@4999
    20
	 * 
a@4999
    21
	 */
a@4999
    22
	private static final long serialVersionUID = 1L;
s1520454056@5116
    23
	protected ArrayList<EditorListener> listeners;
a@4999
    24
s1520454056@5068
    25
	
s1520454056@5068
    26
	public FormulaTextField() {
s1520454056@5116
    27
	  listeners = new ArrayList<EditorListener>();
s1520454056@5120
    28
	  addKeyListener(this);
s1520454056@5068
    29
		setOpaque(true);
s1520454056@5116
    30
		
s1520454056@5068
    31
	}
s1520454056@5068
    32
s1520454056@5068
    33
s1520454056@5068
    34
	@Override
s1520454056@5068
    35
	public JComponent getComponent() {
s1520454056@5068
    36
		return this;
s1520454056@5068
    37
	}
s1520454056@5068
    38
s1520454056@5068
    39
s1520454056@5068
    40
s1520454056@5068
    41
s1520454056@5068
    42
	@Override
s1520454056@5068
    43
	public void setFormula(String formula) {
s1520454056@5068
    44
		setText(formula);
s1520454056@5068
    45
		
s1520454056@5068
    46
	}
wneuper@5195
    47
/*err*/public void setFormula(Ast.Ast formula) {
wneuper@5195
    48
/*err*/this.formula = formula;
s1520454056@5101
    49
	  setFormula(isac.gui.mawen.syntax.Ast.math_string_of(formula));
s1520454056@5091
    50
    // TODO Auto-generated method stub
s1520454056@5091
    51
    System.out.println(formula);
s1520454056@5091
    52
  }
wneuper@5195
    53
/*err*/public Ast.Ast getFormula() {
wneuper@5195
    54
/*err*/return formula;
s1520454056@5101
    55
	}
s1520454056@5068
    56
s1520454056@5068
    57
s1520454056@5068
    58
s1520454056@5068
    59
s1520454056@5068
    60
	@Override
s1520454056@5068
    61
	public Dimension getExpressionSize() {
s1520454056@5068
    62
		// TODO Auto-generated method stub
s1520454056@5068
    63
		return getPreferredSize();
s1520454056@5068
    64
	}
s1520454056@5068
    65
s1520454056@5068
    66
s1520454056@5068
    67
	@Override
s1520454056@5068
    68
	public boolean setEditable() {
s1520454056@5068
    69
		// TODO Auto-generated method stub
s1520454056@5068
    70
		return false;
s1520454056@5068
    71
	}
s1520454056@5116
    72
	
s1520454056@5116
    73
	public void addEditorListener(EditorListener l) {
s1520454056@5116
    74
    listeners.add(l);
s1520454056@5116
    75
  }
s1520454056@5116
    76
  public void removeEditorListener(EditorListener l) {
s1520454056@5116
    77
    listeners.remove(l);
s1520454056@5116
    78
  }
s1520454056@5120
    79
  public void fireLocalCheck() {
s1520454056@5120
    80
    for(EditorListener l : listeners) {
s1520454056@5120
    81
      l.notifyLocalCheck();
s1520454056@5120
    82
    }
s1520454056@5120
    83
  }
s1520454056@5120
    84
  public void fireIsaCheck() {
s1520454056@5120
    85
    for(EditorListener l : listeners) {
s1520454056@5120
    86
      l.notifyIsaCheck();
s1520454056@5120
    87
    }
s1520454056@5120
    88
  }
s1520454056@5120
    89
s1520454056@5120
    90
s1520454056@5120
    91
  @Override
s1520454056@5120
    92
  public void keyTyped(KeyEvent e) {
s1520454056@5120
    93
    // TODO Auto-generated method stub
s1520454056@5120
    94
    
s1520454056@5120
    95
  }
s1520454056@5120
    96
s1520454056@5120
    97
s1520454056@5120
    98
  @Override
s1520454056@5120
    99
  public void keyPressed(KeyEvent e) {
s1520454056@5120
   100
    // TODO Auto-generated method stub
s1520454056@5120
   101
    
s1520454056@5120
   102
  }
s1520454056@5120
   103
s1520454056@5120
   104
s1520454056@5120
   105
  @Override
s1520454056@5120
   106
  public void keyReleased(KeyEvent e) {
s1520454056@5120
   107
    if( e.getKeyCode() == KeyEvent.VK_ENTER ) {
s1520454056@5120
   108
      fireIsaCheck();
s1520454056@5120
   109
    }
s1520454056@5120
   110
    
s1520454056@5120
   111
  }
s1520454056@5120
   112
s1520454056@5120
   113
s1520454056@5120
   114
  @Override
s1520454056@5120
   115
  public String getMathText() {
s1520454056@5120
   116
    return getText();
s1520454056@5120
   117
  }
s1520454056@5175
   118
s1520454056@5175
   119
s1520454056@5175
   120
  @Override
s1520454056@5175
   121
  public void fireNotifyLocalCheck() {
s1520454056@5175
   122
    fireLocalCheck();
s1520454056@5175
   123
  }
s1520454056@5175
   124
s1520454056@5175
   125
s1520454056@5175
   126
  @Override
s1520454056@5175
   127
  public void fireNotifyIsaCheck() {
s1520454056@5175
   128
    fireIsaCheck();
s1520454056@5175
   129
  }
wneuper@5195
   130
  
wneuper@5195
   131
  // inappropriate for StringEditor
wneuper@5195
   132
/*err*/public void fireNotifyBraille(Ast.Ast formula) {}
nsimic@3150
   133
}