A common problem that we get asked about relates to one of the more powerful and less understood aspects of the ADF Faces framework, the Change Manager. The...
A common problem that we get asked about relates to one of the more powerful and less understood aspects of the ADF Faces framework, the Change Manager. The Change Manager works behind the scenes to remember things for you, things like: What order are my table columns in? How wide did I stretch that column last time I looked at this table? Which tab did I have selected when I last viewed this screen? And so on... Most of the time you don't realise that the Change Manager is...
A common problem that we get asked about relates to one of the more powerful and less understood aspects of the ADF Faces framework, the Change Manager. The Change Manager works behind the scenes to...
The <af:declarativeComponent> tag, for those of you not familiar with it, is a super convenient way of defining a reusable component for your ADF UIs. In...
The <af:declarativeComponent> tag, for those of you not familiar with it, is a super convenient way of defining a reusable component for your ADF UIs. In principle, it's very similar to the template tag in that it allows you to define named attributes and facets for the component you are assembling and then you just build a .jsff fragment in your project which contains the implementation that you want for the component. Note that this tag is different from the kind of...
The <af:declarativeComponent> tag, for those of you not familiar with it, is a super convenient way of defining a reusable component for your ADF UIs. In principle, it's very similar to the template...
The following article outlines a technique that I use and has been buried in various code samples in the past. However, in light of the explicit how-to being...
The following article outlines a technique that I use and has been buried in various code samples in the past. However, in light of the explicit how-to being asked a couple of times recently, it seems sensible to pull it out into a explicit article. Now the scenario here is when you have a piece of JavaScript that needs to operate on a specific client side component. Now in many cases, you will be able to obtain the component that you need by simply calling the getSource()...
The following article outlines a technique that I use and has been buried in various code samples in the past. However, in light of the explicit how-to being asked a couple of times recently,...
An occasional problem for developers using JSF is how to locate a component given just it's ID. Now if you have the complete ID, which includes the computed...
An occasional problem for developers using JSF is how to locate a component given just it's ID. Now if you have the complete ID, which includes the computed location, for example:Button B1 inside Region R1 inside page with template PT1 ==> PT1:R1:B1, you can hardcode that using the basic findComponent() API, or even better use the invokeOnComponent() API provided by the UIComponentBase (see the JavaDoc for more information). However, what it you have no idea, at the time of...
An occasional problem for developers using JSF is how to locate a component given just it's ID. Now if you have the complete ID, which includes the computed location, for example:Button B1...
A quick trick to note if you have a table that includes a column containing an <af:inputText>. If the user is able to re-size the columns within the table, then...
A quick trick to note if you have a table that includes a column containing an <af:inputText>. If the user is able to re-size the columns within the table, then it's not unreasonable to have the inputText stretch along with the column to take advantage of the full width available. The first thing to do is to set the simple property of the inputText to "true". This almost does the trick, but you'll find that as you stretch the column there is a small trailing gap between the...
A quick trick to note if you have a table that includes a column containing an <af:inputText>. If the user is able to re-size the columns within the table, then it's not unreasonable to have the...
OK, it's a trivial problem but I'll answer to anyway. Is there a simple way to get the date and time in expression language inside your pages, without writing...
OK, it's a trivial problem but I'll answer to anyway. Is there a simple way to get the date and time in expression language inside your pages, without writing Java code?The answer is of course yes, it's simple to do in a declarative manner. You will need to create a basic managed bean definition in your JSF configuration. So for example I might add the following definition for a bean called "now" to my adfc-config.xml file: <managed-bean> ...
OK, it's a trivial problem but I'll answer to anyway. Is there a simple way to get the date and time in expression language inside your pages, without writing Java code?The answer is of course...
I don't know about you, but I always forget what what the various popup hints used by <af:showPopupBehavior> actually relate to in terms of look. So to save...
I don't know about you, but I always forget what what the various popup hints used by <af:showPopupBehavior> actually relate to in terms of look. So to save myself time more than anything I've put together a simple visual reference to show how each hint positions the popup.
I don't know about you, but I always forget what what the various popup hints used by <af:showPopupBehavior> actually relate to in terms of look. So to save myself time more than anything I've put...
I've just uploaded a small sample onto the ADF EMG Samples site which demonstrates how you can make the <af:messages> component behave differently based on the...
I've just uploaded a small sample onto the ADF EMG Samples site which demonstrates how you can make the <af:messages> component behave differently based on the messages that are in the queue. The use case here was within a system where we wanted to use in-line messages for those run-of-th-mill type messages that should not really interrupt the flow of the user's activity (informational messages such as "Record Saved") , however, if something goes wrong then we wanted a popup...
I've just uploaded a small sample onto the ADF EMG Samples site which demonstrates how you can make the <af:messages> component behave differently based on the messages that are in the queue. The use...
If you look carefully at the online demos for panelTabbed in 11.1.1.7 you may notice that the tabs are sporting a slightly changed UI for situations where the...
If you look carefully at the online demos for panelTabbed in 11.1.1.7 you may notice that the tabs are sporting a slightly changed UI for situations where the number of tabs can't fit into the available horizontal space. Here's the situation with the default representation of a tab-set when it overflows. The chevron on the right of the tab-set can be clicked to display a drop-down list of the remaining tabs. In 11.1.1.7 we now have an alternative visualization where the...
If you look carefully at the online demos for panelTabbed in 11.1.1.7 you may notice that the tabs are sporting a slightly changed UI for situations where the number of tabs can't fit into the...