...
- The tab()....build() chain is now the preferred way to build new tabs
- All old "add" methods now return an ITabHandle.
- The builder now gives errors if its build method is not called.
- The TabBuilder and TabInstance classes are now final.
- The IDisplayListener class (of which the usage was one big bug) has been removed and has been replaced with onDisplay and onHide listeners that can be set on a tab.
- The setOnClose method in ITabHandle has been removed and has moved to the tab builder.
- Images used in the tab header can now be either a string or some supported font icon set name (like a constant from FaIcon).
- The ITabHandle interface now represents a tab, and all operations possible on it:
- close() closes the tab associated with the handle
- select() makes the tab the current tab
- updateLabel() sets a new label name and optionally an image
- updateContent sets new content into a tab. If the tab was defined as lazy the new content will be rendered only when the tab is made visible.
- The TabPanel.setLabel() method has been removed and is replaced with updateLabel() on a ITabHandle.
The look- and feel of the tab panel has changed from the sad, austere squares used before to a rounded look:
The tab panel html structure has changed too: the code now generates just the ul/li structure for the header, without "empty" li's. The basic structure is:
Code Block |
---|
<div class="ui-tab-c">
<div class="ui-tab-hdr>
<ul><li>tab1</li><li>tab2</li></ul>
</div>
<div class="ui-tab-c">
<div>...content for tab 1</div>
<div>...content for tab 2</div>
</div>
</div> |
The content part of the tab is now a single div that contains the individual tab's content divs. This makes it easy to style the panels separately from the tab content area itself.
The whole look of the tab panel is now controlled by scss.
Form layout and form builders
...