Tabbing Tab panel tabs?

Is there a way to tab through the different tab panels for a given tab panel? In other words can the user switch to different tab panels only using the keyboard (TAB key)?

I have not been able figure out how to set tab sequences to tabs.

As far as I know this is not supported by the current OS UI’s

Jan Blok:
As far as I know this is not supported by the current OS UI’s

What exactly do you mean by this. That the java support in the OS’s don’t support it or that the OS’s don’t support keyboard navigation at all in their OS.

If it is the second then this is not true. I know by experience that Mac OSX and WinXP can do this.

If it is the first then not much can be done until Apple and Microsoft (Sun) add this to Java.

I did look at another Java based program called LimeWire. I tested it in both WinXP and Mac OSX. They were both keyboard navigational. I could TAB into a tab of a tab panel and move from panel to panel via keyboard. So this lead me to say that Java does support this fuction.

Thanks

Well anything can be made in Java (by writing your own LAF) but if I open on Windows “My Computer” properties dialog Im unable tabbing trough the tabpanels!
In Servoy this behavour even if it was possible not be good, becouse the form panels on tabs are lazy loaded, by tabbing trough and thus showing it whould become quite slow.

Jan Blok:
Well anything can be made in Java (by writing your own LAF) but if I open on Windows “My Computer” properties dialog Im unable tabbing trough the tabpanels!

This is not true. If you open any properties window (including “My Computer”) and tab through the different window objects you will arrive at the “General” tab. It is highlighted by a thin dotted line. Once there the user is able to move from tab to tab via arrow keys (side to side and up or down). The same is for Mac OSX.

Jan Blok:
In Servoy this behavour even if it was possible not be good, becouse the form panels on tabs are lazy loaded, by tabbing trough and thus showing it whould become quite slow.

So, Servoy should be able to do this but the reason is Servoy has not been optimized to move from tab panel to panel very well.

Servoy has it working the same. If the tab has focus, you can use the left/right arrow to go to the next tab.

But, when the next tab is shown, the focus is removed from the tab. to me it seems the focus is lost completely. Nothing seems to have focus after changing tabs.

Paul

pbakker:
Servoy has it working the same. If the tab has focus, you can use the left/right arrow to go to the next tab.

Paul, how did you even get the focus on the tab in the first place so you could use the arrow keys to move, in Servoy. I am unable to get any kind of focus ring on a tab in Servoy.

By clicking on it with my mouse cursor…

Using WinXP and Kunstoff L&F without a theme.

Paul

pbakker:
By clicking on it with my mouse cursor…

Using WinXP and Kunstoff L&F without a theme.l

What is Kunstoff L&F?

The Look and Feel i selected (under preferences in Servoy)

pbakker:
By clicking on it with my mouse cursor…

Using WinXP

Paul is correct. In WinXP only if the user double clicks the tab the focus ring shows up. Then the user can use the arrow keys to move to another tab panel. One problem is once the a new tab panel is chosen the focus ring disappears from the current tab. Therefore the user has to use the mouse again to select a tab panel.

This method of gaining focus for the tab panel does not work at all in Mac OSX.

It seems that Servoy is using its own method of tab panels and not the OS’s or they have disabled the focus ring for the reason mentioned in an above post.

Any comments here?

I notice that when selecting another tab, the focus seems to go nowhereon the form (arrow up-down-left-right or enter do not seem to do anything).

Can the focus be put on the newly selected tab? this would solve the tabbing through tabs issue, but that is not the reason I ask.

I also have the following issue: I added a menuitem witht he Kydome Menus plugin and assigned F5 to the menuitem. After selecting a differetn tab and the focus is lost, hitting F5 also doesn’t trigger the appropriate global method.

Tnx in advacne,

Paul

raymanj:
It seems that Servoy is using its own method of tab panels and not the OS’s or they have disabled the focus ring for the reason mentioned in an above post.

It’s very well possible the form on the tab grabs the focus when shown, why is tabbing through the tabs so important?

As I mentioned in my last post, it seems that the form on the newly selected tab does NOT get the focus.

After selecting a new tab, the only way to get the focus on anything is by hitting the TAB-key and I think this only is the case when the form shown in the tab is part of a module (?!?!?).

I think it would be nice if the focus stays on the tab itself, so you can use the keyboard to move to the next tab. Or otherwise, put the focus somewhere on the newly selected form.

This is my only real issue here: The focus being nowhere after selecting another tab. Because in that scenario, hitting a programmed key doesn’t fire the attached global method. I’ve tested this quite a bit and 9 out of ten times, the newly selected form does not get focus. 1 out of 10 times it does, and it seems that that only happens when the previous form was a from from a module…

Offcourse, I can think of even nicer things:

  • What about the ability to set a keyboard shortcut to display a certain tab?

Paul

Jan Blok:
Why is tabbing through the tabs so important?

Some users like to use the keyboard to navigate the UI. I can understand why they want this. When I watch a user who has used a software for a long time they automatically look for ways to become more efficient. One of the ways that users do this is to use the mouse less. Taking a hand off the keyboard and moving it to the mouse to click and then replace it back on the keyboard is a lot of wasted time. So the user subconsciously wants to stop this action.

If anyone is interested, I have set up some global methods that allow the user to switch from tab to tab in any tabpanel as well as from record to record in any portal using just the keyboard. It only requires that you have kept the default naming conventions that Servoy uses for tabpanels and portals broadly the same. (Servoy starts off the name of each tabpanel as ‘tabs_70’ and each portal as ‘portal_relationship’. You need to start each tabpanel name with at least ‘tabs’ and start each portal name as ‘portal’ and NOT have other Servoy elements start with those names. I think all of that is pretty standard. On the other hand if you have some other naming convention throughout your solution - as long as it is consistent - you could just do a ‘find and replace’ within the methods and it would also work.) I have only set the switching of tabpanel to the ‘lowest level’ currently showing in a form because that is how we use tabpanels. However it could be used on ‘higher up’ tabpanels with a bit of work (involving arrays of arrays). If anyone is interested I’m happy to share it. And I could post it at Servoy magazine too if I make it a little more ‘presentable’!

Hi John

Sounds very interesting - Servoy Magazine would be the ideal place to post as you will probably get feedback on refining the arrays within arrays from arraymeister David.

Graham Greensall
Worxinfo Ltd