如何在 Wicket 中扩展 com.googlecode.wicket.jquery.ui.widget.tabs.TabbedPanel?
How to extend com.googlecode.wicket.jquery.ui.widget.tabs.TabbedPanel in Wicket?
我想在 Apache Wicket 7.3 中创建一个添加和删除 AjaxTabs 的动态选项卡式面板。由于 AjaxTab 是一个 JQuery 扩展,我也打算使用此扩展中的 TabbedPanel。
要删除选项卡,我想将 [x] link 添加到选项卡 header 以发送选项卡上的表单以进行验证。如果表单有验证错误,将打开一个对话框。我考虑过像这样扩展 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>
如何将 AjaxSubmitLink 添加到 Wicket-ID "closeLink"?
我必须覆盖哪些方法才能添加我的 link(以及其他一些图标或内容)?
覆盖 #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;
}
我想在 Apache Wicket 7.3 中创建一个添加和删除 AjaxTabs 的动态选项卡式面板。由于 AjaxTab 是一个 JQuery 扩展,我也打算使用此扩展中的 TabbedPanel。
要删除选项卡,我想将 [x] link 添加到选项卡 header 以发送选项卡上的表单以进行验证。如果表单有验证错误,将打开一个对话框。我考虑过像这样扩展 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>
如何将 AjaxSubmitLink 添加到 Wicket-ID "closeLink"?
我必须覆盖哪些方法才能添加我的 link(以及其他一些图标或内容)?
覆盖 #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;
}