From cc03b32ade8838bc9bd7c1108dfa6c8fd1fdba87 Mon Sep 17 00:00:00 2001
From: CodeSteak <codesteak@shellf.art>
Date: Wed, 12 Jun 2019 21:05:40 +0200
Subject: [PATCH] Fix #29

Redo Text of FolderView + DetailView
---
 .../hso/texturesyncclient/model/GUIModel.kt   | 23 ++++++---
 .../view/mainView/DetailView.kt               | 47 ++++++++++++-------
 .../view/mainView/MainViewController.kt       | 12 +++--
 client/src/main/resources/css/Styles.css      | 12 +++++
 4 files changed, 66 insertions(+), 28 deletions(-)

diff --git a/client/src/main/kotlin/org/hso/texturesyncclient/model/GUIModel.kt b/client/src/main/kotlin/org/hso/texturesyncclient/model/GUIModel.kt
index fdf1fe4..3418598 100644
--- a/client/src/main/kotlin/org/hso/texturesyncclient/model/GUIModel.kt
+++ b/client/src/main/kotlin/org/hso/texturesyncclient/model/GUIModel.kt
@@ -12,9 +12,11 @@ import javafx.scene.layout.BackgroundFill
 import javafx.scene.layout.CornerRadii
 import javafx.scene.layout.VBox
 import javafx.scene.paint.Paint
-import tornadofx.*
+import tornadofx.addClass
+import tornadofx.find
+import tornadofx.paddingTop
 
