@Override
        public void update(Observable o, Object arg) {
            if (arg instanceof ViewControlMessage) {
                ViewControlMessage msg = (ViewControlMessage) arg;
                if (msg.type.equals(ViewControlMessage.SENSOR_INFO_UPDATED)) {
                    refreshTableView();
                    refreshSensorIcons();
                } else if (msg.type.equals(ViewControlMessage.ALARM_INFO_UPDATED)) {
                    AlarmInfo alarm = (AlarmInfo) msg.data;
                    SensorInfo sensor = alarm.getRelatedSensorId();
                    SensorState newState;
                    switch (alarm.getAlarmType()) {
                        case AlarmProtocol.ALARM_TYPE_FIRE:
                        case AlarmProtocol.ALARM_TYPE_SECURITY:
                            newState = new SensorStateHot();
                            sensorIcons.get(sensor.getSensorId()).changeState(newState);
                            break;
                        case AlarmProtocol.ALARM_TYPE_FAULT:
                            newState = new SensorStateDown();
                            sensorIcons.get(sensor.getSensorId()).changeState(newState);
                            break;
                        default:
                            break;
                    }
                }
            }
        }