first take a look at the java sources and try to understand the reason... if isn't resolved take a look at javascript sources...... i don't have any answer.... i didn't know workarounds.... bye pat
In data 05 aprile 2010 alle ore 09:58:25, lanz <[email protected]> ha scritto:
Hi all, I made a test to the gwt-ext demo on tab panels. I put it in a cardLayout panel. import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.RootPanel; import com.gwtext.client.core.EventObject; import com.gwtext.client.widgets.*; import com.gwtext.client.widgets.event.ButtonListenerAdapter; import com.gwtext.client.widgets.event.TabPanelListenerAdapter; import com.gwtext.client.widgets.layout.CardLayout; import com.gwtext.client.widgets.layout.VerticalLayout; import com.gwtext.client.widgets.menu.BaseItem; import com.gwtext.client.widgets.menu.Item; import com.gwtext.client.widgets.menu.Menu; import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter; public class MyTest implements EntryPoint { private TabPanel tabPanel; private int index; private Menu menu; public void onModuleLoad() { try{ Panel panel = new Panel(); panel.setBorder(false); panel.setPaddings(15); Panel verticalPanel = new Panel(); verticalPanel.setLayout(new VerticalLayout(15)); final Panel mytabPanel = new Panel();//TabPanel -> Panel; mytabPanel -> myPanelCardLayout // mytabPanel.setActiveTab(0); mytabPanel.setLayout(new CardLayout());//CardLayout -->>fitlayout mytabPanel.setTitle("Request Wizard"); mytabPanel.setPaddings(15); mytabPanel.setHeight(850); mytabPanel.setWidth(850); Panel sample1Panel = new Panel(); sample1Panel.setTitle("Step 1"); // sample1Panel.setAutoHeight(true); sample1Panel.setHeight(800); sample1Panel.setWidth(800); sample1Panel.setId("card-1"); final Panel detailsPanel = new Panel(); detailsPanel.setHeight(800); detailsPanel.setWidth(800); //detailsTab.setAutoScroll(true); detailsPanel.setTitle("Step 2"); detailsPanel.setId("card-2"); Button button = new Button("Add Tab", new ButtonListenerAdapter() { public void onClick(Button button, EventObject e) { Panel tab = addTab(); tabPanel.activate(tab.getId()); tabPanel.scrollToTab(tab, true); } }); button.setIconCls("new-tab-icon"); //verticalPanel.add(button); sample1Panel.add(button); tabPanel = new TabPanel(); tabPanel.setResizeTabs(true); tabPanel.setMinTabWidth(115); tabPanel.setTabWidth(135); tabPanel.setEnableTabScroll(true); tabPanel.setWidth(450); tabPanel.setHeight(250); tabPanel.setActiveTab(0); tabPanel.addListener(new TabPanelListenerAdapter() { public void onContextMenu(TabPanel source, Panel tab, EventObject e) { showMenu(tab, e); } }); for (index = 0; index <13; index++) { addTab(); } verticalPanel.add(tabPanel); detailsPanel.add(verticalPanel); mytabPanel.add(sample1Panel); mytabPanel.add(detailsPanel); //-->>Next and Previous Button ButtonListenerAdapter listener = new ButtonListenerAdapter() { public void onClick(Button button, EventObject e) { String btnID = button.getId(); CardLayout cardLayout = (CardLayout) mytabPanel.getLayout(); String panelID = cardLayout.getActiveItem().getId(); if (btnID.equals("move-prev")) { if (panelID.equals("card-4")) { cardLayout.setActiveItem(2);// 1>2 } else if(panelID.equals("card-3")){ cardLayout.setActiveItem(1); }else if(panelID.equals("card-2")){ cardLayout.setActiveItem(0); } } else { //move-next if (panelID.equals("card-1")) { cardLayout.setActiveItem(1); // detailsPanel.doLayout(); // mytabPanel.doLayout(); //panel.doLayout(); } else if(panelID.equals("card-2")){ cardLayout.setActiveItem(2); // mytabPanel.doLayout(); } } } }; Toolbar toolbar = new Toolbar(); ToolbarButton backButton = new ToolbarButton("Back", listener); backButton.setId("move-prev"); toolbar.addButton(backButton); toolbar.addFill(); ToolbarButton nextButton = new ToolbarButton("Next", listener); nextButton.setId("move-next"); toolbar.addButton(nextButton); mytabPanel.setBottomToolbar(toolbar); mytabPanel.setActiveItem(0); panel.add(mytabPanel); Viewport viewport = new Viewport(panel); // RootPanel.get().add(panel); }catch(Exception ex){ ex.printStackTrace(); } } private void showMenu(final Panel tab, EventObject e) { if (menu == null) { menu = new Menu(); Item close = new Item("Close Tab"); close.setId("close-tab-item"); close.addListener(new BaseItemListenerAdapter() { public void onClick(BaseItem item, EventObject e) { tabPanel.remove(tabPanel.getActiveTab()); } }); menu.addItem(close); Item closeOthers = new Item("Close Other Tabs"); closeOthers.setId("close-others-item"); closeOthers.addListener(new BaseItemListenerAdapter() { public void onClick(BaseItem item, EventObject e) { Component[] items = tabPanel.getItems(); /*for (int i = 0; i < items.length; i++) { Component component = items[i]; if (! component.getId().equals(tabPanel.getActiveTab().getId())) { tabPanel.remove(component); } } */ } }); menu.addItem(closeOthers); } BaseItem closeOthers = menu.getItem("close-others-item"); if (tabPanel.getItems().length == 1) { closeOthers.disable(); } else { closeOthers.enable(); } menu.showAt(e.getXY()); } private Panel addTab() { Panel tab = new Panel(); tab.setAutoScroll(true); tab.setTitle("New Tab " + (++index)); tab.setIconCls("tab-icon"); tab.setHtml("Tab Body " + index + "<br/><br/>" + getBogusMarkup()); tab.setClosable(true); tabPanel.add(tab); return tab; } private static String getBogusMarkup() { return "<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. " + "Sed metus nibh, sodales a, porta at, vulputate eget, dui. " + "In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, " + "cursus a, fringilla vel, urna."; } } //<<==================== The scrollbar of the tab Panel won't display if its not in the first panel of the cardLayout. Is there any work around for this? I tried the mytabPanel.doLayout() but still won't activate the scrollbar of the tabPanel programmatically. Thanks, Lanz On Mar 26, 2:31 pm, lanz <[email protected]> wrote:Hi all, I am working on a panel with a CardLayout which is formerly a TabPanel. So it looks like a wizard with previous and next buttons.Now in one of the panels or page I have a TabPanels that shows the selected materials of the user per tab. The problem is when I have many tabs that won't fit anymore in the tab panel area, the scroll bar doesn't show which is expected to show. This happened when I used CardLayout. I already have the setEnableTabScroll() but still won't succeed. I have used the doLayout() method of the tabPanel but was not also successful. //================================= tabPanel = new TabPanel(); tabPanel.setResizeTabs(true); tabPanel.setMinTabWidth(115); tabPanel.setTabWidth(135); tabPanel.setEnableTabScroll(true); //tabPanel.setAutoScroll(true);//-->error tabPanel.setWidth(700);// 450->600 // tabPanel.setAutoHeight(true); // tabPanel.setAutoWidth(true); tabPanel.setHeight(700); // 250-> 700 addTab(null,"default"); //tabPanel.setActiveTab(0); tabPanel.addListener(new TabPanelListenerAdapter() { public void onContextMenu(TabPanel source, Panel tab, EventObject e) { showMenu(tab, e); } }); //============================================private Panel addTab(Panel intendedUseform,String tabTitle_loc) { //test data only Panel tab = new Panel(); tab.setAutoScroll(true); tab.setTitle(tabTitle_loc);System.out.println(">>inside addTab... tabTitle_loc = " +tabTitle_loc +" tab.getId() = " +tab.getId() ); tab.setIconCls("tab-icon"); if(tabTitle_loc.equals("default")){ tab.setHtml("<br/><br/>" + getBogusMarkup()); //intendedUseform.setId(tab.getId()); }else{ tab.add(intendedUseform); } tab.setClosable(false);//change true to false tabPanel.add(tab); tabPanel.doLayout();//to show scrollbar return tab; } //============================================ I hope you can share some ideas regarding this matter. Thanks, Lanz
-- You received this message because you are subscribed to the Google Groups "GWT-Ext Developer Forum" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/gwt-ext?hl=en.
