use of org.diirt.vtype.Scalar in project yamcs-studio by yamcs.
the class MenuButtonEditPart method registerPropertyChangeHandlers.
@Override
protected void registerPropertyChangeHandlers() {
IWidgetPropertyChangeHandler pvNameHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(Object oldValue, Object newValue, IFigure figure) {
registerLoadActionsListener();
return false;
}
};
setPropertyChangeHandler(AbstractPVWidgetModel.PROP_PVNAME, pvNameHandler);
// PV_Value
IWidgetPropertyChangeHandler pvhandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
if ((newValue != null) && (newValue instanceof Scalar))
((MenuButtonFigure) refreshableFigure).setText(VTypeHelper.getString((VType) newValue));
return true;
}
};
setPropertyChangeHandler(MenuButtonModel.PROP_PVVALUE, pvhandler);
// label
IWidgetPropertyChangeHandler labelHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
((MenuButtonFigure) refreshableFigure).setText(newValue.toString());
return true;
}
};
setPropertyChangeHandler(MenuButtonModel.PROP_LABEL, labelHandler);
// Transparent
IWidgetPropertyChangeHandler transparentHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
((MenuButtonFigure) refreshableFigure).setOpaque(!(Boolean) newValue);
return true;
}
};
setPropertyChangeHandler(MenuButtonModel.PROP_TRANSPARENT, transparentHandler);
// Show down arrow
IWidgetPropertyChangeHandler downArrowHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
((MenuButtonFigure) refreshableFigure).setDownArrowVisible((boolean) newValue);
return true;
}
};
setPropertyChangeHandler(MenuButtonModel.PROP_SHOW_DOWN_ARROW, downArrowHandler);
final IWidgetPropertyChangeHandler handler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
updatePropSheet((Boolean) newValue);
return false;
}
};
getWidgetModel().getProperty(MenuButtonModel.PROP_ACTIONS_FROM_PV).addPropertyChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
handler.handleChange(evt.getOldValue(), evt.getNewValue(), getFigure());
}
});
}
Aggregations