I haven't really looked into the callbacks before, so I am curious and taking a peek. In Cayenne Modeler there is a "Callbacks" tab when you select the ObjEntity. (These comments will most likely apply to the "Listeners" tab for the ObjEntity and DataMap as well.) There is a Callback Type popup and then you click the Add Method button (which looks dimmed out to me, like it is disabled). Below them is a table with a single Method column. (Wish I could do screenshots here.) If you add a pre-persist callback (select it then click the Add Method button) and then change the Callback Type popup to post-persist, it no longer shows the pre-persist callback method. This seems awkward to me.
I'd suggest removing the Callback Type popup from where it currently is and making the table below have two columns (Method, Callback Type). Clicking the Add Method button would add a new row to the table and the Callback Type column would contain a popup or pulldown that the user could select. This would allow the user to see all of their callbacks at the same time instead of hiding them. It could default to pre-persist (along with the default onPrePersist method name). If they change the Callback Type and haven't edited the method name (it is still at the default), then change the method name to the default for the selected Callback Type. If they have changed it, don't alter the method name. Thoughts? Thanks! mrg
