/*!
 *
 * Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved.
 * \copyright
 * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
 * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
 *
 * \file    TreatmentAdjustmentUltrafiltrationStart.qml
 * \author  (last)      Vy
 * \date    (last)      16-Mar-2023
 * \author  (original)  Behrouz NematiPour
 * \date    (original)  12-May-2020
 *
 */

// Qt
import QtQuick 2.12

// Project

//  Qml imports
import "qrc:/globals"
import "qrc:/components"
import "qrc:/compounds"

/*!
 * \brief   TreatmentAdjustmentUltrafiltrationStart.qml is the screen
 *          To adjust the treatment ultrafiltration
 */
Item { id: _root
    objectName: "_TreatmentAdjustmentUltrafiltrationStart"  // SquishQt testability

    readonly property real volumeGoal       : isIsolatedUf ? vTreatmentIsolatedUF.setVolume         : vTreatmentUltrafiltration.setVolume
    readonly property real volumeRemoved    : isIsolatedUf ? vTreatmentIsolatedUF.volumeDelivered   : vTreatmentUltrafiltration.volumeRemoved

    signal editClicked()
    signal isolatedUfClicked()
    signal pauseClicked()
    signal resumeClicked()

    signal pauseIsoUfClicked()
    signal resumeIsoUfClicked()
    signal endIsoUfClicked()

    TreatmentAdjustmentUltrafiltrationMetrics { id: _ufMetrics
        objectName: "_ufMetrics"
        anchors {
            top             : parent.top
            topMargin       : Variables.defaultMargin
            horizontalCenter: parent.horizontalCenter
        }
        leftLabel   : isIsolatedUf ? qsTr("Isolated UF Volume Removed") : qsTr("UF Volume Removed")
        leftUnit    : Variables.unitVolume
        leftValue   : _root.volumeRemoved.toFixed(Variables.ultrafiltrationPrecision)
        rightLabel  : isIsolatedUf ? qsTr("Isolated UF Volume Goal") : qsTr("UF Volume Goal")
        rightUnit   : Variables.unitVolume
        rightValue  : _root.volumeGoal.toFixed(Variables.ultrafiltrationPrecision)
    }

    Item { id: _contentArea
        objectName: "_contentArea"
        anchors {
            top         : _ufMetrics.bottom
            bottom      : _buttonArea.top
            left        : parent.left
            right       : parent.right
        }

        ProgressBarEx { id: _progressBarEx
            objectName  : "_progressBarEx"
            anchors {
                centerIn    : parent
            }
            decimal     : Variables.ultrafiltrationPrecision
            minimum     : vTreatmentRanges.treatmentRanges_Ultrafiltration_Volume_Min
            maximum     : _root.volumeGoal
            value       : _root.volumeRemoved
            valueEx     : _root.volumeRemoved
        }
    }

    Row { id: _buttonArea
        objectName: "_buttonArea"
        anchors {
            bottom          : parent.bottom
            bottomMargin    : Variables.defaultMargin
            horizontalCenter: parent.horizontalCenter
        }
        spacing             : Variables.defaultMargin

        TouchRect { id: _pauseResumeButton
            objectName  : "_pauseResumeButton"
            width       : Variables.defaultButtonWidth
            height      : Variables.defaultButtonHeight
            text {
                text        : isIsolatedUf ? isUFPaused ? qsTr("Resume Isolated UF")    : qsTr("Pause Isolated UF"):
                                             isUFPaused ? qsTr("Resume UF")             : qsTr("Pause UF")
                font.weight : Font.Medium
            }
            isDefault   : true
            onClicked   : isIsolatedUf ? isUFPaused ? _root.resumeIsoUfClicked()    : _root.pauseIsoUfClicked() :
                                         isUFPaused ? _root.resumeClicked()         : _root.pauseClicked()
        }

        TouchRect { id: _editButton
            objectName  : "_editButton"
            width       : Variables.defaultButtonWidth
            height      : Variables.defaultButtonHeight
            text {
                text        : isIsolatedUf ? qsTr("Edit Isolated UF") : qsTr("Edit UF")
                font.weight : Font.Medium
            }
            isDefault   : true
            onClicked   : isIsolatedUf ? _root.isolatedUfClicked() : _root.editClicked()
        }

        TouchRect { id: _isolatedUfButton
            objectName  : "_isolatedUfButton"
            width       : Variables.defaultButtonWidth
            height      : Variables.defaultButtonHeight
            text {
                text        : isIsolatedUf ? qsTr("End Isolated UF") : qsTr("Isolated UF")
                font.weight : Font.Medium
            }
            isDefault   : true
            onClicked   : isIsolatedUf ? _root.endIsoUfClicked() : _root.isolatedUfClicked()
        }
    }
}
