Entity Collect Extension
Some time ago I wrote about Entity Collect Extension and the challenges of writing a demonstration piece of code. The challenges of Entity Collect Extension are pretty well known, but here is a run down of the most important one:
- You must build the container and the contents, and manage them
That means, that if you build an Entity Collect Extension, you cannot use other control extensions inside it :- you must code the entire contents yourself, so you would be looking at
- Handling all different data types of attribute
- Handling all the basic events of these attributes
- Managing instance creation and deletion
- Handling styling options and look and feel
So when you look at this shopping list, it can be quite daunting. Even so, I said to myself, if Oracle provides such a functionality, then somebody somewhere is going to use it. And so the idea came to create a demonstration Entity Collection Extension. When I started working on it I really did not have much time to look at it, so I wrote a couple of articles about my experiences and left it at that.
Recently I have been revisiting the concept again, and have found time to work on it a little bit more. I added it to the OPA Hub Shop (on the strict understanding, as usual, that it is completely for educational and amusement purposes only).
This version tries to cover off the 4 shopping list items shown above, and adds a couple of interesting ideas
- Dynamic Delete Button (remove the button based on an attribute value). This is one request I have seen many times – the ability to forbid deleting in certain circumstances.
- Handling Date Time and Value Lists for display and data entry.
I still have to find time to investigate :
- Handling Inferred attributes that need to be refreshed as you are entering instance attributes.
The silent movie below shows where I’m at. All that work, for this rather dull looking thing. Sometimes there is not much to show for efforts. Of course, if I was a real programmer, I would be doing all of this in a much more efficient way (avoiding complete page refreshes at every change and so on) but I found this exercise very interesting. Certainly it gives me a better understanding of the scale of such a task.
Have a nice day!