JavaFX:在FXML中添加访问角色支持,无需对控件进行子类化

时间:2014-09-18 06:57:17

标签: javafx fxml

我使用安全子系统来控制用户访问权限。 (我的问题可能不依赖于哪一个,所以让我们假设控制器(Java)方面有一个方法,它可以判断当前用户是否具有给定的权限。)

我想控制FXML级别表单上某些控件的行为和可访问性。像这样:

<Button ... disable="$controller.hasNotPermission" permission="permissionCode">

<Text ... visible="$controller.hasPermission" permission="permissionCode">

控制器的has(Not)Permission方法将从调用者控件获取权限属性值,并根据用户角色进行检查。

简单的方法是创建我自己的控件(PermissionControlledButton,PermissionControlledText等),并将这个属性和支持函数添加到它们。这种方法的问题是需要对几十个控件类进行子类化,并为所有控件类添加相同的代码(即使它只有几行)。

另一种可能的方法是将此逻辑移动到我的控制器的initilaize方法并将它们绑定在那里。

但是,如果有任何方法可以将此信息保存在FXML级别并避免继承子类,那么我很有勇气?

0 个答案:

没有答案