I've watched lots of developers using JDeveloper and Oracle ADF in various hands-on training classes, and inevitably one of the things that got users flustered was that it was easy to get your page and your UI Model's declarative binding definitions out of sync. The classic way this would occur was the following:
- User clicks in the Data Control Palette on a data source and drops it into the page as an Input Form
- User realizes they really wanted a table, so they instinctively press [Ctrl]-Z to undo the operation
- User repeats the operation in step 1, but this time drops the datasource as a table as they wanted.
This undo operation would visibly do what they expected in the page, but it would leave the declarative binding entries in the pages UIModel.xml file, effectively leaving some harmless but now superflous XML entries.
In 10.1.3, we've really been trying hard to improve this scenario. For the EA1 release that's available on OTN, we already offer a robust undo capability for the drag and drop operations from the Data Control Palette. When you undo the drop, both the visual elements on the page and their corresponding binding entries in the Page Definition are undone. In the 10.1.3 production release, we've made this even better by cleaning up the bindings for you when you delete individual controls on the page. I've just been doing some banging on an internal nightly build and it really does exactly what you always wished it did now! If you delete a control and it's the last one on the page using the binding, we remove the binding entry for you as well. If the binding that gets removed was the last one using a given iterator binding, that gets removed (after your confirming it) as well. If you made a mistake, undo-away! The UI controls you deleted with reappear and so will their matching bindings.
4:01:42 PM
|
|