2016-07-04 5 views
0

AjaxTabsを追加して削除してApache Wicket 7.3で動的タブ付きパネルを作成したいとします。 AjaxTabはJQueryの拡張であるため、この拡張モジュールのTabbedPanelも使用する予定です。Wicketでcom.googlecode.wicket.jquery.ui.widget.tabs.TabbedPanelを拡張するには?

タブを削除するには、タブのヘッダーに[x]リンクを追加して、確認のためにタブにフォームを送信します。フォームに検証エラーがある場合は、ダイアログボックスが開きます。私はこのようなTabbedPanelを拡張することについて考え:

import com.googlecode.wicket.jquery.ui.widget.tabs.TabbedPanel; 
public class MyTabbedPanel extends TabbedPanel { 
??? 

次のマークアップでMyTabbedPanel.html

<wicket:panel xmlns:wicket="http://wicket.apache.org"> 
<div wicket:id="tabs-container" class="tab-row"> 
    <ul> 
    <li wicket:id="tabs"> 
     <a wicket:id="link" href="#"><span wicket:id="title">{title}</span></a> 
     <a wicket:id="closeLink" href="#" style="float:left;" 
     class="ui-icon ui-icon-close ui-icon-circle-close">(x)</a> 
    </li> 
    </ul> 
</div> 
<div wicket:id="panel" class="tab-panel"><!-- no panel --></div> 
</wicket:panel> 

私はWicketの-ID "closeLink" にAjaxSubmitLinkを追加することができますどのように?

自分のリンク(およびその他のアイコンやもの)を追加するには、どのメソッドを上書きする必要がありますか?

答えて

0

オーバーライド#newTabContainer()

@Override 
protected LoopItem newTabContainer(final int tabIndex) { 
    LoopItem item = super.newTabContainer(tabIndex); 
    item.add(new Link<Void>("closeLink") { 
    @Override 
    public void onClick() { 
     getTabs().remove(tabIndex); 
    } 
    }); 
    return item; 
} 
+0

こんにちはスベン。ヒントのためのThx。しかし、どのようにタブを削除するには?新しい「アイテム」はここでは機能しません。私はそれにタブとパネルにアクセスする必要があります。 –

+0

OK。回答が受け入れられました。 com.googlecode.wicket.jquery.ui.widget.tabs.TabbedPanelを使用すると、この質問にもお答えできますか?どのメソッドをオーバーライドする必要がありますか? –

関連する問題