Wicketで新しいウィンドウ(タブ)での表示を抑制するための試行錯誤(中)
どうしても画面を新しいタブ・ウィンドウでの表示を抑制したいというニーズがあり、Wicketで実現可能かどうか、試行錯誤中。
いまのところ、Wicketの複数ウィンドウサポート機能をオンにした上で、ページマップの数や名前でウィンドウ(タブ)をcloseする案をチームで検討していて、一見行けそうな気がしているものの、まだまだ隠れた問題がありそう。
Applicationのinitメソッド
protected void init() { super.init(); getPageSettings().setAutomaticMultiWindowSupport(true); }
全てのページの親となるWebPageクラス
public class HeaderPage extends WebPage { public HeaderPage() { // PortalSession.get().getPageMaps().size() > 1 などの条件の方が良い? if(getPageMap().getName() < null) { /* ウィンドウを閉じる処理や、不要になったPageMapを removeする処理をここに書く */ } } }
上記のソースで現在の問題点として解っているのは、ModalWindowやPopupWindowの表示も阻害してしまうこと。
ModalWindowやPopupWindowを阻害せずに、意図したURLの新しいタブ・ウィンドウでの表示だけを抑制できる方法は無いものかなあ。
もし、良い意見をお持ちの方がいらっしゃいましたらよろしくお願いします……