Derik Whittaker



Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at
UI Thoughts

I was making some changes to our app today based on some user feedback.  As I started to implement the changes I had conundrum as to what approach to take.


Basically, I needed to implement changes to the UI’s behavior in certain situations based on business rules.  When needing to suppress UI actions (in terms of buttons, menu’s, etc) there are basically there are 3 options as I see it.  Enable/Disable the action, Show/Hide the action, or show/enable the action and prompt then user with a message when the attempt to perform the action.


Pros and Cons (as I see it) of each method


  • Pros
    • Very easy to code this
    • The user knows that functionality exits, but for some reason they cannot perform it when the button is disabled
  • Cons
    • The user knows that functionality exits, but for some reason they cannot perform it. – Unless they completely understand the business requirements they will NOT have a clue as to why the button is disabled or enabled.



  • Pros
    • Easy to code this, unless you have a complex UI
    • Removes the option from the view so the user does not attempt to perform the given action.
  • Cons
    • The visible actions list changes dynamically based on the current state. In my opinion it is never a good idea to hide actions from a user.   I would suggest that disabling would be far better then simply hiding the action.



Prompting the user

  • Pros
    • Relatively easy to code  this
    • The user is notified that they cannot perform the selected action, and the reason should be clearly explained so they have a complete understanding
  • Cons
    • Leads the user to think the action is available until they select it.  At this point is the ONLY way they know they cannot perform this option.


In my situation I went the enable/disabling of the button route.  Why you may ask?  Well because that is the pattern that the application current has.  I am would rather keep the same pattern (right or wrong) rather then implement a new one….

Posted 05-31-2007 3:08 PM by Derik Whittaker
Filed under:



Christopher Bennage wrote re: UI Thoughts
on 05-31-2007 10:19 PM

I'm influenced by RTS games, such as WarCraft 3.  Often you'll have a feature that is disabled, but there will be a tooltip or some sort of visual cue indicating why the feature is disabled ("You need to build a Hunter's Hall before you can Ancient Protectors".)  Of course, the actual cue is more concise, but you get the idea.

Derik Whittaker wrote re: UI Thoughts
on 06-01-2007 7:07 AM

I like the idea for the tool tip.  But this kinda falls into the same area as the message box.  You have to attempt to perform that action before you have indication of why you cannot perform that action.

But i like that.

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Google Reader or Homepage Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of
Red-Gate Tools For SQL and .NET


SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
NHibernate Profiler
Balsamiq Mockups
JetBrains - ReSharper
Web Sequence Diagrams
Ducksboard<-- NEW Friend!


Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers


Community Server (Commercial Edition)