import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
import de.skycoder42.QtMvvm.Core 1.1
import de.skycoder42.QtMvvm.Quick 1.1
import de.skycoder42.QtMvvm.Sample 1.1

Page {
	id: containerView
	property ContainerViewModel viewModel: null

	function presentItem(item) {
		return viewPlaceholder.presentItem(item);
	}

	function closeAction() {
		return viewPlaceholder.closeAction();
	}

	header: ContrastToolBar {
		ToolBarLabel {
			text: qsTr("View Container")
			anchors.fill: parent
		}
	}

	PresenterProgress {}

	Pane {
		anchors.fill: parent

		ColumnLayout {
			anchors.fill: parent

			ViewPlaceholder {
				id: viewPlaceholder

				viewModelType: containerView.viewModel.vmType
				parentViewModel: containerView.viewModel
				autoPresent: false

				Layout.fillWidth: true
				Layout.fillHeight: true

				BusyIndicator {
					anchors.centerIn: parent
					anchors.verticalCenterOffset: -(hookButton.height/2)
					running: !viewPlaceholder.loadedView
				}

				Button {
					id: hookButton
					Layout.fillWidth: true
					text: qsTr("Load from QML")
					onClicked: viewPlaceholder.presentView();
					enabled: !viewPlaceholder.loadedView

					anchors.left: parent.left
					anchors.right: parent.right
					anchors.bottom: parent.bottom
				}
			}

			Button {
				Layout.fillWidth: true
				text: viewPlaceholder.loadedView ? qsTr("Discard child") : qsTr("Show Child")
				onClicked: viewPlaceholder.loadedView ? viewPlaceholder.discardView() : viewModel.loadChild();
			}
		}
	}
}