@ -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
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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;"
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -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
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -107,3 +107,15 @@
 | 
			
		||||
    -fx-alignment: center-left;
 | 
			
		||||
    -fx-spacing: 8;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*******************************************************************************
 | 
			
		||||
 *                                                                             *
 | 
			
		||||
 * DetailView		                                                               *
 | 
			
		||||
 *                                                                             *
 | 
			
		||||
 ******************************************************************************/
 | 
			
		||||
 | 
			
		||||
.metadata {
 | 
			
		||||
    -fx-font: 14px Verdana;
 | 
			
		||||
    -fx-text-fill: #E0E0E0;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user