1. I tried using @AdminpresentationClass as below but I am still able to see the "Product" option. Am I doing something wrong?
Yes, the ceilingDisplayEntity should be your custom type.
2. By me second question what I meant to say is I have 10 admin users and there are 2 implementation of Product interface i.e "Product", "Custom Product". Now I want only 5 of the admin users should be able to see "Product" option for adding a product while the other 5 should see "Custom Product". Is it possible?
It is, you will have to modify a different section of the code. The polymorphic types that are computed are done so in DynamicEntityDaoImpl. If you want to customize this list (by checking the admin user and changing the results) you will need to subclass DynamicEntityDaoImpl, override the blDynamicEntityDao bean (and ensure the scope property is set to "prototype") and override the getClassTreeFromCeiling() method. From there you can remove spots in the tree that you don't want based on the admin user that is currently logged in.