<?xml version="1.0" encoding="UTF-8"?>

<?import org.cryptomator.ui.controls.FontAwesome5IconView?>
<?import org.cryptomator.ui.controls.FontAwesome5Spinner?>
<?import org.cryptomator.ui.controls.FormattedLabel?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.Hyperlink?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ProgressBar?>
<?import javafx.scene.control.Tooltip?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Text?>
<?import javafx.scene.text.TextFlow?>
<VBox xmlns:fx="http://javafx.com/fxml"
	  xmlns="http://javafx.com/javafx"
	  fx:controller="org.cryptomator.ui.preferences.UpdatesPreferencesController"
	  spacing="12">
	<padding>
		<Insets topRightBottomLeft="24"/>
	</padding>
	<FormattedLabel format="%preferences.updates.currentVersion" arg1="${controller.updateChecker.currentVersion}" textAlignment="CENTER" wrapText="true"/>

	<CheckBox fx:id="checkForUpdatesCheckbox" text="%preferences.updates.autoUpdateCheck"/>

	<VBox alignment="CENTER" spacing="12">
		<FormattedLabel format="%preferences.updates.updateAvailable" arg1="${controller.updateChecker.latestVersion}" textAlignment="CENTER" wrapText="true" visible="${controller.updateChecker.updateAvailable}"/>

		<Button text="${controller.updateButtonTitle}" defaultButton="true" onAction="#startWork" disable="${controller.updateButtonDisabled}" contentDisplay="${controller.updateButtonState}">
			<graphic>
				<VBox spacing="5" alignment="CENTER">
					<ProgressBar maxWidth="200"
								 maxHeight="12"
								 visible="${controller.running &amp;&amp; controller.worker.progress != -1.0}"
								 managed="${controller.running &amp;&amp; controller.worker.progress != -1.0}"
								 progress="${controller.worker.progress}"/>
					<FontAwesome5Spinner glyphSize="12"
										 visible="${controller.running &amp;&amp; controller.worker.progress == -1.0}"
										 managed="${controller.running &amp;&amp; controller.worker.progress == -1.0}"/>
				</VBox>
			</graphic>
		</Button>

		<TextFlow styleClass="text-flow" textAlignment="CENTER" visible="${controller.prohibitUpdateWhileUnlocked}" managed="${controller.prohibitUpdateWhileUnlocked}">
			<FontAwesome5IconView glyphSize="12" styleClass="glyph-icon-primary" glyph="LOCK_OPEN"/>
			<Text text=" "/>
			<Text text="%preferences.updates.prohibitedDueToUnlockedVaults.1"/>
			<Text text=" "/>
			<Hyperlink styleClass="hyperlink-underline" text="%preferences.updates.prohibitedDueToUnlockedVaults.2" onAction="#lockAllGracefully"/>
			<Text text=" "/>
			<Text text="%preferences.updates.prohibitedDueToUnlockedVaults.3"/>
		</TextFlow>

		<TextFlow styleClass="text-flow" textAlignment="CENTER" visible="${!controller.errorMessage.empty}" managed="${!controller.errorMessage.empty}">
			<FontAwesome5IconView glyphSize="12" styleClass="glyph-icon-orange" glyph="EXCLAMATION_TRIANGLE"/>
			<Text text=" "/>
			<Text text="${controller.errorMessage}"/>
			<Text text=" "/>
			<Hyperlink styleClass="hyperlink-underline" text="%preferences.general.debugDirectory" onAction="#showLogfileDirectory"/>
		</TextFlow>

		<FormattedLabel format="%preferences.updates.lastUpdateCheck" arg1="${controller.timeDifferenceMessage}" textAlignment="CENTER" wrapText="true" visible="${!controller.updateChecker.updateAvailable}" managed="${!controller.updateChecker.updateAvailable}">
			<tooltip>
				<Tooltip text="${controller.lastUpdateCheckMessage}" showDelay="10ms"/>
			</tooltip>
		</FormattedLabel>

		<Label text="%preferences.updates.upToDate" visible="${controller.upToDateLabelVisible}" managed="${controller.upToDateLabelVisible}">
			<graphic>
				<FontAwesome5IconView glyphSize="12" styleClass="glyph-icon-primary" glyph="CHECK"/>
			</graphic>
		</Label>
	</VBox>
</VBox>
