JavaFX:在当前FXML中包含来自公共库的常见FXML文件

时间:2016-10-20 15:02:51

标签: javafx javafx-2 eclipse-rcp javafx-8 efxclipse

我们有多个基于JavaFX的GUI项目。我们现在的目标是重构很多这些GUI并提取公共视图和源代码,并通过库提供这些公共代码(bundle jar' s)。我目前有一个问题,我有一个显示日志文件的视图,并在主视图中通过FXML包含

<fx:include fx:id="logFileView" source="./sub/LogView.fxml"
    maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"
    minWidth="-Infinity" prefHeight="600" prefWidth="1000"
    style="-fx-background-color: rgba(0, 0, 0, 0.0);"
    StackPane.alignment="CENTER_RIGHT" />

LogView.fxml合并了它的控制器

fx:controller="auv.e4.application.analyser.controller.sub.LogViewController"

但是这个LogView.fxml现在放在一个公共的lib(包jar)中,任何我们的GUIS都可以访问

我们有50个不同的视图以这种方式构建,我更喜欢以这种方式使用FXML。

另一个问题是常见的lib将是bundle项目(否则RCP GUI不能将它们解析为依赖项),这使得绝对路径不可能使用(这不是一个好习惯)。 GUI是基于RCP的GUI,它使用JavaFX进行渲染。

我现在的问题是如何从FXML内部的另一个项目(LogView.fxml)引用fx:include?这可能吗 ?如果不是应该/可以进行什么样的重组?

0 个答案:

没有答案