[Editor] Improve WidgetAsset - replace widget editor tab name with actual widget name
This commit is contained in:
@@ -1,11 +1,8 @@
|
||||
package com.bartlomiejpluta.base.editor.asset.model
|
||||
|
||||
import com.bartlomiejpluta.base.editor.file.model.FileNode
|
||||
import com.bartlomiejpluta.base.editor.file.model.FileSystemNode
|
||||
import javafx.beans.binding.Bindings.createObjectBinding
|
||||
import javafx.beans.property.ObjectProperty
|
||||
import javafx.beans.property.SimpleStringProperty
|
||||
import javafx.beans.value.ObservableValue
|
||||
import tornadofx.getValue
|
||||
import tornadofx.setValue
|
||||
import java.io.File
|
||||
@@ -17,8 +14,5 @@ abstract class Asset(directory: ObjectProperty<File>, val uid: String, val sourc
|
||||
val fileProperty = createObjectBinding({ File(directory.value, source) }, directory)
|
||||
val file by fileProperty
|
||||
|
||||
val fileNodeProperty: ObservableValue<FileNode> = createObjectBinding({ FileSystemNode(file) }, fileProperty)
|
||||
val fileNode by fileNodeProperty
|
||||
|
||||
override fun toString() = "${this.javaClass.simpleName}[name=$name, uid=$uid]"
|
||||
}
|
||||
@@ -3,7 +3,7 @@ package com.bartlomiejpluta.base.editor.asset.view.list
|
||||
import com.bartlomiejpluta.base.editor.asset.component.AssetTreeCell
|
||||
import com.bartlomiejpluta.base.editor.asset.model.Asset
|
||||
import com.bartlomiejpluta.base.editor.asset.model.AssetCategory
|
||||
import com.bartlomiejpluta.base.editor.gui.widget.asset.WidgetAsset
|
||||
import com.bartlomiejpluta.base.editor.file.model.ScriptAssetFileNode
|
||||
import com.bartlomiejpluta.base.editor.main.controller.MainController
|
||||
import com.bartlomiejpluta.base.editor.map.asset.GameMapAsset
|
||||
import com.bartlomiejpluta.base.editor.project.context.ProjectContext
|
||||
@@ -86,7 +86,7 @@ class AssetsListView : View() {
|
||||
if (event.clickCount == 2) {
|
||||
when (val item = selectionModel?.selectedItem?.value) {
|
||||
is GameMapAsset -> mainController.openMap(item.uid)
|
||||
is WidgetAsset -> mainController.openScript(item.fileNode)
|
||||
is ScriptAssetFileNode -> mainController.openScript(item)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.bartlomiejpluta.base.editor.code.model.CodeScope
|
||||
import com.bartlomiejpluta.base.editor.code.model.CodeType
|
||||
import com.bartlomiejpluta.base.editor.code.viewmodel.CodeVM
|
||||
import com.bartlomiejpluta.base.editor.file.model.FileSystemNode
|
||||
import com.bartlomiejpluta.base.editor.file.model.ScriptAssetFileNode
|
||||
import com.bartlomiejpluta.base.editor.project.context.ProjectContext
|
||||
import javafx.beans.binding.Bindings
|
||||
import org.kordamp.ikonli.javafx.FontIcon
|
||||
@@ -27,7 +28,10 @@ class CodeEditorView : View() {
|
||||
}
|
||||
}, codeVM.typeProperty)
|
||||
|
||||
private val editable = Bindings.createBooleanBinding({ codeVM.fileNode is FileSystemNode }, codeVM.itemProperty)
|
||||
private val editable = Bindings.createBooleanBinding(
|
||||
{ codeVM.fileNode is FileSystemNode || codeVM.fileNode is ScriptAssetFileNode },
|
||||
codeVM.itemProperty
|
||||
)
|
||||
|
||||
private val editor = CodeEditor(highlighter, codeVM.codeProperty, !editable.value)
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.bartlomiejpluta.base.editor.file.model
|
||||
|
||||
import com.bartlomiejpluta.base.editor.asset.model.Asset
|
||||
import javafx.beans.property.ObjectProperty
|
||||
import javafx.beans.property.ReadOnlyLongWrapper
|
||||
import javafx.beans.property.ReadOnlyStringWrapper
|
||||
import tornadofx.getValue
|
||||
import java.io.File
|
||||
|
||||
abstract class ScriptAssetFileNode(directory: ObjectProperty<File>, uid: String, extension: String, name: String) :
|
||||
Asset(directory, uid, "$uid.$extension", name), FileNode {
|
||||
|
||||
final override val extensionProperty = ReadOnlyStringWrapper(extension)
|
||||
override val extension by extensionProperty
|
||||
|
||||
final override val nameWithoutExtensionProperty = ReadOnlyStringWrapper(name)
|
||||
override val nameWithoutExtension by nameWithoutExtensionProperty
|
||||
|
||||
final override val absolutePathProperty = ReadOnlyStringWrapper(file.absolutePath)
|
||||
override val absolutePath by absolutePathProperty
|
||||
|
||||
override val type = FileType.FILE
|
||||
override val parent = null
|
||||
|
||||
override val children = emptyList<FileNode>()
|
||||
|
||||
final override val lastModifiedProperty = ReadOnlyLongWrapper(file.lastModified())
|
||||
override val lastModified by lastModifiedProperty
|
||||
|
||||
override fun inputStream() = file.inputStream()
|
||||
|
||||
override fun outputStream() = file.outputStream()
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.bartlomiejpluta.base.editor.gui.widget.asset
|
||||
|
||||
import com.bartlomiejpluta.base.editor.asset.model.Asset
|
||||
import com.bartlomiejpluta.base.editor.file.model.ScriptAssetFileNode
|
||||
import com.bartlomiejpluta.base.editor.project.model.Project
|
||||
|
||||
class WidgetAsset(project: Project, uid: String, name: String) :
|
||||
Asset(project.widgetsDirectoryProperty, uid, "$uid.xml", name)
|
||||
ScriptAssetFileNode(project.widgetsDirectoryProperty, uid, "xml", name)
|
||||
@@ -9,9 +9,9 @@ import com.bartlomiejpluta.base.editor.entityset.view.importing.ImportEntitySetF
|
||||
import com.bartlomiejpluta.base.editor.entityset.viewmodel.EntitySetAssetDataVM
|
||||
import com.bartlomiejpluta.base.editor.event.SelectMainViewTabEvent
|
||||
import com.bartlomiejpluta.base.editor.file.model.FileNode
|
||||
import com.bartlomiejpluta.base.editor.file.model.ScriptAssetFileNode
|
||||
import com.bartlomiejpluta.base.editor.gui.font.view.importing.ImportFontFragment
|
||||
import com.bartlomiejpluta.base.editor.gui.font.viewmodel.FontAssetDataVM
|
||||
import com.bartlomiejpluta.base.editor.gui.widget.asset.WidgetAsset
|
||||
import com.bartlomiejpluta.base.editor.gui.widget.asset.WidgetAssetData
|
||||
import com.bartlomiejpluta.base.editor.image.view.importing.ImportImageFragment
|
||||
import com.bartlomiejpluta.base.editor.image.viewmodel.ImageAssetDataVM
|
||||
@@ -195,7 +195,6 @@ class MainController : Controller() {
|
||||
.showAndWait()
|
||||
.map(::WidgetAssetData)
|
||||
.map(projectContext::createWidget)
|
||||
.map(WidgetAsset::fileNode)
|
||||
.ifPresent(this::openScript)
|
||||
}
|
||||
|
||||
@@ -205,7 +204,7 @@ class MainController : Controller() {
|
||||
openItems.remove(it)
|
||||
}
|
||||
|
||||
is WidgetAsset -> closeScript(asset.fileNode)
|
||||
is ScriptAssetFileNode -> closeScript(asset)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user