1.1 --- a/isac-java/src/java/isac/gui/mawen/editor/EditorListener.java Wed Aug 02 18:04:23 2017 +0200
1.2 +++ b/isac-java/src/java/isac/gui/mawen/editor/EditorListener.java Wed Sep 06 12:50:24 2017 +0200
1.3 @@ -1,5 +1,6 @@
1.4 package isac.gui.mawen.editor;
1.5
1.6 +import isac.gui.mawen.syntax.Ast;
1.7 import java.util.EventListener;
1.8
1.9 /**
1.10 @@ -8,5 +9,5 @@
1.11 public interface EditorListener extends EventListener {
1.12 void notifyLocalCheck();
1.13 void notifyIsaCheck();
1.14 -
1.15 +/*err*/void notifyBraille(Ast.Ast formula);
1.16 }
2.1 --- a/isac-java/src/java/isac/gui/mawen/editor/EditorListenerHandler.scala Wed Aug 02 18:04:23 2017 +0200
2.2 +++ b/isac-java/src/java/isac/gui/mawen/editor/EditorListenerHandler.scala Wed Sep 06 12:50:24 2017 +0200
2.3 @@ -1,28 +1,29 @@
2.4 package isac.gui.mawen.editor
2.5 -
2.6 +import isac.gui.mawen.syntax.Ast;
2.7 import isac.interfaces.IEditor
2.8
2.9 object EditorListenerHandler {
2.10
2.11 var editorInstances= Map.empty[AstContainer, IEditor]
2.12 -
2.13 -
2.14 -
2.15 def fireNotifyLocalCheck(c: AstContainer) {
2.16 editorInstances.get(c) match {
2.17 case Some(editor) => editor.fireNotifyLocalCheck()
2.18 case None => {}
2.19 }
2.20 }
2.21 -
2.22 def fireNotifyIsaCheck(c: AstContainer) {
2.23 editorInstances.get(c) match {
2.24 case Some(editor) => editor.fireNotifyIsaCheck()
2.25 case None => {}
2.26 }
2.27 }
2.28 + def fireNotifysBraille(c: AstContainer, formula: Ast.Ast) {
2.29 + editorInstances.get(c) match {
2.30 + case Some(editor) => editor.fireNotifyBraille(formula)
2.31 + case None => {}
2.32 + }
2.33 + }
2.34 def addListenerHandler(editor: IEditor, c: AstContainer) {
2.35 editorInstances = editorInstances + (c -> editor)
2.36 }
2.37 -
2.38 }
2.39 \ No newline at end of file
3.1 --- a/isac-java/src/java/isac/gui/mawen/editor/EditorPanel.java Wed Aug 02 18:04:23 2017 +0200
3.2 +++ b/isac-java/src/java/isac/gui/mawen/editor/EditorPanel.java Wed Sep 06 12:50:24 2017 +0200
3.3 @@ -76,6 +76,11 @@
3.4 l.notifyIsaCheck();
3.5 }
3.6 }
3.7 +/*err*/public void fireNotifyBraille(Ast.Ast formula) {
3.8 + for(EditorListener l : listeners) {
3.9 + l.notifyBraille(formula);
3.10 + }
3.11 + }
3.12
3.13 @Override
3.14 public Dimension getExpressionSize() {
4.1 --- a/isac-java/src/java/isac/gui/treetable/CalcTreeCellEditor.java Wed Aug 02 18:04:23 2017 +0200
4.2 +++ b/isac-java/src/java/isac/gui/treetable/CalcTreeCellEditor.java Wed Sep 06 12:50:24 2017 +0200
4.3 @@ -62,6 +62,10 @@
4.4 /*err*/ editedNode_ = new Formula(editor_.getMathText(), editor_.getFormula());
4.5 notifyWorksheet();
4.6 }
4.7 +/*err*/public void notifyBraille(Ast.Ast formula) {
4.8 + System.out.println("output to Braille display");
4.9 + }
4.10 +
4.11 });
4.12 tacticText_ = new JTextField();
4.13
5.1 --- a/isac-java/src/java/isac/gui/treetable/FormulaTextField.java Wed Aug 02 18:04:23 2017 +0200
5.2 +++ b/isac-java/src/java/isac/gui/treetable/FormulaTextField.java Wed Sep 06 12:50:24 2017 +0200
5.3 @@ -1,5 +1,9 @@
5.4 package isac.gui.treetable;
5.5
5.6 +import isac.gui.mawen.editor.EditorListener;
5.7 +import isac.gui.mawen.syntax.Ast;
5.8 +import isac.interfaces.IEditor;
5.9 +
5.10 import java.awt.Dimension;
5.11 import java.awt.event.KeyEvent;
5.12 import java.awt.event.KeyListener;
5.13 @@ -8,13 +12,9 @@
5.14 import javax.swing.JComponent;
5.15 import javax.swing.JTextField;
5.16
5.17 -import isac.gui.mawen.editor.EditorListener;
5.18 -import isac.interfaces.IEditor;
5.19 -
5.20 -
5.21 public class FormulaTextField extends JTextField implements IEditor, KeyListener {
5.22
5.23 - private isac.gui.mawen.syntax.Ast.Ast formula;
5.24 +/*err*/private Ast.Ast formula;
5.25
5.26 /**
5.27 *
5.28 @@ -44,14 +44,14 @@
5.29 setText(formula);
5.30
5.31 }
5.32 - public void setFormula(isac.gui.mawen.syntax.Ast.Ast formula) {
5.33 - this.formula = formula;
5.34 +/*err*/public void setFormula(Ast.Ast formula) {
5.35 +/*err*/this.formula = formula;
5.36 setFormula(isac.gui.mawen.syntax.Ast.math_string_of(formula));
5.37 // TODO Auto-generated method stub
5.38 System.out.println(formula);
5.39 }
5.40 - public isac.gui.mawen.syntax.Ast.Ast getFormula() {
5.41 - return formula;
5.42 +/*err*/public Ast.Ast getFormula() {
5.43 +/*err*/return formula;
5.44 }
5.45
5.46
5.47 @@ -127,4 +127,7 @@
5.48 public void fireNotifyIsaCheck() {
5.49 fireIsaCheck();
5.50 }
5.51 +
5.52 + // inappropriate for StringEditor
5.53 +/*err*/public void fireNotifyBraille(Ast.Ast formula) {}
5.54 }
6.1 --- a/isac-java/src/java/isac/gui/treetable/TacticTextField.java Wed Aug 02 18:04:23 2017 +0200
6.2 +++ b/isac-java/src/java/isac/gui/treetable/TacticTextField.java Wed Sep 06 12:50:24 2017 +0200
6.3 @@ -1,23 +1,18 @@
6.4 package isac.gui.treetable;
6.5
6.6 +import isac.gui.mawen.editor.EditorListener;
6.7 +import isac.gui.mawen.syntax.Ast;
6.8 +import isac.interfaces.IEditor;
6.9 import java.awt.Dimension;
6.10 import java.util.ArrayList;
6.11 -
6.12 import javax.swing.JComponent;
6.13 import javax.swing.JTextField;
6.14
6.15 -import isac.gui.mawen.editor.EditorListener;
6.16 -import isac.interfaces.IEditor;
6.17 -
6.18 public class TacticTextField extends JTextField implements IEditor {
6.19
6.20 - /**
6.21 - *
6.22 - */
6.23 private static final long serialVersionUID = 1L;
6.24 - private isac.gui.mawen.syntax.Ast.Ast formula;
6.25 +/*err*/private isac.gui.mawen.syntax.Ast.Ast formula;
6.26 protected ArrayList<EditorListener> listeners;
6.27 -
6.28
6.29 public TacticTextField() {
6.30 listeners = new ArrayList<EditorListener>();
6.31 @@ -25,66 +20,46 @@
6.32 setHorizontalAlignment(JTextField.RIGHT);
6.33 setBorder(null);
6.34 }
6.35 -
6.36 @Override
6.37 public JComponent getComponent() {
6.38 return this;
6.39 }
6.40 -
6.41 -
6.42 -
6.43 -
6.44 @Override
6.45 public void setFormula(String formula) {
6.46 setText(formula);
6.47
6.48 }
6.49 - public void setFormula(isac.gui.mawen.syntax.Ast.Ast formula) {
6.50 - this.formula = formula;
6.51 +/*err*/public void setFormula(Ast.Ast formula) {
6.52 +/*err*/this.formula = formula;
6.53 setFormula(isac.gui.mawen.syntax.Ast.math_string_of(formula));
6.54 // TODO Auto-generated method stub
6.55 System.out.println(formula);
6.56 - }
6.57 -
6.58 - public isac.gui.mawen.syntax.Ast.Ast getFormula() {
6.59 - return formula;
6.60 - }
6.61 -
6.62 -
6.63 -
6.64 -
6.65 + }
6.66 + public Ast.Ast getFormula() {
6.67 + return formula;
6.68 + }
6.69 @Override
6.70 public Dimension getExpressionSize() {
6.71 - // TODO Auto-generated method stub
6.72 return getPreferredSize();
6.73 }
6.74 -
6.75 -
6.76 @Override
6.77 public boolean setEditable() {
6.78 - // TODO Auto-generated method stub
6.79 return false;
6.80 }
6.81 -
6.82 public void addEditorListener(EditorListener l) {
6.83 listeners.add(l);
6.84 - }
6.85 - public void removeEditorListener(EditorListener l) {
6.86 - listeners.remove(l);
6.87 - }
6.88 -
6.89 - @Override
6.90 - public String getMathText() {
6.91 - // TODO Auto-generated method stub
6.92 - return getText();
6.93 - }
6.94 -
6.95 - @Override
6.96 - public void fireNotifyLocalCheck() {
6.97 - }
6.98 -
6.99 -
6.100 - @Override
6.101 - public void fireNotifyIsaCheck() {
6.102 - }
6.103 + }
6.104 + public void removeEditorListener(EditorListener l) {
6.105 + listeners.remove(l);
6.106 + }
6.107 + @Override
6.108 + public String getMathText() {
6.109 + return getText();
6.110 + }
6.111 + @Override
6.112 + public void fireNotifyLocalCheck() {}
6.113 + @Override
6.114 + public void fireNotifyIsaCheck() {}
6.115 + // inappropriate for StringEditor
6.116 +/*err*/public void fireNotifyBraille(Ast.Ast formula) {}
6.117 }
7.1 --- a/isac-java/src/java/isac/interfaces/IEditor.java Wed Aug 02 18:04:23 2017 +0200
7.2 +++ b/isac-java/src/java/isac/interfaces/IEditor.java Wed Sep 06 12:50:24 2017 +0200
7.3 @@ -2,49 +2,47 @@
7.4
7.5 import isac.gui.mawen.editor.EditorListener;
7.6 import isac.gui.mawen.syntax.Ast;
7.7 -
7.8 import java.awt.Dimension;
7.9 -
7.10 import javax.swing.JComponent;
7.11
7.12 public interface IEditor {
7.13 + /*
7.14 + * <code>TreeCellEditor</code> and <code>TreeCellRenderer</code> returns
7.15 + * either <code>StringEditor</code> or <code>EditorPanel</code>
7.16 + */
7.17 + JComponent getComponent();
7.18
7.19 - JComponent getComponent();
7.20 -
7.21 -
7.22 -
7.23 - void setFormula(Ast.Ast formula);
7.24 +/*err*/void setFormula(Ast.Ast formula); // Java cannot distinguish betwenn class and object
7.25 void setFormula(String formula);
7.26 - Ast.Ast getFormula();
7.27 +/*err*/Ast.Ast getFormula();
7.28 String getMathText();
7.29 -
7.30 - /*
7.31 - * Submit a mathematical expression as an Ast for rendering or editing,
7.32 - * according to <code>setEditable</code>.
7.33 - * Such an expression is either a formula or a tactic.
7.34 - *
7.35 - * TODO setExpression(Ast.Ast formula)
7.36 - */
7.37 -
7.38
7.39 /*
7.40 * Returns the size of the mathematical expression; is relevant after
7.41 - * TODO each edit, which changes the size (e.g. introduction of an exponent).
7.42 - *
7.43 - * TODO Dimension getExpressionSize();
7.44 + * each edit, which changes the size (e.g. introduction of an exponent).
7.45 */
7.46 Dimension getExpressionSize();
7.47
7.48 /*
7.49 - * Two different modes; the one modes visualisation is different
7.50 - * from the modes for editing.
7.51 + * Mode for an <code>JTree</code> node
7.52 */
7.53 boolean setEditable();
7.54
7.55 - void addEditorListener(EditorListener l) ;
7.56 - void removeEditorListener(EditorListener l) ;
7.57 + void addEditorListener(EditorListener l);
7.58 + void removeEditorListener(EditorListener l);
7.59 +
7.60 + /*
7.61 + * check either in front-end (local) or by Isabelle
7.62 + */
7.63 void fireNotifyLocalCheck();
7.64 - void fireNotifyIsaCheck();
7.65 + void fireNotifyIsaCheck();
7.66
7.67 -
7.68 + /*
7.69 + * Fired in case arrow-keys select another sub-term
7.70 + * and in case of editing at each input key.
7.71 + *
7.72 + * Ast is translated to strings according to different standards
7.73 + * outside the editor
7.74 + */
7.75 +/*err*/void fireNotifyBraille(Ast.Ast formula);
7.76 }