import QtQuick                  2.3
import QtQuick.Controls         1.2
import QtQuick.Controls.Styles  1.4
import QtQuick.Dialogs          1.2
import QtQml                    2.2

import QGroundControl                   1.0
import QGroundControl.Airmap            1.0
import QGroundControl.Airspace          1.0
import QGroundControl.Controls          1.0
import QGroundControl.Palette           1.0
import QGroundControl.ScreenTools       1.0
import QGroundControl.SettingsManager   1.0

Rectangle {
    id:                         _root
    height:                     questionCol.height + (ScreenTools.defaultFontPixelHeight * 1.25)
    color:                      qgcPal.windowShade
    property var feature:       null
    QGCPalette {
        id: qgcPal
        colorGroupEnabled: enabled
    }
    Column {
        id:                 questionCol
        spacing:            ScreenTools.defaultFontPixelHeight * 0.5
        anchors.margins:    ScreenTools.defaultFontPixelWidth
        anchors.right:      parent.right
        anchors.left:       parent.left
        anchors.verticalCenter: parent.verticalCenter
        QGCLabel {
            text:           feature ? feature.description : ""
            anchors.right:  parent.right
            anchors.left:   parent.left
            wrapMode:       Text.WordWrap
            visible:        feature ?  (feature.type !== AirspaceRuleFeature.Boolean) : false
        }
        QGCTextField {
            text:           feature ? (feature.value ? feature.value : "") : ""
            visible:        feature ? (feature.type !== AirspaceRuleFeature.Boolean) : false
            showUnits:      true
            unitsLabel: {
                if(feature) {
                    if(feature.unit == AirspaceRuleFeature.Kilogram)
                        return "kg";
                    if(feature.unit == AirspaceRuleFeature.Meters)
                        return "m";
                    if(feature.unit == AirspaceRuleFeature.MetersPerSecond)
                        return "m/s";
                }
                return ""
            }
            anchors.right:  parent.right
            anchors.left:   parent.left
            inputMethodHints: feature ? (feature.type === AirspaceRuleFeature.Float ? Qt.ImhFormattedNumbersOnly : Qt.ImhNone) : Qt.ImhNone
            onAccepted: {
                if(feature)
                    feature.value = parseFloat(text)
            }
            onEditingFinished: {
                if(feature)
                    feature.value = parseFloat(text)
            }
        }
        Item {
            height:         Math.max(checkBox.height, label.height)
            anchors.right:  parent.right
            anchors.left:   parent.left
            visible:        feature ? (feature.type === AirspaceRuleFeature.Boolean) : false
            QGCCheckBox {
                id:             checkBox
                text:           ""
                onClicked:      { if(feature) {feature.value = checked} }
                anchors.left:   parent.left
                anchors.verticalCenter: parent.verticalCenter
                Component.onCompleted: {
                    checked = feature ? (feature.value === 2 ? false : feature.value) : false
                }
            }
            QGCLabel {
                id:             label
                text:           feature ? feature.description : ""
                anchors.right:  parent.right
                anchors.left:   checkBox.right
                anchors.leftMargin: ScreenTools.defaultFontPixelWidth * 0.5
                wrapMode:       Text.WordWrap
                anchors.verticalCenter: parent.verticalCenter
            }
        }
    }
}