import QtQuick          2.3
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.4
import QtQuick.Dialogs  1.2
import QtQuick.Extras   1.4
import QtQuick.Layouts  1.2

import QGroundControl               1.0
import QGroundControl.ScreenTools   1.0
import QGroundControl.Vehicle       1.0
import QGroundControl.Controls      1.0
import QGroundControl.FactControls  1.0
import QGroundControl.Palette       1.0
import QGroundControl.FlightMap     1.0

// Editor for Operating Area items
Rectangle {
    id:         _root
    height:     visible ? (editorColumn.height + (_margin * 2)) : 0
    width:      availableWidth
    color:      qgcPal.windowShadeDark
    radius:     _radius

    property real   _margin:                    ScreenTools.defaultFontPixelWidth / 2
    property real   _fieldWidth:                ScreenTools.defaultFontPixelWidth * 10.5
    property bool   polygonInteractive:         areaItem.interactive
    property var    polygon:                    areaItem
    property bool   initNecesarry:              true

    onPolygonInteractiveChanged: {
        polygon.interactive = polygonInteractive;
    }

    QGCPalette { id: qgcPal; colorGroupEnabled: true }

    Column {
        id:                 editorColumn
        anchors.margins:    _margin
        anchors.top:        parent.top
        anchors.left:       parent.left
        anchors.right:      parent.right
        spacing:            _margin

        SectionHeader {
            id:         settingsHeader
            text:       qsTr("General")
        }

        Column {
            anchors.left:   parent.left
            anchors.right:  parent.right
            spacing:        _margin
            visible:        settingsHeader.checked

            GridLayout {
                anchors.left:   parent.left
                anchors.right:  parent.right
                columnSpacing:  _margin
                rowSpacing:     _margin
                columns:        2

                QGCLabel { text: qsTr("Offset") }

                FactTextField {
                    fact:               areaItem.borderPolygonOffset
                    Layout.fillWidth:   true
                }
            }

            FactCheckBox {
                text:               qsTr("Border Polygon")
                fact:               areaItem.showBorderPolygon
                //enabled:            !missionItem.followTerrain
            }

            Item {
                height: ScreenTools.defaultFontPixelHeight / 2
                width:  1
            }
        } // Column - Settings


        SectionHeader {
            id:         tilesHeader
            text:       qsTr("Tiles")
        }

        Column {
            anchors.left:   parent.left
            anchors.right:  parent.right
            spacing:        _margin
            visible:        tilesHeader.checked

            GridLayout {
                anchors.left:   parent.left
                anchors.right:  parent.right
                columnSpacing:  _margin
                rowSpacing:     _margin
                columns:        2

                QGCLabel { text: qsTr("Height") }

                FactTextField {
                    fact:               areaItem.tileHeight
                    Layout.fillWidth:   true
                }

                QGCLabel { text: qsTr("Width") }

                FactTextField {
                    fact:               areaItem.tileWidth
                    Layout.fillWidth:   true
                }

                QGCLabel { text: qsTr("Min. Area") }

                FactTextField {
                    fact:               areaItem.minTileArea
                    Layout.fillWidth:   true
                }


                FactCheckBox {
                    text:               qsTr("Show Tiles")
                    fact:               areaItem.showTiles
                }
            } // Tile GridLayout
        } // Tile Column


        SectionHeader {
            id:     statsHeader
            text:   qsTr("Statistics")
        }

        Grid {
            columns:        2
            columnSpacing:  ScreenTools.defaultFontPixelWidth
            visible:        statsHeader.checked

            QGCLabel { text: qsTr("Area") }
            QGCLabel { text: QGroundControl.squareMetersToAppSettingsAreaUnits(areaItem.area).toFixed(2) + " " + QGroundControl.appSettingsAreaUnitsString }

            QGCLabel { text: qsTr("Tiles") }
            QGCLabel { text: areaItem.tiles.count }

            QGCLabel { text: qsTr("Max. Tiles") }
            QGCLabel { text: areaItem.maxTiles }

            }
    } // Column
} // Rectangle