-class GUIModel constructor(var data: Texture, img: Image) : VBox(){
+class GUIModel constructor(var data: Texture, img: Image) : VBox() {
 
     private var image = ImageView()
     private var label = Label()
@@ -24,14 +26,14 @@ class GUIModel constructor(var data: Texture, img: Image) : VBox(){
 
     private lateinit var texture: Texture
 
-    private val gmc =  find(GUIModelController::class)
+    private val gmc = find(GUIModelController::class)
 
     init {
         texture = data
         super.setPadding(Insets(5.0, 5.0, 5.0, 5.0))
         super.getChildren().addAll(image, label)
         super.setOnContextMenuRequested { p0 -> contextMenu.show(this@GUIModel, p0.screenX, p0.screenY) }
-        super.setOnMouseClicked{
+        super.setOnMouseClicked {
             if (gmc.isLastSelectedInitialized()) {
                 gmc.lastSelected.background = Background.EMPTY
                 this.background = Background(BackgroundFill(Paint.valueOf("#2b7bbb"), CornerRadii.EMPTY, Insets.EMPTY))
@@ -45,11 +47,18 @@ class GUIModel constructor(var data: Texture, img: Image) : VBox(){
 
         }
 
+        label.addClass("metadata")
         label.paddingTop = 5.0
         label.prefWidth = 128.0
         label.alignment = Pos.CENTER
-        label.text = data.name
-        label.background = Background(BackgroundFill(Paint.valueOf("#FFFF2b"), CornerRadii.EMPTY, Insets.EMPTY))
+
+        label.text = if (data.name.length > 15) {
+            "${data.name.subSequence(0, 14)}.."
+        } else {
+            data.name
+        }
+
+        label.background = Background(BackgroundFill(Paint.valueOf("#3a3a3a"), CornerRadii.EMPTY, Insets.EMPTY))
 
         image.fitHeight = 128.0
         image.fitWidth = 128.0
@@ -67,7 +76,7 @@ class GUIModel constructor(var data: Texture, img: Image) : VBox(){
         contextMenu.items.add(deleteItem)
     }
 
-    fun setTexture(data: Texture){
+    fun setTexture(data: Texture) {
         texture = data
     }
 
diff --git a/client/src/main/kotlin/org/hso/texturesyncclient/view/mainView/DetailView.kt b/client/src/main/kotlin/org/hso/texturesyncclient/view/mainView/DetailView.kt
index f02d4dd..aa7520b 100644
--- a/client/src/main/kotlin/org/hso/texturesyncclient/view/mainView/DetailView.kt
+++ b/client/src/main/kotlin/org/hso/texturesyncclient/view/mainView/DetailView.kt
@@ -3,7 +3,6 @@ package org.hso.texturesyncclient.view.mainView
 import com.jfoenix.controls.JFXChipView
 import javafx.geometry.Insets
 import javafx.geometry.Orientation
-import javafx.scene.control.Label
 import javafx.scene.image.Image
 import javafx.scene.layout.Background
 import javafx.scene.layout.BackgroundFill
@@ -11,12 +10,38 @@ import javafx.scene.layout.CornerRadii
 import javafx.scene.paint.Paint
 import tornadofx.*
 
-class DetailView: View() {
+class DetailView : View() {
 
     val preview = Preview3D()
-    val metaLabel = Label("Auflösung: 8MP\nName: Texture.png\nAndere: was anderes\nEinfügedatum: 31.02.2019")
     val cvTags = JFXChipView<String>()
 
+    val nameInfo = label().addClass("metadata")
+    val resolutionInfo = label().addClass("metadata")
+    val formatInfo = label().addClass("metadata")
+    val dateInfo = label().addClass("metadata")
+
+    val metadataPanel = gridpane {
+
+        isVisible = false
+
+        row {
+            label("Name ").addClass("metadata")
+            add(nameInfo)
+        }
+        row {
+            label("Auflösung ").addClass("metadata")
+            add(resolutionInfo)
+        }
+        row {
+            label("Format ").addClass("metadata")
+            add(formatInfo)
+        }
+        row {
+            label("Einfügedatum ").addClass("metadata")
+            add(dateInfo)
+        }
+    }
+
     init {
         // set a default texture
         preview.setTexture(Image("icons/TextureSync_Icon_256x256.jpeg"))
@@ -28,33 +53,21 @@ class DetailView: View() {
 
         fieldset(labelPosition = Orientation.VERTICAL) {
 
-            field{
+            field {
                 vbox(7) {
                     add(preview)
                 }
             }
 
             field {
-                paddingTop = 2
-                paddingBottom = 3
-                add(metaLabel)
+                add(metadataPanel)
             }
 
             field {
                 minHeight = 155.0
                 add(cvTags)
-
             }
 
         }
-
-        style {
-            metaLabel.style = "-fx-text-fill: #2b7bbb;"
-
-            cvTags.minHeight = 145.0
-            cvTags.paddingAll = 3.0
-            cvTags.style = "-fx-background-color: #53585b; -fx-text-inner-color: #b15b2e;"
-        }
-
     }
 }
\ No newline at end of file
diff --git a/client/src/main/kotlin/org/hso/texturesyncclient/view/mainView/MainViewController.kt b/client/src/main/kotlin/org/hso/texturesyncclient/view/mainView/MainViewController.kt
index 457b9c2..f1ecafc 100644
--- a/client/src/main/kotlin/org/hso/texturesyncclient/view/mainView/MainViewController.kt
+++ b/client/src/main/kotlin/org/hso/texturesyncclient/view/mainView/MainViewController.kt
@@ -17,7 +17,6 @@ class MainViewController : Controller() {
 
     // DetailView elements
     private val preview = mv.detailView.preview
-    private val metaLabel = mv.detailView.metaLabel
     private val cvTags = mv.detailView.cvTags
     private var lockUpdate: Boolean = false //lock update func when the system changes the detailview chipview
 
@@ -32,7 +31,12 @@ class MainViewController : Controller() {
     }
 
     fun setMeta(name: String, res: String, format: String, date: String) {
-        metaLabel.text = "Name: $name\nAuflösung: $res\nFormat: $format\nEinfügedatum: $date"
+        with( mv.detailView) {
+            nameInfo.text = name
+            formatInfo.text = format
+            resolutionInfo.text = date
+            dateInfo.text = date
+        }
     }
 
     fun setTags(chips: ObservableList<String>) {
@@ -82,10 +86,10 @@ class MainViewController : Controller() {
 
     fun setVisibleMetaTags(bool: Boolean){
         if(bool){
-            metaLabel.isVisible = true
+            mv.detailView.metadataPanel.isVisible = true
             cvTags.isVisible = true
         }else{
-            metaLabel.isVisible = false
+            mv.detailView.metadataPanel.isVisible = false
             cvTags.isVisible = false
         }
     }
diff --git a/client/src/main/resources/css/Styles.css b/client/src/main/resources/css/Styles.css
index 1c258bc..ffdc76c 100644
--- a/client/src/main/resources/css/Styles.css
+++ b/client/src/main/resources/css/Styles.css
@@ -107,3 +107,15 @@
     -fx-alignment: center-left;
     -fx-spacing: 8;
 }
+
+
+/*******************************************************************************
+ *                                                                             *
+ * DetailView		                                                               *
+ *                                                                             *
+ ******************************************************************************/
+
+.metadata {
+    -fx-font: 14px Verdana;
+    -fx-text-fill: #E0E0E0;
+}
\ No newline at end of file