[Editor] Enable copying asset UID from UI via context menu

This commit is contained in:
2021-03-02 22:27:41 +01:00
parent 695a592254
commit 4d65e4d5ce

View File

@@ -7,36 +7,42 @@ import com.bartlomiejpluta.base.editor.image.asset.ImageAsset
import com.bartlomiejpluta.base.editor.map.asset.GameMapAsset
import com.bartlomiejpluta.base.editor.tileset.asset.TileSetAsset
import javafx.scene.control.ContextMenu
import javafx.scene.control.MenuItem
import javafx.scene.control.cell.TextFieldTreeCell
import javafx.scene.input.Clipboard
import org.kordamp.ikonli.javafx.FontIcon
import tornadofx.action
import tornadofx.item
import tornadofx.putString
class AssetTreeCell(renameAsset: (asset: Asset, name: String) -> Asset, deleteAsset: (asset: Asset) -> Unit) :
TextFieldTreeCell<Any>() {
private val assetMenu = ContextMenu()
init {
converter = AssetStringConverter(this, renameAsset)
MenuItem("Rename").apply {
private val assetMenu = ContextMenu().apply {
item("Copy UID") {
action {
Clipboard.getSystemClipboard().putString((item as Asset).uid)
}
}
item("Rename") {
action {
treeView.isEditable = true
startEdit()
treeView.isEditable = false
}
assetMenu.items.add(this)
}
MenuItem("Delete").apply {
item("Delete") {
action {
deleteAsset(item as Asset)
}
assetMenu.items.add(this)
}
}
init {
converter = AssetStringConverter(this, renameAsset)
}
override fun updateItem(item: Any?, empty: Boolean) {
super.updateItem(item, empty)