package org.csstudio.ui.util.widgets; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import org.eclipse.swt.widgets.Composite; /** * An abstract class that handles the pvFormula property. * * @author carcassi * */ public class AbstractPVFormulaWidget extends Composite { private String pvFormula; protected final PropertyChangeSupport changeSupport = new PropertyChangeSupport(this); public AbstractPVFormulaWidget(Composite parent, int style) { super(parent, style); } public void addPropertyChangeListener( PropertyChangeListener listener ) { changeSupport.addPropertyChangeListener( listener ); } public void removePropertyChangeListener( PropertyChangeListener listener ) { changeSupport.removePropertyChangeListener( listener ); } public String getPVFormula() { return pvFormula; } public void setPVFormula(String pvFormula) { // If new query is the same, don't change -- you may lose the cached result if (getPVFormula() != null && getPVFormula().equals(pvFormula)) return; if (getPVFormula() == null && pvFormula == null) return; String oldValue = this.pvFormula; this.pvFormula = pvFormula; changeSupport.firePropertyChange("pvFormula", oldValue, pvFormula); } }