Search code examples
gwtgwt-tablayoutpanel

TabLayoutPanel disable a Tab GWT


How can i disable a tab (i.e the user cannot open the tab when he clicks on it) in the TabLayoutPanel?I searched online but was not able to find a solution

Thanks


Solution

  • Use a BeforeSelectionHandler:

    TabLayoutPanel myPanel = new TabLayoutPanel();
    // Add children...
    
    myPanel.addBeforeSelectionHandler(new BeforeSelectionHandler<Integer>() {
      @Override
      public void onBeforeSelection(BeforeSelectionEvent<Integer> event) {
        // Simple if statement - your test for whether the tab should be disabled
        // will probably be more complicated
        if (event.getItem() == 1) {
          // Canceling the event prevents the tab from being selected.
          event.cancel();
        }
      }
    });
    

    If you want to style the disabled tab differently than enabled tabs, you can use TabLayoutPanel#getTabWidget to get the tab widget and add a style name to it.