// need to update the existing dirty host
getActor().setHost((Host) event.getSource());
getActorPA().setBean(getActor());
} else if (event.getType() == UGateEvent.Type.WIRELESS_REMOTE_NODE_COMMITTED) {
// need to update the existing dirty remote node
final RemoteNode rn = (RemoteNode) event.getSource();
final boolean isViewNode = rn.getAddress()
.equalsIgnoreCase(getRemoteNode().getAddress());
final LinkedHashSet<RemoteNode> rns = new LinkedHashSet<>(
ServiceProvider.IMPL.getRemoteNodeService()
.findForHost(getActor().getHost().getId()));
getActor().getHost().setRemoteNodes(rns);
RemoteNode prn = null;
if (isViewNode && event.getNewValue() == null) {
// node removed- show another node
prn = getActor().getHost().getRemoteNodes().iterator()
.next();
} else if (isViewNode) {
// update performed- refresh node
for (final RemoteNode nrn : getActor().getHost().getRemoteNodes()) {
if (nrn.getAddress().equalsIgnoreCase(rn.getAddress())) {
prn = nrn;
break;
}
}
}
setHelpText(RS.rbLabel(KEY.WIRELESS_NODE_REMOTE_SAVED_LOCAL, rn.getAddress()));
// synchronize the remote node with the remote device
if (prn != null) {
getRemoteNodePA().setBean(prn);
if (!prn.isDeviceSynchronized() && prn.getDeviceAutoSynchronize() == 1) {
// automatically send the changes to the remote node device
createCommandService(Command.SENSOR_SEND_SETTINGS, true);
} else if (!prn.isDeviceSynchronized() && isViewNode) {
validateRemoteNodeSynchronization();
}
}
} else if (event.getType() == UGateEvent.Type.WIRELESS_DATA_TX_SUCCESS) {
final RemoteNode rn = (RemoteNode) event.getSource();
if (rn.getAddress().equalsIgnoreCase(getRemoteNode().getAddress())) {
settingsSetTimeline.stop();
}
} else if (event.getType() == UGateEvent.Type.WIRELESS_DATA_RX_SUCCESS) {
final RemoteNode rn = (RemoteNode) event.getSource();
if (event.getNewValue() instanceof RxTxRemoteNodeReadingDTO) {
final RxTxRemoteNodeReadingDTO sr = (RxTxRemoteNodeReadingDTO) event.getNewValue();
ServiceProvider.IMPL.getRemoteNodeService().saveReading(sr.getRemoteNodeReading());
} else if (event.getNewValue() instanceof RxTxRemoteNodeDTO) {
final RxTxRemoteNodeDTO ndto = (RxTxRemoteNodeDTO) event.getNewValue();
if (!RemoteNodeType.remoteEquivalent(rn, ndto.getRemoteNode())) {
// remote device values do not match the local device values
rn.setDeviceSynchronized(false);
ndto.getRemoteNode().setDeviceSynchronized(false);
if (rn.getDeviceAutoSynchronize() == 1) {
// automatically send the changes to the remote node
// (consume event so no other notifications for the
// event will be processed)
event.setConsumed(true);
createCommandService(Command.SENSOR_SEND_SETTINGS, true);
} else if (rn.getAddress().equalsIgnoreCase(getRemoteNode().getAddress())) {
validateRemoteNodeSynchronization();
}
}
}
} else if (event.getType() == UGateEvent.Type.WIRELESS_REMOTE_NODE_CHANGED) {