Skip to content

TabbedPane

Pawel Pastuszak edited this page Dec 7, 2018 · 11 revisions

TabbedPane (source) is a well... tabbed pane like you can see in your browser or almost any text editor. TabbedPane is available since VisUI 0.7.0

Except boring features like adding, removing, inserting tabs you can do: marking tab as dirty so when user will try to close it, pane will automatically display “Do you want to save changes?” dialog. You can make a tab which user won’t be able to close. You can also allow user deselect tab, allowing that there won't be any active tab.

Displaying tab content

TabbedPane doesn't manage displaying tab content for you, you have to do it manually. This approach gives more flexibility. TabbedPane#getTable() returns ONLY table for tab switcher:

To display current content tab you have to add listener to TabbedPane and when tab was switched you have to get tab content table (tab.getContentTable()) and add it to some other table what will display tab view.

Example:

tabbedPane.addListener(new TabbedPaneAdapter(){
    @Override
    public void switchedTab (Tab tab) {
        Table content = tab.getContentTable();

        someOtherTable.clearChildren();
        someOtherTable.add(content).expand().fill();
    }
});

Example new tab code

public class TestTab extends Tab {
	Table content = new Table();

	public TestTab () {
		super(false, true); //tab is not savable, tab is closeable by user

		content.add(new VisLabel("Some widget"));
		//content.add(...)
	}

	@Override
	public String getTabTitle () {
		return "Test Tab";
	}

	@Override
	public Table getContentTable () {
		return content;
	}
}

then to add it to pane just do:

tabbedPane.add(new TestTab());
// -- OR --
tabbedPane.insert(index, new TestTab());