So the other day at work, my boss asked me to do a really boring task, which was to give meaningful names to some 30 to 50 labels in an html form i.e. I had to go in an manually type in proper names for all the labels in the form. In this post, I will talk about how to auto update Java play framework messages filr for the admin section.
Ok a little bit of backstory, at work we have this large application that does all sorts of data processing and analysis amongst other things. Naturally the heart of this application is in the complex data processing tasks and therefore some UI aspects, only used internally by staff are largely ignored, well at least until there is time for it. The application is built using the play framework for Java and for the admin tasks, we use the auto admin generator provided by Play, that gives us the basic functionality. As those who have use Play framework would already know, when it generates the admin UI form, it maps the variable name to the field label in the html form. So for a class called Person with a property lastName, the admin generator code will generate a form with a label lastName. As you can guess, making these field names meaningful, really depend on who is using the application, however we had both the time and the motivation to do this. So the task fell on my very capable shoulders and I had the pleasure of doing this awesome task.
Update Java play framework messages file
So in essence I had to update the conf/messages file with things such as “lastName=Last Name”. Now for a class with 30 to 50 variables this is a lengthy task and the thought of it made me feel like I was working for Initech. So my solution to this? given that all our variables conform to the Java naming convention, I wrote a little method that used the Reflections API to split the variable name based on case and updated the messages file automatically.
The full source code for this method is over here.
If you find any of my posts useful and want to support me, you can buy me a coffee 🙂
Or you can buying or even try one of my apps on the App Store.