package org.csstudio.sds.components.ui.internal.editparts; import org.csstudio.sds.components.model.AbstractMarkedWidgetModel; import org.csstudio.sds.components.ui.internal.figures.AbstractMarkedWidgetFigure; import org.csstudio.sds.ui.editparts.IWidgetPropertyChangeHandler; import org.eclipse.draw2d.IFigure; import org.eclipse.swt.graphics.Color; /** * Base editPart controller for a widget based on * {@link AbstractMarkedWidgetModel}. * * @author Xihui Chen * */ public abstract class AbstractMarkedWidgetEditPart extends AbstractScaledWidgetEditPart { /** * Sets those properties on the figure that are defined in the * {@link AbstractMarkedWidgetFigure} base class. This method is provided * for the convenience of subclasses, which can call this method in their * implementation of * {@link org.csstudio.sds.ui.editparts.AbstractBaseEditPart#doCreateFigure()} * . * * @param figure * the figure. * @param model * the model. */ protected final void initializeCommonFigureProperties( final AbstractMarkedWidgetFigure figure, final AbstractMarkedWidgetModel model) { super.initializeCommonFigureProperties(figure, model); figure.setShowMarkers(model.isShowMarkers()); figure.setLoloLevel(model.getLoloLevel()); figure.setLoLevel(model.getLoLevel()); figure.setHiLevel(model.getHiLevel()); figure.setHihiLevel(model.getHihiLevel()); figure.setShowLolo(model.isShowLolo()); figure.setShowLo(model.isShowLo()); figure.setShowHi(model.isShowHi()); figure.setShowHihi(model.isShowHihi()); figure .setLoloColor(getModelColor(AbstractMarkedWidgetModel.PROP_LOLO_COLOR)); figure .setLoColor(getModelColor(AbstractMarkedWidgetModel.PROP_LO_COLOR)); figure .setHiColor(getModelColor(AbstractMarkedWidgetModel.PROP_HI_COLOR)); figure .setHihiColor(getModelColor(AbstractMarkedWidgetModel.PROP_HIHI_COLOR)); } /** * Registers property change handlers for the properties defined in * {@link org.csstudio.sds.components.model.AbstractScaledWidgetModel}. This * method is provided for the convenience of subclasses, which can call this * method in their implementation of * {@link #registerPropertyChangeHandlers()}. */ @Override // FIXME: Sven Wende: 2010-04-19: Vorsicht Spaghetti-Code. Den Aufruf dieser // Methode in den Subklassen optimieren. Besser hier bereits // registerPropertyChangeHandlers() implementieren. protected final void registerCommonPropertyChangeHandlers() { super.registerCommonPropertyChangeHandlers(); setShowMarkersHandler(); setLoloLevelHandler(); setLoLevelHandler(); setHiLevelHandler(); setHihiLevelHandler(); setShowLoloHandler(); setShowLoHandler(); setShowHiHandler(); setShowHihiHandler(); setLoloColorHandler(); setLoColorHandler(); setHiColorHandler(); setHihiColorHandler(); } /** * */ private void setHihiColorHandler() { setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_HIHI_COLOR, new ColorChangeHandler<AbstractMarkedWidgetFigure>() { @Override protected void doHandle( final AbstractMarkedWidgetFigure figure, final Color color) { figure.setHihiColor(color); } }); } /** * */ private void setHiColorHandler() { setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_HI_COLOR, new ColorChangeHandler<AbstractMarkedWidgetFigure>() { @Override protected void doHandle( final AbstractMarkedWidgetFigure figure, final Color color) { figure.setHiColor(color); } }); } /** * */ private void setLoColorHandler() { setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_LO_COLOR, new ColorChangeHandler<AbstractMarkedWidgetFigure>() { @Override protected void doHandle( final AbstractMarkedWidgetFigure figure, final Color color) { figure.setLoColor(color); } }); } /** * */ private void setLoloColorHandler() { setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_LOLO_COLOR, new ColorChangeHandler<AbstractMarkedWidgetFigure>() { @Override protected void doHandle( final AbstractMarkedWidgetFigure figure, final Color color) { figure.setLoloColor(color); } }); } /** * */ private void setShowHihiHandler() { IWidgetPropertyChangeHandler showHihiHandler = new IWidgetPropertyChangeHandler() { @Override public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) { AbstractMarkedWidgetFigure figure = (AbstractMarkedWidgetFigure) refreshableFigure; figure.setShowHihi((Boolean) newValue); return true; } }; setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_SHOW_HIHI, showHihiHandler); } /** * */ private void setShowHiHandler() { IWidgetPropertyChangeHandler showHiHandler = new IWidgetPropertyChangeHandler() { @Override public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) { AbstractMarkedWidgetFigure figure = (AbstractMarkedWidgetFigure) refreshableFigure; figure.setShowHi((Boolean) newValue); return true; } }; setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_SHOW_HI, showHiHandler); } /** * */ private void setShowLoHandler() { IWidgetPropertyChangeHandler showLoHandler = new IWidgetPropertyChangeHandler() { @Override public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) { AbstractMarkedWidgetFigure figure = (AbstractMarkedWidgetFigure) refreshableFigure; figure.setShowLo((Boolean) newValue); return true; } }; setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_SHOW_LO, showLoHandler); } /** * */ private void setShowLoloHandler() { IWidgetPropertyChangeHandler showLoloHandler = new IWidgetPropertyChangeHandler() { @Override public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) { AbstractMarkedWidgetFigure figure = (AbstractMarkedWidgetFigure) refreshableFigure; figure.setShowLolo((Boolean) newValue); return true; } }; setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_SHOW_LOLO, showLoloHandler); } /** * */ private void setHihiLevelHandler() { IWidgetPropertyChangeHandler hihiHandler = new IWidgetPropertyChangeHandler() { @Override public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) { AbstractMarkedWidgetFigure figure = (AbstractMarkedWidgetFigure) refreshableFigure; figure.setHihiLevel((Double) newValue); return true; } }; setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_HIHI_LEVEL, hihiHandler); } /** * */ private void setHiLevelHandler() { IWidgetPropertyChangeHandler hiHandler = new IWidgetPropertyChangeHandler() { @Override public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) { AbstractMarkedWidgetFigure figure = (AbstractMarkedWidgetFigure) refreshableFigure; figure.setHiLevel((Double) newValue); return true; } }; setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_HI_LEVEL, hiHandler); } /** * */ private void setLoLevelHandler() { IWidgetPropertyChangeHandler loHandler = new IWidgetPropertyChangeHandler() { @Override public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) { AbstractMarkedWidgetFigure figure = (AbstractMarkedWidgetFigure) refreshableFigure; figure.setLoLevel((Double) newValue); return true; } }; setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_LO_LEVEL, loHandler); } /** * */ private void setLoloLevelHandler() { // LoLo Level IWidgetPropertyChangeHandler loloHandler = new IWidgetPropertyChangeHandler() { @Override public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) { AbstractMarkedWidgetFigure figure = (AbstractMarkedWidgetFigure) refreshableFigure; figure.setLoloLevel((Double) newValue); return true; } }; setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_LOLO_LEVEL, loloHandler); } /** * */ private void setShowMarkersHandler() { IWidgetPropertyChangeHandler showMarkersHandler = new IWidgetPropertyChangeHandler() { @Override public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) { AbstractMarkedWidgetFigure figure = (AbstractMarkedWidgetFigure) refreshableFigure; figure.setShowMarkers((Boolean) newValue); return true; } }; setPropertyChangeHandler(AbstractMarkedWidgetModel.PROP_SHOW_MARKERS, showMarkersHandler); } }