update texture to server when tags are changed

This commit is contained in:
Hendrik Schutter 2019-06-08 12:47:34 +02:00
parent da153091bd
commit ed558106e5
3 changed files with 30 additions and 8 deletions

View File

@ -35,6 +35,8 @@ class RootController : Controller() {
private lateinit var con: Connection
private lateinit var selectedTexture: Texture
private var lastExportDir: String = System.getProperty("user.home")
/**
@ -100,7 +102,7 @@ class RootController : Controller() {
println(e)
println("[file] Connection to Server NOT successful")
}
}else{
} else {
println("[file] no address in settings file")
}
} else {
@ -190,6 +192,7 @@ class RootController : Controller() {
mvc.setPreview3DTexture(con.getTexturePreview(data.textureHash))
mvc.setMeta(data.name, data.resolution.toString(), "")
mvc.setTags(data.tags.toList().observable())
selectedTexture = data
}
/**
@ -212,4 +215,19 @@ class RootController : Controller() {
dialogDelete.showAndWait()
}
fun updateTexture(chips: ObservableList<String>) {
val uuid = UUID.randomUUID()
val newTexture = Texture(
uuid,
selectedTexture.name,
chips.toTypedArray(),
selectedTexture.format,
selectedTexture.resolution,
selectedTexture.addedOn,
selectedTexture.textureHash
)
con.updateTexture(selectedTexture, newTexture, con.getTextureFile(selectedTexture.textureHash))
}
}

View File

@ -15,6 +15,8 @@ import tornadofx.*
class DetailView: View() {
private val mvc: MainViewController by inject()
val preview = Preview3D()
val metaLabel = Label("Auflösung: 8MP\nName: Texture.png\nAndere: was anderes")
val cvTags = JFXChipView<String>()
@ -74,10 +76,5 @@ class DetailView: View() {
"-jfx-button-type: RAISED;" +
"-fx-font-size: 25px"
}
btnImport.setOnAction {
}
}
}

View File

@ -19,6 +19,7 @@ class MainViewController : Controller() {
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
// FolderView functions
fun addElement(element: GUIModel) {
@ -40,12 +41,17 @@ class MainViewController : Controller() {
}
fun setTags(chips: ObservableList<String>) {
lockUpdate = false //dont trigger update with onChange
cvTags.chips.clear()
cvTags.chips.addAll(chips)
lockUpdate = true //allow update with onChange
}
fun updateTags() {
println(cvTags.chips)
if (lockUpdate) { //the chipView was changed by the user
println("Tags changed")
rootc.updateTexture(cvTags.chips)
}
}
// DetailView actions
@ -70,7 +76,8 @@ class MainViewController : Controller() {
fun removeTextureFromView(data: Texture) {
// stream all children nodes, filter them as GUIModel with data.id == data.id, for any found object if it's still present remove it from the folderView
folderView.children.stream().filter { x -> (x as GUIModel).data.id == data.id }.findAny().ifPresent{ x -> folderView.children.remove(x)}
folderView.children.stream().filter { x -> (x as GUIModel).data.id == data.id }.findAny()
.ifPresent { x -> folderView.children.remove(x) }
}