我正在开发一个GWT应用程序,其中导航主要是TabLayoutPane,其中每个选项卡代表不同的功能。我需要的是只显示允许用户查看的选项卡(每个用户都有一个角色,如用户或管理员)。
问题是我不知道如何实现这一点,尤其是使用 UIBinder。
以下是我的想法:
- 不要使用 UIBinder 并以编程方式构建 TabLayoutPanel。
- 使用UIBinder,并根据每个用户角色隐藏某些选项卡(这听起来效率很低)。
还是有更好的方法来实现这样的事情?
我会选择第一个方法,因为它更干净,恕我直言。但是,请确保不要将其用作安全功能,并且不要显示不允许非管理员查看的任何敏感信息。由于所有构造都将在浏览器中的javascript中进行,因此在没有适当授权的情况下欺骗浏览器显示管理选项卡将相当简单。
我建议选项 2。
GWT产生较少量的JavaScript,因为UiBinder中的选项卡可以转换为HTML和CSS。要隐藏选项卡及其内容:
aTabPanel.getTabWidget(0).setVisible(false);
aTabPanel.getTabWidget(0).getParent().setVisible(false);
不是很多代码,但第二行确保除了选项卡的内容之外,选项卡本身是隐藏的。