isac-java/src/java/isac/gui/mawen/editor/EditorPanel.java
author Walther Neuper <wneuper@ist.tugraz.at>
Thu, 07 Sep 2017 09:21:29 +0200
changeset 5200 80152e6a6702
parent 5199 3799cb07f123
child 5203 8fcdb69044d9
permissions -rw-r--r--
restore broken merge from 3799cb07f123
     1 package isac.gui.mawen.editor;
     2 
     3 import isac.gui.mawen.syntax.Ast;
     4 import isac.interfaces.IEditor;
     5 
     6 import java.awt.*;
     7 import java.util.ArrayList;
     8 import javax.swing.*;
     9 
    10 /**
    11  * Manages the editor for one formula represented by an <code>Ast</code>
    12  * in the <code>Worksheet</code>.
    13  */
    14 public class EditorPanel extends JPanel implements IEditor  {
    15 
    16   private static final long serialVersionUID = 1L;
    17   protected ArrayList<EditorListener> listeners;
    18   private JComponent component;
    19 
    20 /*err*/public EditorPanel(Ast.Ast ast) {
    21     listeners = new ArrayList<EditorListener>();
    22     LayoutManager overlay = new OverlayLayout(this);
    23     this.setBackground(Color.GREEN);
    24     setLayout(overlay);
    25 	component = CalcUtil.assembleComponent(ast);
    26 	EditorListenerHandler.addListenerHandler((IEditor)this, (AstContainer)component);
    27 	add(component);
    28   }
    29   @Override
    30   public JComponent getComponent() {
    31     return this;
    32   }
    33   @Override
    34   public void setFormula(String formula) {
    35     System.out.println(formula);
    36   }
    37   @Override
    38 /*err*/public void setFormula(isac.gui.mawen.syntax.Ast.Ast formula) {
    39     ((AstComponent)component).setAst(formula);
    40   }
    41 /*err*/public isac.gui.mawen.syntax.Ast.Ast getFormula() {
    42 /*err*/return ((AstComponent)component).getAst();
    43   }
    44   public void addEditorListener(EditorListener l) {
    45     listeners.add(l);
    46   }
    47   public void removeEditorListener(EditorListener l) {
    48     listeners.remove(l);
    49   }
    50   public void fireNotifyLocalCheck() {
    51     for(EditorListener l : listeners) {
    52       l.notifyLocalCheck();
    53     }
    54   }
    55   public void fireNotifyIsaCheck() {
    56     for(EditorListener l : listeners) {
    57       l.notifyIsaCheck();
    58     }
    59   }
    60 /*err*/public void fireNotifyBraille(Ast.Ast formula) {
    61 	    for(EditorListener l : listeners) {
    62 	      l.notifyBraille(formula);
    63 	    }
    64 	  }
    65   @Override
    66   public Dimension getExpressionSize() {
    67     return new Dimension(Math.max(component.getSize().width, 50), Math.max(component.getSize().height, 50)) ;
    68   }
    69   @Override
    70   public boolean setEditable() {
    71     return false;
    72   }
    73   @Override
    74   public String getMathText() {
    75 /*err*/System.out.println(isac.gui.mawen.syntax.Ast$.MODULE$.math_string_of(getFormula()));
    76 /*err*/return Ast.math_string_of(getFormula() );
    77   }
    78 
    79 	
    80   
    81   
    82 }