/**
* Sencha GXT 3.0.0b - Sencha for GWT
* Copyright(c) 2007-2012, Sencha, Inc.
* licensing@sencha.com
*
* http://www.sencha.com/products/gxt/license/
*/
package com.sencha.gxt.explorer.client.tabs;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.explorer.client.model.Example.Detail;
import com.sencha.gxt.widget.core.client.TabItemConfig;
import com.sencha.gxt.widget.core.client.TabPanel;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.button.ToggleButton;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
@Detail(name = "Advanced Tabs", category = "Tabs", icon = "advancedtabs")
public class AdvancedTabsExample implements IsWidget, EntryPoint {
private VerticalPanel vp;
private TabPanel advanced;
private int index = 0;
public Widget asWidget() {
if (vp == null) {
vp = new VerticalPanel();
vp.setSpacing(10);
HorizontalPanel hp = new HorizontalPanel();
hp.setSpacing(5);
TextButton add = new TextButton("Add Tab");
add.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
addTab();
advanced.setActiveWidget(advanced.getWidget(advanced.getWidgetCount() - 1));
}
});
hp.add(add);
ToggleButton toggle = new ToggleButton("Enable Tab Context Menu");
hp.add(toggle);
vp.add(hp);
advanced = new TabPanel();
advanced.setPixelSize(600, 250);
advanced.setAnimScroll(true);
advanced.setTabScroll(true);
advanced.setCloseContextMenu(true);
toggle.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
@Override
public void onValueChange(ValueChangeEvent<Boolean> event) {
advanced.setCloseContextMenu(event.getValue());
}
});
toggle.setValue(true);
while (index < 7) {
addTab();
}
advanced.setActiveWidget(advanced.getWidget(6));
vp.add(advanced);
}
return vp;
}
public void onModuleLoad() {
RootPanel.get().add(asWidget());
}
private void addTab() {
Label item = new Label("Tab Body " + (index + 1));
item.addStyleName("pad-text");
advanced.add(item, new TabItemConfig("New Tab " + ++index, index != 1));
}
}