Refactor sentence listview by showing simplified or traditional and setting correct font family and font size
This commit is contained in:
parent
168d1634a2
commit
a4e5b9145f
@ -1,16 +1,19 @@
|
||||
package com.marvinelsen.willow.ui.cells
|
||||
|
||||
import com.marvinelsen.willow.config.Config
|
||||
import com.marvinelsen.willow.config.Script
|
||||
import com.marvinelsen.willow.ui.SentenceFx
|
||||
import javafx.beans.binding.Bindings
|
||||
import javafx.scene.control.Label
|
||||
import javafx.scene.control.ListCell
|
||||
import javafx.scene.control.ListView
|
||||
import javafx.scene.layout.VBox
|
||||
import javafx.util.Callback
|
||||
|
||||
class SentenceCellFactory() : Callback<ListView<SentenceFx?>, ListCell<SentenceFx?>> {
|
||||
class SentenceCellFactory(private val config: Config) : Callback<ListView<SentenceFx?>, ListCell<SentenceFx?>> {
|
||||
|
||||
override fun call(listView: ListView<SentenceFx?>): ListCell<SentenceFx?> {
|
||||
val sentenceCell = SentenceCell()
|
||||
val sentenceCell = SentenceCell(config)
|
||||
sentenceCell.prefWidthProperty().bind(listView.widthProperty().subtract(CELL_PADDING))
|
||||
return sentenceCell
|
||||
}
|
||||
@ -20,12 +23,11 @@ class SentenceCellFactory() : Callback<ListView<SentenceFx?>, ListCell<SentenceF
|
||||
}
|
||||
}
|
||||
|
||||
internal class SentenceCell() : ListCell<SentenceFx?>() {
|
||||
private val labelTraditional = Label().apply {
|
||||
styleClass.add("chinese")
|
||||
styleClass.add("list-view-sentence-cell")
|
||||
private class SentenceCell(private val config: Config) : ListCell<SentenceFx?>() {
|
||||
private val labelSentence = Label().apply {
|
||||
styleClass.add("sentence")
|
||||
}
|
||||
private val root = VBox(labelTraditional)
|
||||
private val root = VBox(labelSentence)
|
||||
|
||||
init {
|
||||
text = null
|
||||
@ -36,7 +38,18 @@ internal class SentenceCell() : ListCell<SentenceFx?>() {
|
||||
if (empty || sentence == null) {
|
||||
graphic = null
|
||||
} else {
|
||||
labelTraditional.text = sentence.traditionalProperty.value
|
||||
labelSentence.textProperty().bind(
|
||||
Bindings.createStringBinding(
|
||||
{
|
||||
when (config.script.value!!) {
|
||||
Script.SIMPLIFIED -> sentence.simplifiedProperty.value
|
||||
Script.TRADITIONAL -> sentence.traditionalProperty.value
|
||||
}
|
||||
},
|
||||
config.script
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
graphic = root
|
||||
}
|
||||
|
@ -182,7 +182,7 @@ class DetailsController(private val model: Model, private val config: Config) {
|
||||
|
||||
private fun initializeListViewSentences() {
|
||||
listViewSentences.apply {
|
||||
cellFactory = SentenceCellFactory()
|
||||
cellFactory = SentenceCellFactory(config)
|
||||
items = model.sentences
|
||||
|
||||
disableProperty().bind(Bindings.or(model.isFindingSentences, Bindings.isEmpty(model.sentences)))
|
||||
|
@ -9,3 +9,8 @@
|
||||
.list-view .headword {
|
||||
-fx-font-family: "Noto Sans TC";
|
||||
}
|
||||
|
||||
.list-view .sentence {
|
||||
-fx-font-family: "Noto Sans TC";
|
||||
-fx-font-size: 14px;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user