[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
|
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.binding.Bindings.createObjectBinding
|
||||||
import javafx.beans.property.ObjectProperty
|
import javafx.beans.property.ObjectProperty
|
||||||
import javafx.beans.property.SimpleStringProperty
|
import javafx.beans.property.SimpleStringProperty
|
||||||
import javafx.beans.value.ObservableValue
|
|
||||||
import tornadofx.getValue
|
import tornadofx.getValue
|
||||||
import tornadofx.setValue
|
import tornadofx.setValue
|
||||||
import java.io.File
|
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 fileProperty = createObjectBinding({ File(directory.value, source) }, directory)
|
||||||
val file by fileProperty
|
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]"
|
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.component.AssetTreeCell
|
||||||
import com.bartlomiejpluta.base.editor.asset.model.Asset
|
import com.bartlomiejpluta.base.editor.asset.model.Asset
|
||||||
import com.bartlomiejpluta.base.editor.asset.model.AssetCategory
|
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.main.controller.MainController
|
||||||
import com.bartlomiejpluta.base.editor.map.asset.GameMapAsset
|
import com.bartlomiejpluta.base.editor.map.asset.GameMapAsset
|
||||||
import com.bartlomiejpluta.base.editor.project.context.ProjectContext
|
import com.bartlomiejpluta.base.editor.project.context.ProjectContext
|
||||||
@@ -86,7 +86,7 @@ class AssetsListView : View() {
|
|||||||
if (event.clickCount == 2) {
|
if (event.clickCount == 2) {
|
||||||
when (val item = selectionModel?.selectedItem?.value) {
|
when (val item = selectionModel?.selectedItem?.value) {
|
||||||
is GameMapAsset -> mainController.openMap(item.uid)
|
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.model.CodeType
|
||||||
import com.bartlomiejpluta.base.editor.code.viewmodel.CodeVM
|
import com.bartlomiejpluta.base.editor.code.viewmodel.CodeVM
|
||||||
import com.bartlomiejpluta.base.editor.file.model.FileSystemNode
|
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 com.bartlomiejpluta.base.editor.project.context.ProjectContext
|
||||||
import javafx.beans.binding.Bindings
|
import javafx.beans.binding.Bindings
|
||||||
import org.kordamp.ikonli.javafx.FontIcon
|
import org.kordamp.ikonli.javafx.FontIcon
|
||||||
@@ -27,7 +28,10 @@ class CodeEditorView : View() {
|
|||||||
}
|
}
|
||||||
}, codeVM.typeProperty)
|
}, 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)
|
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
|
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
|
import com.bartlomiejpluta.base.editor.project.model.Project
|
||||||
|
|
||||||
class WidgetAsset(project: Project, uid: String, name: String) :
|
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.entityset.viewmodel.EntitySetAssetDataVM
|
||||||
import com.bartlomiejpluta.base.editor.event.SelectMainViewTabEvent
|
import com.bartlomiejpluta.base.editor.event.SelectMainViewTabEvent
|
||||||
import com.bartlomiejpluta.base.editor.file.model.FileNode
|
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.view.importing.ImportFontFragment
|
||||||
import com.bartlomiejpluta.base.editor.gui.font.viewmodel.FontAssetDataVM
|
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.gui.widget.asset.WidgetAssetData
|
||||||
import com.bartlomiejpluta.base.editor.image.view.importing.ImportImageFragment
|
import com.bartlomiejpluta.base.editor.image.view.importing.ImportImageFragment
|
||||||
import com.bartlomiejpluta.base.editor.image.viewmodel.ImageAssetDataVM
|
import com.bartlomiejpluta.base.editor.image.viewmodel.ImageAssetDataVM
|
||||||
@@ -195,7 +195,6 @@ class MainController : Controller() {
|
|||||||
.showAndWait()
|
.showAndWait()
|
||||||
.map(::WidgetAssetData)
|
.map(::WidgetAssetData)
|
||||||
.map(projectContext::createWidget)
|
.map(projectContext::createWidget)
|
||||||
.map(WidgetAsset::fileNode)
|
|
||||||
.ifPresent(this::openScript)
|
.ifPresent(this::openScript)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,7 +204,7 @@ class MainController : Controller() {
|
|||||||
openItems.remove(it)
|
openItems.remove(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
is WidgetAsset -> closeScript(asset.fileNode)
|
is ScriptAssetFileNode -> closeScript(asset)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user