Monday, December 28, 2009

Tabs – Could they be easier???

Tabs in APEX are overly complex for the vast majority of applications and users. I believe the problem is related to two things which are somewhat interconnected:

  1. A Lacking UI
  2. Tab Sets

Let me explain…

A Lacking UI
The problem (as I see it):

First of all, it’s obvious that some attention to detail was given to the tabs screen – we even see a basic mock up of our tabs. It just doesn’t go far enough. The UI doesn’t do enough to abstract the underlying data model.

Let’s say for example I start with no tabs and later decide to add one level tabs. If I try to first add tabs at the parent level, which it allows me to do,  it will fail with this error: Tab set or new tab set must be specified. So I can’t create a parent without a child? I suppose that could make sense… Ok, so I’ll go down to the first level and create my first tab there. But the first screen asks me to create a Tab Set, and the next screen, a Parent Tab Set and Parent Tab Set Text. But I don’t want two levels! You get the idea…

A (possible) solution:

I’d like to see an application level attribute that specifies whether the application is using no tabs, one level, or two level tabs – could be read only in the Application Definition page. Then the interface through which we work with tabs could be reworked taking that attribute into account.

  • If the application is currently set to “no tabs” and I go to Tabs in the Shared Components, I’d like to see a big/simple/clean message that lets me know I’m not using tabs and presents me with a button to enable tabs for the application.
  • If the application is currently set to “one level tabs”, I’d only like to see one level of tabs. Pseudo parent tabs are not relevant to me – they’re just confusing. I’d also like to see two big buttons that allow me to either disable tabs for the application or enable two level tabs for the application.
  • If the application is set to “two level tabs”, I’d like to see both levels. I’d also like to see two buttons that allow me to either disable tabs for the application or go down to one level tabs for the application.

Of course these buttons that allow me to change the tab settings for the application would take me into a wizard to break down the process, somewhat like they do now but with two big differences: I’d remove tab sets related details altogether (more on that later) and I would add some things to attempt to make it a more complete transition, for example, a selection for a new default page template that uses the tab class I’m going to.

Tab Sets
The problem (as I see it):

Frankly, I don’t really see what they are for; tab sets just seem to add to the confusion surrounding tabs. Why do we need tab sets – standard or parent? As best I can tell, they exist to make the process of linking standard tabs to parent tabs easier. But that alone doesn’t seem sufficient to justify their existence so I must missing something…

Think about the options presented when creating a new page:

Would you like to use tabs for this new page?

  • No
  • Yes - Create a new tab set and a new tab within the tab set.
  • Yes - Use an existing tab set and create a new tab within the existing tab set.
  • Yes - Use an existing tab set and reuse an existing tab within that tab set.

If my application was set to no tabs, as indicated by the new application level attributed I mentioned earlier, why should I even see this step in the process?

If my application was set to 1 level tabs, why should I care about tab sets? I think this would make more sense:

Would you like to use tabs for this new page?

  • No
  • Yes - Create a new tab.
  • Yes - Reuse an existing tab.

If my application was set to 2 level tabs, I still don’t think I need tab sets. I think we could start with this:

Would you like to use tabs for this new page?

  • No
  • Yes

If I select Yes, I should first have to choose the parent tab, then choose to either create a new standard tab or reuse an existing one linked to the selected parent.

A (possible) solution:

Make tab sets a “feature” that is disabled by default and must be enabled for an application. This way new users will not have to be burdened by them and users that like them can still get to them.

 

What do YOU think??? Let me know if agree, disagree, or have any ideas of your own.

Post a Comment