I have just made some changes to SpanLabel to fix a regression but don't know if it is related to this issue. I haves added your provided test case as a Sample, named TabsWityhSpanLabelsTest. You can run the sample against the latest sources in the Samples Runner. This is what I see when I run the sample. Is this correct, or is there something wrong with this layout?
[image: image.png] On Tue, Aug 27, 2019 at 6:57 AM <[email protected]> wrote: > If you are experiencing an issue please mention the full platform your > issue applies to: > IDE: NetBeans/Eclipse/IDEA Netbeans 11 > Desktop OS Windows 10 Pro > Simulator Latest > Device PC, IOS > > Recent build (last 10 days approx) has produced an unusual horizontal with > TABS component display. > See attached pic. > > Purpose of this overriding TABS class is to provide multi line text support > > It appears that the SpanButton class is the problem as I see similar > behavior placing this component in a table container. > > Here is a simple re-producible case > > Form hi = new Form("Custom Tabs", new BorderLayout()); > Tabs tb = new Tabs(Component.TOP) { > @Override > protected Component createTab(String title, Image icon) { > SpanButton custom = new SpanButton(title); > custom.setName("SpanButton"); > custom.setIcon(icon); > custom.setUIID("Container"); > custom.setTextUIID("mpiTabMetalUnSelected"); > custom.setIconPosition(BorderLayout.NORTH); > return custom; > } > > @Override > public String getTabTitle(Component tab) { > return ((SpanButton) tab).getText(); > } > > @Override > public String getTabTitle(int index) { > String TabTitle = ""; > try { > for (int a = 0; a < getComponentCount(); a++) { > Container cnt = (Container) getComponentAt(a); > for (int b = 0; b < cnt.getComponentCount(); > b++) { > if (cnt.getComponentAt(b).getName() != > null && cnt.getComponentAt(b).getName().compareToIgnoreCase("SpanButton") > == 0 && index == b) { > return > getTabTitle(cnt.getComponentAt(b)); > } > } > } > } catch (Exception g) { > g.printStackTrace(); > } > return TabTitle; > } > > @Override > public void setTabTitle(String title, Image icon, int > index) { > try { > for (int a = 0; a < getComponentCount(); a++) { > Container cnt = (Container) getComponentAt(a); > for (int b = 0; b < cnt.getComponentCount(); > b++) { > if (cnt.getComponentAt(b).getName() != > null && cnt.getComponentAt(b).getName().compareToIgnoreCase("SpanButton") > == 0 && index == b) { > SpanButton custom = (SpanButton) > cnt.getComponentAt(b); > custom.setText(title); > return; > } > } > } > } catch (Exception g) { > g.printStackTrace(); > } > } > > @Override > protected void setTabSelectedIcon(Component tab, Image > icon) { > ((SpanButton) tab).setPressedIcon(icon); > } > > protected void selectTab(Component tab) { > for (int a = 0; a < this.getComponentCount(); a++) { > Container cmp1 = (Container) > this.getComponentAt(a); > int selIndex = this.getSelectedIndex(); > for (int b = 0; b < cmp1.getComponentCount(); b++) > { > if (cmp1.getComponentAt(b).getName() != null > && cmp1.getComponentAt(b).getName().startsWith("SpanButton") == true) { > if (selIndex == b) { > ((SpanButton) > tab).setTextUIID("mpiTabMetalSelected"); > } else { > ((SpanButton) > cmp1.getComponentAt(b)).setTextUIID("mpiTabMetalUnSelected"); > } > } > } > } > } > > @Override > protected void bindTabActionListener(Component tab, > ActionListener l) { > ((SpanButton) tab).addActionListener(l); > } > }; > tb.addSelectionListener(new SelectionListener() { > @Override > public void selectionChanged(int oldSelected, int > newSelected) { > } > }); > > tb.setTabUIID(null); > Button btn = new Button("Any Button Action"); > tb.addTab("Tab 1", btn); > tb.addTab("Really long\ntext in tab", new Label("T2")); > tb.addTab("Tab 3", new Label("T3")); > tb.addTab("Tab 4", new Label("T4")); > hi.add(BorderLayout.CENTER, tb); > hi.show(); > > Regards > > -- > You received this message because you are subscribed to the Google Groups > "CodenameOne Discussions" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/codenameone-discussions/0c600f02-f7a6-4884-ba5e-68c7600ffdf7%40googlegroups.com > <https://groups.google.com/d/msgid/codenameone-discussions/0c600f02-f7a6-4884-ba5e-68c7600ffdf7%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- Steve Hannah Software Developer Codename One http://www.codenameone.com -- You received this message because you are subscribed to the Google Groups "CodenameOne Discussions" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/codenameone-discussions/CAGOYrKX7vhUZK7B_VwNK9WQSr-_y%3DsAPE1pL7Db%2B3gEsjQvkgQ%40mail.gmail.com.
