package org.eclipse.iee.pad.formula.ui; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import org.eclipse.iee.editor.core.container.TextRenderCtx; import org.eclipse.iee.editor.core.pad.Pad; import org.eclipse.iee.pad.formula.FormulaPart; import org.eclipse.iee.pad.formula.ui.utils.UIFormulaRenderer; @SuppressWarnings("unused") public class FormulaPad extends AbstractFormulaPad<FormulaPart> { private PropertyChangeListener fListener; public FormulaPad(UIFormulaRenderer formulaRenderer, TextRenderCtx renderCtx) { super(formulaRenderer, renderCtx); fListener = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if ("formula".equals(evt.getPropertyName())) { updateFormula((String) evt.getNewValue()); } } }; } @Override public void processInput() { super.processInput(); getDocumentPart().setFormula(fOriginalExpression); getContainer().updateDocument(); } @Override protected void doBindValue(FormulaPart value) { value.addPropertyChangeListener(fListener); updateFormula(value.getFormula()); } @Override protected void doUnbindValue(FormulaPart oldValue) { oldValue.removePropertyChangeListener(fListener); } private void updateFormula(String formula) { setTranslatingExpression(formula); setOriginalExpression(formula); } }