Charts 如何强制重画仪表板中的所有Vaadin图表以打开或关闭数据标签?

Charts 如何强制重画仪表板中的所有Vaadin图表以打开或关闭数据标签?,charts,vaadin,Charts,Vaadin,如何强制重画仪表板中的所有Vaadin图表以打开或关闭数据标签? 我想允许我的应用程序用户为其仪表板上的所有图表添加/删除图表数据标签;将主题从VaadinTheme更改为GridTheme时,强制重画类似的内容。 我怎样才能做到这一点? 如何在引擎盖下改变主题,做这件事的源代码是什么? 例如。; 我知道我可以通过重置绘图选项,然后重新绘制单个图表,从而单独重新绘制该图表: . . 但我想对仪表板上的所有图表都这样做;就像有一个这样的倾听者 ChartOptions.get().setThem

如何强制重画仪表板中的所有Vaadin图表以打开或关闭数据标签? 我想允许我的应用程序用户为其仪表板上的所有图表添加/删除图表数据标签;将主题从VaadinTheme更改为GridTheme时,强制重画类似的内容。
我怎样才能做到这一点? 如何在引擎盖下改变主题,做这件事的源代码是什么? 例如。; 我知道我可以通过重置绘图选项,然后重新绘制单个图表,从而单独重新绘制该图表: . .

但我想对仪表板上的所有图表都这样做;就像有一个这样的倾听者

ChartOptions.get().setTheme(new VaadinTheme())
然后

维切维萨呢

也许我可以重置plotOption dataLabels,然后重置主题以强制使用新的dataLabel状态重新绘制? 请告知

p、 美国。 我不希望对数据库中用户保存的数据进行更改,也就是说,我不希望此标签切换保持不变。我想像切换主题一样切换数据标签。 请看: 了解我的意思。

好的,有两种解决方案: 我的一个在仪表盘上工作的同事帮我找到了这个问题的第一个答案。 基本上,您必须清除所有图表,然后遍历ea。在特定仪表板中绘制图表(存储在数据库中),然后重新生成ea。图表w/您决定是否拥有数据标签,将其放回仪表板;但我想避免这种情况,因为它可能会影响性能

另外,我后来从瓦丁团队的佩卡那里得到了如下回复:

'您可以使用基本css轻松隐藏数据标签。例如,如果您可以将样式名“dataLabelsHidden”应用于UI,那么您可以在样式表中编写一个用于隐藏标签的足够具体的规则。我用以下内容快速测试了演示:

.v-ui.dataLabelsHidden g.highcharts-data-labels {
    display: none;
}
这样,当标签打开/关闭被触发时,您就不必更新所有图表了。”

ChartOptions.get().setTheme(new GridTheme())
.v-ui.dataLabelsHidden g.highcharts-data-labels {
    display: none;
}