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() + 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) { @@ -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