我想创建一个 GWT UI,我基本上将有一个加载 PanelA 对象的 HTML 页面。然后用户将做他们的事情并最终执行将他们移动到另一个视图/屏幕的操作。
我已经简化了我现有的视图,只包含一个按钮,它将用户移动到下一页等。为简单起见,我只有 2 个视图可以开始。这是我的启动入口点。
public class StockWatcher implements EntryPoint
{
public void onModuleLoad()
{
final RootPanel rootPanel = RootPanel.get();
rootPanel.add( PanelA.getInstance() );
}
}
这是 PanelA 类
public class PanelA extends HTMLPanel
{
private static PanelA panel;
private PanelA()
{
super("Panel A");
final RootPanel rootPanel = RootPanel.get();
Button btnNewButton = new Button("Go to panel B");
btnNewButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event)
{
rootPanel.clear();
rootPanel.add( PanelB.getInstance() );
}
});
add(btnNewButton);
}
public static PanelA getInstance()
{
if (panel == null)
{
panel = new PanelA();
}
return panel;
}
}
我的其他 PanelB 类与 PanelA 几乎相同,即让我回到 PanelA 的按钮 我的 UI 按需要工作。我的问题是,这种单例类型模式是正确或正确的方法吗?即有一堆单例 UI 视图在主面板上弹出/弹出?此外,通过 GWT 应用程序处理历史/面包屑跟踪的最佳方式是什么,即允许用户返回上一个屏幕,记住他们可能从 PanelA、PanelB 或 PanelC 导航到 PanelX