/* * Smart GWT (GWT for SmartClient) * Copyright 2008 and beyond, Isomorphic Software, Inc. * * Smart GWT is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. Smart GWT is also * available under typical commercial license terms - see * http://smartclient.com/license * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.types.Alignment; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.CheckboxItem; import com.smartgwt.client.widgets.tab.Tab; import com.smartgwt.client.widgets.tab.TabSet; import com.smartgwt.client.widgets.tab.events.TabDeselectedEvent; import com.smartgwt.client.widgets.tab.events.TabDeselectedHandler; import com.smartgwt.client.widgets.tab.events.TabSelectedEvent; import com.smartgwt.client.widgets.tab.events.TabSelectedHandler; import com.google.gwt.core.client.EntryPoint; public class TabsSelectionDeselectionSample implements EntryPoint { public void onModuleLoad() { final Label welcomePane = new Label(); welcomePane.setContents("Welcome to the application"); welcomePane.setWidth100(); welcomePane.setAlign(Alignment.CENTER); final TabSet tabSet = new TabSet(); tabSet.setWidth(400); tabSet.setHeight(200); final Tab tabWelcome = new Tab(); tabWelcome.setTitle("Welcome"); tabWelcome.setPane(welcomePane); final Tab preferences = new Tab(); preferences.setTitle("Preferences"); preferences.addTabSelectedHandler(new TabSelectedHandler() { @Override public void onTabSelected(TabSelectedEvent event) { if (event.getTabPane() == null) { DynamicForm preferencesPane = new DynamicForm(); CheckboxItem useISCTabs = new CheckboxItem("useISCTabs"); useISCTabs.setTitle("Use SmartGWT tabs"); useISCTabs.setDefaultValue(false); useISCTabs.setRequired(true); preferencesPane.setFields(useISCTabs); tabSet.updateTab(event.getTab(), preferencesPane); } } }); preferences.addTabDeselectedHandler(new TabDeselectedHandler() { @Override public void onTabDeselected(TabDeselectedEvent event) { Object checked = ((DynamicForm)event.getTab().getPane()).getValue("useISCTabs"); if (checked.toString().equals("false")) { event.cancel(); } } }); tabSet.setTabs(tabWelcome, preferences); tabSet.draw(); } }