It's a very common design practice to have one section of your user interface be visible, or invisible, based on the values in another section. This helps minimize confusion of what should and should not be entered. It is also useful in a workflow application for showing or hidding sections depending on the state of the document. When it comes to implementing this sort of user interface with XPages you have a primary choice to make: do you implement it on the server side, or the client side.
The major advantage to implementing dynamic UI on the client side is speed. Client side logic operates on the user's client and does not need to make reference to the server. This is very fast and the response time is almost immediate. Doing this uses nothing special above traditional web side development. Many people have the skills to encode this option and there is a wealth of information and examples on the internet for doing this.
A drawback of this approach is that you can only use information that has been sent down to the client. If you want to make use of some additional information that resides on the server, you either need to send that down to the client in the first page rendering, or doing a background call to pull the extra information down. Additionally if there is information that a user should not have access to for security or privacy reasons, just turning it invisible on the client side only stops that information from being seen. The information is still downloaded and if someone chooses to look at the HTML source for the document, it will be clearly there.
In reverse of the above, the biggest advantage of doing dynamic UI operations on the server is that you have access to any and all information that the server has. If you need to query a different database for some ancillary information, or enact complex logic, this can all be done.
The biggest drawback is that, often, it is not as fast as client side logic. Upon a change in status, it needs to be submitted to the server. The server then needs to make it's computation, and the resulting area refreshed. That being said, being able to post the minimal change, and only refreshing the part of the screen that needs to be refreshed is easy in XPages. It can be quite fast.
A fully worked example of doing dynamic ui based on logic on the client can be found in the article "Dynamically rendering elements on XPages