如前所述, 我开始玩JRubyFX 。 对我来说,学习一些新的最佳方法可以解决用例,因此我开始为Hawkular创建库存浏览器。
为什么选择JRubyFX?
让我们首先从“什么是JRubyFX”开始? JRubyFX是通过JRuby引入Ruby世界的JavaFX。 这意味着您可以在JavaFX框架的帮助下实现UI,并使用其组件和工具来构建UI。 与普通JavaFX的区别在于,所有实现代码都是用Ruby编写的,并由JRuby在JVM上运行。
过去我曾经做过JavaFX,我想为Hawkular生成一个独立的清单浏览器。 现在,我最近一直在使用Ruby,并且已经有了Hawkular客户端gem ,我想我可以尝试一下JRubyFX。
我必须说这很酷。
一些截图
登入画面
带有库存浏览器(左侧)和度量标准图表的主屏幕
主屏幕在左侧显示树视图,该视图将提要显示为顶级元素。 打开提要将递归显示资源和指标。 单击一个指标可将其绘制在右侧图表中。
主屏幕中的菜单项打开警报浏览器,允许浏览系统中的警报和事件。
像在主屏幕中一样,有一个上下文菜单可用来查看原始对象,如下所示:
定制组件
主屏幕和警报屏幕上的时间范围选择器是一个自定义组件,该组件曾经使用.fxml
文件和一些Ruby代码实现:
class TimePicker < Java::javafx::scene::layout::HBoxinclude JRubyFX::Controllerfxml 'TimePicker.fxml'def initialize(caller, callback)
[..]
end
包括它也很简单:
box = find '#alertEventTopBox'box.children.add time_picker(self, :set_time_range)
在第一行中,我们找到要添加选择器的HBox
,然后将其添加到框的子级中。 做完了
运行和编码
HawkFX可在我的GitHub帐户上找到, 网址为https://github.com/pilhuhn/hawkfx 。 要运行该工具,您需要JRuby 9
如果您使用的是rvm,则可以通过
rvm use jruby-9.0.5.0
安装并使用捆绑程序安装所需的gem
gem install bundler
bundle install
然后跑
jruby hawkfx.rb
请享用!
翻译自: https://www.javacodegeeks.com/2016/05/introducing-hawkfx.html