Фрагмент BarChart в Модале не обновляется - TornadoFX - PullRequest
0 голосов
/ 09 января 2019

Я создал фрагмент, содержащий BarChart и ScrollPane - конечным результатом будет гистограмма с прокруткой.

Я создаю эти новые фрагменты в отдельном модале, используя метод openModal.

Проблема, с которой я столкнулся, заключается в том, что BarChart не обновляется при вызове моего loadData метода, как показано ниже:

class Histogram : Fragment() {


override val root = vbox{

    hgrow = Priority.ALWAYS
    vgrow = Priority.ALWAYS

    style{
        minWidth = 1280.px
        minHeight = 180.px
    }

    hbox{
        hgrow = Priority.ALWAYS
    }


}

private val bar = ScrollBar()

private var barChart = barchart("bar", CategoryAxis(), NumberAxis()){

    barGap = 0.0
    categoryGap = -1.0

    hgrow = Priority.ALWAYS
    vgrow = Priority.ALWAYS

    style{
        minWidth = 640.px
        minHeight = 240.px
        maxHeight = 480.px

    }

    isLegendVisible = false

}

private val s = XYChart.Series<String, Number>()

init{

    root.add(barChart)
    root.add(bar)

}


fun loadData(h: AlignmentHistogram){

    s.data.add(XYChart.Data<String, Number>("asd", 2))

    barChart.title = h.rname

   /* for(i in 0..MAX_DATASET_SIZE){
        if(i > h.histogram.size){
            break
        }
        val data = XYChart.Data<String, Int>((h.firstPosition + i + 1).toString(), (h.histogram[i]))
        println(data)
        s.data.add(data)
    }*/


    s.data.add(XYChart.Data<String, Number>("asasdd", 5))

    s.name = h.rname

    barChart.data.add(s)

}

}

AlignmentHistogram - это просто POJO с данными для гистограммы и некоторыми другими деталями.

Я звоню во фрагмент со следующим кодом:

    val stage = Stage()
    stage.title = "${pointer.rname} - ${selectedFile.file.name}"

    val view = Histogram()
    view.loadData(h)

    val parent = StackPane()
    stage.scene = Scene(parent, 1280.0, 360.0)

    view.openModal(StageStyle.UTILITY, Modality.NONE, false, stage, false, true)

Результатом этого является пустая гистограмма в новом модале, несмотря на вызов barChart.data.add(s)

Есть идеи? Заранее спасибо!

1 Ответ

0 голосов
/ 09 января 2019

Неважно, я решил это, передав POJO в качестве области видимости и поместив код настройки в блок init.

Эта статья помогла с частью объема:

Tornadofx - Как передать параметр во фрагмент каждый раз

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...