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.

Reply via email to