2014-10-11 48 views
1

我是Vaadin的新手,我正在使用TabSheet附加一些標籤。我想知道是否可以從他們的標題中獲得更多功能。 例如,當選擇一個選項卡並且用戶單擊其標題時,會出現一個下拉菜單。 我已經試用了TabSheet的現有偵聽器,並且我得出結論說我必須創建一個自定義偵聽器。問題是,當我點擊選定的標籤標題時,我無法找到解決事件的方法...Vaadin TabSheet。標籤標題中的其他功能

回答

2

您可以在TabSheet上使用SelectedTabChangeListener。當單擊標題時它會觸發事件,並且您可以重新選擇當前標籤等。這會很麻煩。

爲什麼不使用MenuBar?這不正是你想要的嗎? https://demo.vaadin.com/valo-theme/#!menubars

+1

謝謝您的回答,但我一直在尋找爲了完全不同的東西。我會盡量使用你的想法菜單吧! – kostia 2014-12-07 08:57:48

+0

從[文檔](https://vaadin.com/docs/-/part/framework/layout/layout-tabsheet.html#layout.tabsheet.events):*重新選擇當前選定的選項卡不會觸發事件* 。如果他想在當前活動選項卡中顯示下拉菜單,則可能會出現問題。事實上,這是我的情況,它阻止我爲我的目的使用SelectedTabChangeListener。 – Pere 2017-03-24 08:57:32

1

我有同樣的問題(Vaadin 7.4),你可以做什麼是你可以圍繞一個<div onclick="...">captionText</div>的標籤說明,並添加JavaScript回調函數:

final TabSheet sheet = new TabSheet(); 
sheet.setTabCaptionsAsHtml(true); // don't forget this! 

// This is the callback 
JavaScript.getCurrent().addFunction("clickedTab", new JavaScriptFunction() { 
    @Override 
    public void call(JsonArray arguments) { 
     LOGGER.info(arguments.getString(0)); // this is 'some identifier'     
    } 
}); 

final TabSheet.Tab tab = sheet.addTab(component, "<div onclick=\"clickedTab('some identifier');\">captionText/div>"); 
+0

非常感謝Erik!我會在一個新項目中嘗試一下! – kostia 2015-10-26 10:56:22