基本的に、PanelA オブジェクトをロードする単一の HTML ページを持つ GWT UI を作成したいと考えています。その後、ユーザーは自分のことを行い、最終的に別のビュー/画面に移動するアクションを実行します。
ユーザーを次のページに移動させるボタンを 1 つだけ含めるように、既存のビューを簡素化しました。簡単にするために、開始するビューは 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 に移動できることを念頭に置いて、ユーザーが前の画面に戻ることができるようにします。