@Override public void append(StringBuilder sb, int deviceId) { if (dataStreams != null && this.deviceId == deviceId) { for (DataStream dataStream : dataStreams) { append(sb, dataStream.pin, dataStream.pinType); } } }
@Override public void updateValue(Widget oldWidget) { if (oldWidget instanceof MultiPinWidget) { MultiPinWidget multiPinWidget = (MultiPinWidget) oldWidget; if (multiPinWidget.dataStreams != null) { for (DataStream dataStream : multiPinWidget.dataStreams) { updateIfSame(multiPinWidget.deviceId, dataStream.pin, dataStream.pinType, dataStream.value); } } } }
@Override public String getJsonValue() { if (dataStreams == null) { return "[]"; } StringJoiner sj = new StringJoiner(",", "[", "]"); if (isSplitMode()) { for (DataStream dataStream : dataStreams) { if (dataStream.value == null) { sj.add("\"\""); } else { sj.add("\"" + dataStream.value + "\""); } } } else { if (dataStreams[0].notEmptyAndIsValid()) { for (String pinValue : dataStreams[0].value.split(BODY_SEPARATOR_STRING)) { sj.add("\"" + pinValue + "\""); } } } return sj.toString(); }
private static String makeBody(DashBoard dash, int deviceId, short pin, PinType pinType, String pinValue) { Widget widget = dash.findWidgetByPin(deviceId, pin, pinType); if (widget instanceof OnePinWidget) { return ((OnePinWidget) widget).makeHardwareBody(); } else if (widget instanceof MultiPinWidget) { return ((MultiPinWidget) widget).makeHardwareBody(pin, pinType); } return DataStream.makeHardwareBody(pinType, pin, pinValue); }
if (multiPinWidget.isAssignedToDeviceSelector() && key.isSame(id, multiPinWidget)) { DeviceSelector deviceSelector = getDeviceSelector(multiPinWidget.deviceId); if (deviceSelector != null && ArrayUtil.contains(deviceSelector.deviceIds, key.deviceId)) {
public String makeHardwareBody(short pinIn, PinType pinType) { if (dataStreams == null) { return null; } if (isSplitMode()) { for (DataStream dataStream : dataStreams) { if (dataStream.isSame(pinIn, pinType)) { return dataStream.makeHardwareBody(); } } } else { if (dataStreams[0].notEmptyAndIsValid()) { StringBuilder sb = new StringBuilder(dataStreams[0].makeHardwareBody()); for (int i = 1; i < dataStreams.length; i++) { if (dataStreams[i].notEmptyAndIsValid()) { sb.append(BODY_SEPARATOR).append(dataStreams[i].value); } } return sb.toString(); } } return null; }