use of org.diirt.vtype.VType in project yamcs-studio by yamcs.
the class AbstractScaledWidgetEditPart method registerCommonPropertyChangeHandlers.
/**
* Registers property change handlers for the properties defined in {@link AbstractScaledWidgetModel}. This method
* is provided for the convenience of subclasses, which can call this method in their implementation of
* {@link #registerPropertyChangeHandlers()}.
*/
protected void registerCommonPropertyChangeHandlers() {
// value
IWidgetPropertyChangeHandler valueHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
if (newValue == null)
return false;
AbstractScaledWidgetFigure figure = (AbstractScaledWidgetFigure) refreshableFigure;
figure.setValue(VTypeHelper.getDouble((VType) newValue));
return false;
}
};
setPropertyChangeHandler(AbstractPVWidgetModel.PROP_PVVALUE, valueHandler);
// minimum
IWidgetPropertyChangeHandler minimumHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
AbstractScaledWidgetFigure figure = (AbstractScaledWidgetFigure) refreshableFigure;
figure.setRange((Double) newValue, ((AbstractScaledWidgetModel) getModel()).getMaximum());
return false;
}
};
setPropertyChangeHandler(AbstractScaledWidgetModel.PROP_MIN, minimumHandler);
// maximum
IWidgetPropertyChangeHandler maximumHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
AbstractScaledWidgetFigure figure = (AbstractScaledWidgetFigure) refreshableFigure;
figure.setRange(((AbstractScaledWidgetModel) getModel()).getMinimum(), (Double) newValue);
return false;
}
};
setPropertyChangeHandler(AbstractScaledWidgetModel.PROP_MAX, maximumHandler);
// major tick step hint
IWidgetPropertyChangeHandler majorTickHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
AbstractScaledWidgetFigure figure = (AbstractScaledWidgetFigure) refreshableFigure;
figure.setMajorTickMarkStepHint((Integer) newValue);
return false;
}
};
setPropertyChangeHandler(AbstractScaledWidgetModel.PROP_MAJOR_TICK_STEP_HINT, majorTickHandler);
// logScale
IWidgetPropertyChangeHandler logScaleHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
AbstractScaledWidgetFigure figure = (AbstractScaledWidgetFigure) refreshableFigure;
figure.setLogScale((Boolean) newValue);
return false;
}
};
setPropertyChangeHandler(AbstractScaledWidgetModel.PROP_LOG_SCALE, logScaleHandler);
// showScale
IWidgetPropertyChangeHandler showScaleHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
AbstractScaledWidgetFigure figure = (AbstractScaledWidgetFigure) refreshableFigure;
figure.setShowScale((Boolean) newValue);
return false;
}
};
setPropertyChangeHandler(AbstractScaledWidgetModel.PROP_SHOW_SCALE, showScaleHandler);
// showMinorTicks
IWidgetPropertyChangeHandler showMinorTicksHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
AbstractScaledWidgetFigure figure = (AbstractScaledWidgetFigure) refreshableFigure;
figure.setShowMinorTicks((Boolean) newValue);
return false;
}
};
setPropertyChangeHandler(AbstractScaledWidgetModel.PROP_SHOW_MINOR_TICKS, showMinorTicksHandler);
// Transparent
IWidgetPropertyChangeHandler transparentHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
AbstractScaledWidgetFigure figure = (AbstractScaledWidgetFigure) refreshableFigure;
figure.setTransparent((Boolean) newValue);
return false;
}
};
setPropertyChangeHandler(AbstractScaledWidgetModel.PROP_TRANSPARENT, transparentHandler);
IWidgetPropertyChangeHandler scaleFontHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(Object oldValue, Object newValue, IFigure refreshableFigure) {
AbstractScaledWidgetFigure figure = (AbstractScaledWidgetFigure) refreshableFigure;
figure.getScale().setFont(((OPIFont) newValue).getSWTFont());
return false;
}
};
setPropertyChangeHandler(AbstractScaledWidgetModel.PROP_SCALE_FONT, scaleFontHandler);
// scale format
IWidgetPropertyChangeHandler numericFormatHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(Object oldValue, Object newValue, IFigure figure) {
AbstractScaledWidgetFigure scaleFigure = (AbstractScaledWidgetFigure) figure;
setScaleFormat(scaleFigure, (String) newValue);
return false;
}
};
setPropertyChangeHandler(AbstractScaledWidgetModel.PROP_SCALE_FORMAT, numericFormatHandler);
// value label format
IWidgetPropertyChangeHandler valueFormatHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(Object oldValue, Object newValue, IFigure figure) {
AbstractScaledWidgetFigure scaleFigure = (AbstractScaledWidgetFigure) figure;
setValueLabelFormat(scaleFigure, (String) newValue);
return false;
}
};
setPropertyChangeHandler(AbstractScaledWidgetModel.PROP_VALUE_LABEL_FORMAT, valueFormatHandler);
}
use of org.diirt.vtype.VType in project yamcs-studio by yamcs.
the class ArrayEditPart method registerLoadPVDataTypeListener.
private void registerLoadPVDataTypeListener() {
if (getExecutionMode() == ExecutionMode.RUN_MODE) {
final ArrayModel model = getWidgetModel();
IPV pv = getPV();
if (pv != null) {
if (pvDataTypeListener == null)
pvDataTypeListener = new IPVListener.Stub() {
@Override
public void valueChanged(IPV pv) {
VType value = pv.getValue();
if (value != null) {
model.setArrayLength(VTypeHelper.getSize(value));
BasicDataType dataType = VTypeHelper.getBasicDataType(value);
model.setPropertyValue(ArrayModel.PROP_DATA_TYPE, mapBasicDataTypeToArrayType(dataType));
}
}
};
pv.addListener(pvDataTypeListener);
}
}
}
use of org.diirt.vtype.VType in project yamcs-studio by yamcs.
the class ByteMonitorEditPart method registerPropertyChangeHandlers.
/* (non-Javadoc)
* @see org.csstudio.opibuilder.editparts.AbstractBaseEditPart#registerPropertyChangeHandlers()
*/
@Override
protected void registerPropertyChangeHandlers() {
super.registerBasePropertyChangeHandlers();
getFigure().setEnabled(getWidgetModel().isEnabled() && (getExecutionMode() == ExecutionMode.RUN_MODE));
removeAllPropertyChangeHandlers(AbstractWidgetModel.PROP_ENABLED);
// enable
IWidgetPropertyChangeHandler enableHandler = new IWidgetPropertyChangeHandler() {
public boolean handleChange(Object oldValue, Object newValue, IFigure figure) {
if (getExecutionMode() == ExecutionMode.RUN_MODE)
figure.setEnabled((Boolean) newValue);
return false;
}
};
setPropertyChangeHandler(AbstractWidgetModel.PROP_ENABLED, enableHandler);
// PV_Value
IWidgetPropertyChangeHandler pvhandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
boolean succeed = true;
if ((newValue != null) && (newValue instanceof VType)) {
Number number = VTypeHelper.getNumber(((VType) newValue));
if (number != null) {
setValue(number);
} else
succeed = false;
} else {
succeed = false;
}
if (!succeed) {
setValue(0);
ConsoleUtil.writeError(NLS.bind("{0} does not accept non-numeric value.", getWidgetModel().getName()));
}
return false;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_PVVALUE, pvhandler);
// on color
IWidgetPropertyChangeHandler colorHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ByteMonitorFigure figure = (ByteMonitorFigure) refreshableFigure;
figure.setOnColor(((OPIColor) newValue).getSWTColor());
figure.drawValue();
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_ON_COLOR, colorHandler);
// off color
colorHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ByteMonitorFigure figure = (ByteMonitorFigure) refreshableFigure;
figure.setOffColor(((OPIColor) newValue).getSWTColor());
figure.drawValue();
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_OFF_COLOR, colorHandler);
// change orientation of the bit display
IWidgetPropertyChangeHandler horizontalHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(Object oldValue, Object newValue, IFigure refreshableFigure) {
ByteMonitorFigure figure = (ByteMonitorFigure) refreshableFigure;
figure.setHorizontal((Boolean) newValue);
ByteMonitorModel model = getWidgetModel();
if (// from vertical to horizontal
(Boolean) newValue)
model.setLocation(model.getLocation().x - model.getSize().height / 2 + model.getSize().width / 2, model.getLocation().y + model.getSize().height / 2 - model.getSize().width / 2);
else
// from horizontal to vertical
model.setLocation(model.getLocation().x + model.getSize().width / 2 - model.getSize().height / 2, model.getLocation().y - model.getSize().width / 2 + model.getSize().height / 2);
model.setSize(model.getSize().height, model.getSize().width);
figure.drawValue();
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_HORIZONTAL, horizontalHandler);
// change the display order of the bits
IWidgetPropertyChangeHandler reverseBitsHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(Object oldValue, Object newValue, IFigure refreshableFigure) {
ByteMonitorFigure figure = (ByteMonitorFigure) refreshableFigure;
figure.setReverseBits((Boolean) newValue);
figure.drawValue();
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_BIT_REVERSE, reverseBitsHandler);
// Set the bit to use as a starting point
IWidgetPropertyChangeHandler startBitHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(Object oldValue, Object newValue, IFigure refreshableFigure) {
ByteMonitorFigure figure = (ByteMonitorFigure) refreshableFigure;
figure.setStartBit((Integer) newValue);
figure.drawValue();
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_START_BIT, startBitHandler);
// Set the number of bits to display
IWidgetPropertyChangeHandler numBitsHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(Object oldValue, Object newValue, IFigure refreshableFigure) {
ByteMonitorFigure figure = (ByteMonitorFigure) refreshableFigure;
figure.setNumBits((Integer) newValue);
figure.drawValue();
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_NUM_BITS, numBitsHandler);
// Square LED
IWidgetPropertyChangeHandler squareLEDHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ByteMonitorFigure bm = (ByteMonitorFigure) refreshableFigure;
bm.setSquareLED((Boolean) newValue);
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_SQUARE_LED, squareLEDHandler);
// LED spacing
IWidgetPropertyChangeHandler ledBorderWidthHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ByteMonitorFigure bm = (ByteMonitorFigure) refreshableFigure;
bm.setLedBorderWidth((int) newValue);
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_LED_BORDER, ledBorderWidthHandler);
// LED border color
IWidgetPropertyChangeHandler ledBorderColorHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ByteMonitorFigure bm = (ByteMonitorFigure) refreshableFigure;
bm.setLedBorderColor(((OPIColor) newValue).getSWTColor());
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_LED_BORDER_COLOR, ledBorderColorHandler);
// effect 3D
IWidgetPropertyChangeHandler effect3DHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ByteMonitorFigure bmFig = (ByteMonitorFigure) refreshableFigure;
bmFig.setEffect3D((Boolean) newValue);
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_EFFECT3D, effect3DHandler);
// labels
IWidgetPropertyChangeHandler labelsHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ByteMonitorFigure bmFig = (ByteMonitorFigure) refreshableFigure;
ByteMonitorModel model = getWidgetModel();
bmFig.setLabels(model.getLabels());
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_LABELS, labelsHandler);
// Set the LED rendering style
IWidgetPropertyChangeHandler packHandler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(Object oldValue, Object newValue, IFigure refreshableFigure) {
ByteMonitorFigure figure = (ByteMonitorFigure) refreshableFigure;
figure.setPackedLEDs((Boolean) newValue);
figure.drawValue();
return true;
}
};
setPropertyChangeHandler(ByteMonitorModel.PROP_PACK_LEDS, packHandler);
}
use of org.diirt.vtype.VType in project yamcs-studio by yamcs.
the class ComboEditPart method registerLoadItemsListener.
/**
*/
private void registerLoadItemsListener() {
// load items from PV
if (getExecutionMode() == ExecutionMode.RUN_MODE) {
if (getWidgetModel().isItemsFromPV()) {
IPV pv = getPV(AbstractPVWidgetModel.PROP_PVNAME);
if (pv != null) {
if (loadItemsFromPVListener == null)
loadItemsFromPVListener = new IPVListener.Stub() {
@Override
public void valueChanged(IPV pv) {
VType value = pv.getValue();
if (value != null && value instanceof VEnum) {
List<String> items = ((VEnum) value).getLabels();
getWidgetModel().setPropertyValue(ComboModel.PROP_ITEMS, items);
}
}
};
pv.addListener(loadItemsFromPVListener);
}
}
}
}
use of org.diirt.vtype.VType in project yamcs-studio by yamcs.
the class ComboEditPart method updateCombo.
/**
* @param items
*/
private void updateCombo(List<String> items) {
if (items != null && getExecutionMode() == ExecutionMode.RUN_MODE) {
combo.removeAll();
for (String item : items) {
combo.add(item);
}
// write value to pv if pv name is not empty
if (getWidgetModel().getPVName().trim().length() > 0) {
if (comboSelectionListener != null)
combo.removeSelectionListener(comboSelectionListener);
comboSelectionListener = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
// by clicking on an item.
if (e.stateMask == SWT.BUTTON1)
setPVValue(AbstractPVWidgetModel.PROP_PVNAME, combo.getText());
else {
// Ignore selections from mouse wheel (stateMask == 0).
// Unfortunately this also ignores selections via keyboard,
// which has been discussed in
// https://github.com/ControlSystemStudio/cs-studio/issues/2276
// Restore current value to UI.
final String current = VTypeHelper.getString((VType) getPropertyValue(ComboModel.PROP_PVVALUE));
final int sel = Arrays.asList(combo.getItems()).indexOf(current);
if (sel >= 0)
combo.select(sel);
else
combo.deselectAll();
}
}
};
combo.addSelectionListener(comboSelectionListener);
}
}
}
Aggregations