private void GenericUpdateVisualization(bool shouldBeEnabled)
			{
				if (shouldBeEnabled && LastVisualState != LastVisualState.Enabled)
				{
					LastVisualState = LastVisualState.Enabled;
					Animation.RepeatBehavior = RepeatBehavior.Forever;
					Animation.Begin();
				}
				else if (shouldBeEnabled == false && LastVisualState != LastVisualState.Disabled)
				{
					LastVisualState = LastVisualState.Disabled;
					Animation.Stop();
				}
			}
 private void GenericUpdateVisualization(bool shouldBeEnabled)
 {
     if (shouldBeEnabled && LastVisualState != LastVisualState.Enabled)
     {
         LastVisualState          = LastVisualState.Enabled;
         Animation.RepeatBehavior = RepeatBehavior.Forever;
         Animation.Begin();
     }
     else if (shouldBeEnabled == false && LastVisualState != LastVisualState.Disabled)
     {
         LastVisualState = LastVisualState.Disabled;
         Animation.Stop();
     }
 }
		private void UpdateModelState()
		{
			// ArterialBloodPump
			if (Machine.ExtracorporealBloodCircuit.ArterialBloodPump.SpeedOfMotor > 0 && _visualStateBloodPump!=LastVisualState.Enabled)
			{
				_visualStateBloodPump = LastVisualState.Enabled;
				_animationBloodPumpEnabled.RepeatBehavior = RepeatBehavior.Forever;
				_animationBloodPumpEnabled.Begin();
			}
			else if (Machine.ExtracorporealBloodCircuit.ArterialBloodPump.SpeedOfMotor == 0 && _visualStateBloodPump != LastVisualState.Disabled)
			{
				_visualStateBloodPump = LastVisualState.Disabled;
				_animationBloodPumpEnabled.Stop();
			}

			// HeparinPump
			if (Machine.ExtracorporealBloodCircuit.HeparinPump.Enabled && _visualStateHeparinPump != LastVisualState.Enabled)
			{
				_visualStateHeparinPump = LastVisualState.Enabled;
				_animationHeparinPumpEnabled.RepeatBehavior = RepeatBehavior.Forever;
				_animationHeparinPumpEnabled.Begin();
			}
			else if (Machine.ExtracorporealBloodCircuit.HeparinPump.Enabled==false && _visualStateHeparinPump != LastVisualState.Disabled)
			{
				_visualStateHeparinPump = LastVisualState.Disabled;
				_animationHeparinPumpEnabled.Stop();
			}

			// WaterPreparation
			if (Machine.DialyzingFluidDeliverySystem.WaterPreparation.WaterHeaterEnabled() && _visualStateWaterPreparation != LastVisualState.Enabled)
			{
				_visualStateWaterPreparation = LastVisualState.Enabled;
				//_animationEnableWaterPreparation.RepeatBehavior = RepeatBehavior.Forever;
				_animationDisableWaterPreparation.Stop();
				_animationEnableWaterPreparation.Begin();
			}
			else if (Machine.DialyzingFluidDeliverySystem.WaterPreparation.WaterHeaterEnabled()==false && _visualStateWaterPreparation != LastVisualState.Disabled)
			{
				_visualStateWaterPreparation = LastVisualState.Disabled;
				_animationEnableWaterPreparation.Stop();
				_animationDisableWaterPreparation.Begin();
			}

			// DialyzingFluidPreparation
			if (Machine.DialyzingFluidDeliverySystem.DialyzingFluidPreparation.PumpSpeed > 0 && _visualStateDialyzingFluidPreparation != LastVisualState.Enabled)
			{
				_visualStateDialyzingFluidPreparation = LastVisualState.Enabled;
				_animationDialyzingFluidPreparationEnabled.RepeatBehavior = RepeatBehavior.Forever;
				_animationDialyzingFluidPreparationEnabled.Begin();
			}
			else if (Machine.DialyzingFluidDeliverySystem.DialyzingFluidPreparation.PumpSpeed == 0 && _visualStateDialyzingFluidPreparation != LastVisualState.Disabled)
			{
				_visualStateDialyzingFluidPreparation = LastVisualState.Disabled;
				_animationDialyzingFluidPreparationEnabled.Stop();
			}

			// UltraFiltration
			if (Machine.DialyzingFluidDeliverySystem.DialyzingUltraFiltrationPump.PumpSpeed > 0 && _visualStateUltraFiltration != LastVisualState.Enabled)
			{
				_visualStateUltraFiltration = LastVisualState.Enabled;
				_animationUltraFiltrationEnabled.RepeatBehavior = RepeatBehavior.Forever;
				_animationUltraFiltrationEnabled.Begin();
			}
			else if (Machine.DialyzingFluidDeliverySystem.DialyzingUltraFiltrationPump.PumpSpeed == 0 && _visualStateUltraFiltration != LastVisualState.Disabled)
			{
				_visualStateUltraFiltration = LastVisualState.Disabled;
				_animationUltraFiltrationEnabled.Stop();
			}

			// PumpToBalanceChamber
			if (Machine.DialyzingFluidDeliverySystem.PumpToBalanceChamber.PumpSpeed > 0 && _visualStatePumpToBalanceChamber != LastVisualState.Enabled)
			{
				_visualStatePumpToBalanceChamber = LastVisualState.Enabled;
				_animationPumpToBalanceChamberEnabled.RepeatBehavior = RepeatBehavior.Forever;
				_animationPumpToBalanceChamberEnabled.Begin();
			}
			else if (Machine.DialyzingFluidDeliverySystem.PumpToBalanceChamber.PumpSpeed == 0 && _visualStatePumpToBalanceChamber != LastVisualState.Disabled)
			{
				_visualStatePumpToBalanceChamber = LastVisualState.Disabled;
				_animationPumpToBalanceChamberEnabled.Stop();
			}

			// VenousTubingValve
			if (Machine.ExtracorporealBloodCircuit.VenousTubingValve.ValveState == ValveState.Open && _visualStateVenousTubingValve != LastVisualState.Enabled)
			{
				_visualStateVenousTubingValve = LastVisualState.Enabled;
				_animationCloseVenousTubingValve.Stop();
				_animationOpenVenousTubingValve.Begin();
			}
			else if (Machine.ExtracorporealBloodCircuit.VenousTubingValve.ValveState == ValveState.Closed && _visualStateVenousTubingValve != LastVisualState.Disabled)
			{
				_visualStateVenousTubingValve = LastVisualState.Disabled;
				_animationOpenVenousTubingValve.Stop();
				_animationCloseVenousTubingValve.Begin();
			}

			// ArterialChamber
			if (Machine.ExtracorporealBloodCircuit.ArterialChamber.MainFlow.Outgoing.Forward.HasWaterOrBigWaste() && _visualStateArterialChamber != LastVisualState.Enabled)
			{
				_visualStateArterialChamber = LastVisualState.Enabled;
				_animationArterialChamberDripping.RepeatBehavior = RepeatBehavior.Forever;
				_animationArterialChamberNotDripping.Stop();
				_animationArterialChamberDripping.Begin();
			}
			else if (Machine.ExtracorporealBloodCircuit.ArterialChamber.MainFlow.Outgoing.Forward.HasWaterOrBigWaste()==false && _visualStateArterialChamber != LastVisualState.Disabled)
			{
				_visualStateArterialChamber = LastVisualState.Disabled;
				_animationArterialChamberDripping.Stop();
				_animationArterialChamberNotDripping.Begin();
			}

			// VenousChamber
			if (Machine.ExtracorporealBloodCircuit.VenousChamber.MainFlow.Outgoing.Forward.HasWaterOrBigWaste() && _visualStateVenousChamber != LastVisualState.Enabled)
			{
				_visualStateVenousChamber = LastVisualState.Enabled;
				_animationVenousChamberDripping.RepeatBehavior = RepeatBehavior.Forever;
				_animationVenousChamberNotDripping.Stop();
				_animationVenousChamberDripping.Begin();
			}
			else if (Machine.ExtracorporealBloodCircuit.VenousChamber.MainFlow.Outgoing.Forward.HasWaterOrBigWaste() == false && _visualStateVenousChamber != LastVisualState.Disabled)
			{
				_visualStateVenousChamber = LastVisualState.Disabled;
				_animationVenousChamberDripping.Stop();
				_animationVenousChamberNotDripping.Begin();
			}
			
			foreach (var visualFlow in VisualFlows)
			{
				visualFlow.UpdateVisualization();
			}
			UpdateSelectedModelElementInfoText();
			UpdatePatientInfoText();
			UpdateFaultVisualization();

		}
        private void UpdateModelState()
        {
            // ArterialBloodPump
            if (Machine.ExtracorporealBloodCircuit.ArterialBloodPump.SpeedOfMotor > 0 && _visualStateBloodPump != LastVisualState.Enabled)
            {
                _visualStateBloodPump = LastVisualState.Enabled;
                _animationBloodPumpEnabled.RepeatBehavior = RepeatBehavior.Forever;
                _animationBloodPumpEnabled.Begin();
            }
            else if (Machine.ExtracorporealBloodCircuit.ArterialBloodPump.SpeedOfMotor == 0 && _visualStateBloodPump != LastVisualState.Disabled)
            {
                _visualStateBloodPump = LastVisualState.Disabled;
                _animationBloodPumpEnabled.Stop();
            }

            // HeparinPump
            if (Machine.ExtracorporealBloodCircuit.HeparinPump.Enabled && _visualStateHeparinPump != LastVisualState.Enabled)
            {
                _visualStateHeparinPump = LastVisualState.Enabled;
                _animationHeparinPumpEnabled.RepeatBehavior = RepeatBehavior.Forever;
                _animationHeparinPumpEnabled.Begin();
            }
            else if (Machine.ExtracorporealBloodCircuit.HeparinPump.Enabled == false && _visualStateHeparinPump != LastVisualState.Disabled)
            {
                _visualStateHeparinPump = LastVisualState.Disabled;
                _animationHeparinPumpEnabled.Stop();
            }

            // WaterPreparation
            if (Machine.DialyzingFluidDeliverySystem.WaterPreparation.WaterHeaterEnabled() && _visualStateWaterPreparation != LastVisualState.Enabled)
            {
                _visualStateWaterPreparation = LastVisualState.Enabled;
                //_animationEnableWaterPreparation.RepeatBehavior = RepeatBehavior.Forever;
                _animationDisableWaterPreparation.Stop();
                _animationEnableWaterPreparation.Begin();
            }
            else if (Machine.DialyzingFluidDeliverySystem.WaterPreparation.WaterHeaterEnabled() == false && _visualStateWaterPreparation != LastVisualState.Disabled)
            {
                _visualStateWaterPreparation = LastVisualState.Disabled;
                _animationEnableWaterPreparation.Stop();
                _animationDisableWaterPreparation.Begin();
            }

            // DialyzingFluidPreparation
            if (Machine.DialyzingFluidDeliverySystem.DialyzingFluidPreparation.PumpSpeed > 0 && _visualStateDialyzingFluidPreparation != LastVisualState.Enabled)
            {
                _visualStateDialyzingFluidPreparation = LastVisualState.Enabled;
                _animationDialyzingFluidPreparationEnabled.RepeatBehavior = RepeatBehavior.Forever;
                _animationDialyzingFluidPreparationEnabled.Begin();
            }
            else if (Machine.DialyzingFluidDeliverySystem.DialyzingFluidPreparation.PumpSpeed == 0 && _visualStateDialyzingFluidPreparation != LastVisualState.Disabled)
            {
                _visualStateDialyzingFluidPreparation = LastVisualState.Disabled;
                _animationDialyzingFluidPreparationEnabled.Stop();
            }

            // UltraFiltration
            if (Machine.DialyzingFluidDeliverySystem.DialyzingUltraFiltrationPump.PumpSpeed > 0 && _visualStateUltraFiltration != LastVisualState.Enabled)
            {
                _visualStateUltraFiltration = LastVisualState.Enabled;
                _animationUltraFiltrationEnabled.RepeatBehavior = RepeatBehavior.Forever;
                _animationUltraFiltrationEnabled.Begin();
            }
            else if (Machine.DialyzingFluidDeliverySystem.DialyzingUltraFiltrationPump.PumpSpeed == 0 && _visualStateUltraFiltration != LastVisualState.Disabled)
            {
                _visualStateUltraFiltration = LastVisualState.Disabled;
                _animationUltraFiltrationEnabled.Stop();
            }

            // PumpToBalanceChamber
            if (Machine.DialyzingFluidDeliverySystem.PumpToBalanceChamber.PumpSpeed > 0 && _visualStatePumpToBalanceChamber != LastVisualState.Enabled)
            {
                _visualStatePumpToBalanceChamber = LastVisualState.Enabled;
                _animationPumpToBalanceChamberEnabled.RepeatBehavior = RepeatBehavior.Forever;
                _animationPumpToBalanceChamberEnabled.Begin();
            }
            else if (Machine.DialyzingFluidDeliverySystem.PumpToBalanceChamber.PumpSpeed == 0 && _visualStatePumpToBalanceChamber != LastVisualState.Disabled)
            {
                _visualStatePumpToBalanceChamber = LastVisualState.Disabled;
                _animationPumpToBalanceChamberEnabled.Stop();
            }

            // VenousTubingValve
            if (Machine.ExtracorporealBloodCircuit.VenousTubingValve.ValveState == ValveState.Open && _visualStateVenousTubingValve != LastVisualState.Enabled)
            {
                _visualStateVenousTubingValve = LastVisualState.Enabled;
                _animationCloseVenousTubingValve.Stop();
                _animationOpenVenousTubingValve.Begin();
            }
            else if (Machine.ExtracorporealBloodCircuit.VenousTubingValve.ValveState == ValveState.Closed && _visualStateVenousTubingValve != LastVisualState.Disabled)
            {
                _visualStateVenousTubingValve = LastVisualState.Disabled;
                _animationOpenVenousTubingValve.Stop();
                _animationCloseVenousTubingValve.Begin();
            }

            // ArterialChamber
            if (Machine.ExtracorporealBloodCircuit.ArterialChamber.MainFlow.Outgoing.Forward.HasWaterOrBigWaste() && _visualStateArterialChamber != LastVisualState.Enabled)
            {
                _visualStateArterialChamber = LastVisualState.Enabled;
                _animationArterialChamberDripping.RepeatBehavior = RepeatBehavior.Forever;
                _animationArterialChamberNotDripping.Stop();
                _animationArterialChamberDripping.Begin();
            }
            else if (Machine.ExtracorporealBloodCircuit.ArterialChamber.MainFlow.Outgoing.Forward.HasWaterOrBigWaste() == false && _visualStateArterialChamber != LastVisualState.Disabled)
            {
                _visualStateArterialChamber = LastVisualState.Disabled;
                _animationArterialChamberDripping.Stop();
                _animationArterialChamberNotDripping.Begin();
            }

            // VenousChamber
            if (Machine.ExtracorporealBloodCircuit.VenousChamber.MainFlow.Outgoing.Forward.HasWaterOrBigWaste() && _visualStateVenousChamber != LastVisualState.Enabled)
            {
                _visualStateVenousChamber = LastVisualState.Enabled;
                _animationVenousChamberDripping.RepeatBehavior = RepeatBehavior.Forever;
                _animationVenousChamberNotDripping.Stop();
                _animationVenousChamberDripping.Begin();
            }
            else if (Machine.ExtracorporealBloodCircuit.VenousChamber.MainFlow.Outgoing.Forward.HasWaterOrBigWaste() == false && _visualStateVenousChamber != LastVisualState.Disabled)
            {
                _visualStateVenousChamber = LastVisualState.Disabled;
                _animationVenousChamberDripping.Stop();
                _animationVenousChamberNotDripping.Begin();
            }

            foreach (var visualFlow in VisualFlows)
            {
                visualFlow.UpdateVisualization();
            }
            UpdateSelectedModelElementInfoText();
            UpdatePatientInfoText();
            UpdateFaultVisualization();
        }