Browse Source

Added removeTab(Tab) to TabSheet, fixes #5179

svn changeset:13674/svn branch:6.4
tags/6.7.0.beta1
Marc Englund 14 years ago
parent
commit
dfdd9950c4

+ 26
- 0
src/com/vaadin/ui/TabSheet.java View File

@@ -150,6 +150,32 @@ public class TabSheet extends AbstractComponentContainer {
}
}

/**
* Removes a {@link Tab} and the component associated with it, as previously
* added with {@link #addTab(Component)},
* {@link #addTab(Component, String, Resource)} or
* {@link #addComponent(Component)}.
* <p>
* If the tab was selected, the first eligible (visible and enabled)
* remaining tab is selected.
* </p>
*
* @see #addTab(Component)
* @see #addTab(Component, String, Resource)
* @see #addComponent(Component)
* @see #removeComponent(Component)
* @param tab
* the Tab to remove
*/
public void removeTab(Tab tab) {
for (Component c : tabs.keySet()) {
if (tabs.get(c).equals(tab)) {
removeComponent(c);
break;
}
}
}

/**
* Adds a new tab into TabSheet. Component caption and icon are copied to
* the tab metadata at creation time.

+ 19
- 0
tests/src/com/vaadin/tests/components/tabsheet/RemoveTabs.java View File

@@ -11,6 +11,7 @@ import com.vaadin.ui.Component;
import com.vaadin.ui.Label;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.TabSheet.Tab;
public class RemoveTabs extends TestBase {
@@ -19,6 +20,7 @@ public class RemoveTabs extends TestBase {
protected Component[] tab = new Component[5];
private Button closeCurrent;
private Button closeCurrentWithTab;
private Button closeFirst;
private Button closeLast;
private Button reorderTabs;
@@ -53,6 +55,14 @@ public class RemoveTabs extends TestBase {
}
});
closeCurrentWithTab = new Button("Close current tab with Tab");
closeCurrentWithTab.addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
closeCurrentTabWithTab();
}
});
closeFirst = new Button("close first tab");
closeFirst.addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
@@ -80,6 +90,7 @@ public class RemoveTabs extends TestBase {
getLayout().addComponent(closeFirst);
getLayout().addComponent(closeLast);
getLayout().addComponent(closeCurrent);
getLayout().addComponent(closeCurrentWithTab);
getLayout().addComponent(reorderTabs);
}
@@ -91,6 +102,14 @@ public class RemoveTabs extends TestBase {
}
}
private void closeCurrentTabWithTab() {
Component c = tabsheet.getSelectedTab();
if (c != null) {
Tab t = tabsheet.getTab(c);
tabsheet.removeTab(t);
}
}
private void closeFirstTab() {
tabsheet.removeComponent((Component) tabsheet.getComponentIterator()
.next());

Loading…
Cancel
Save