Create a GWT component that will implement an enhanced text area component. The component should be usable as a text area, but there should be special tags which the user won't be able to delete or edit by using keyboard operations. These tags will be inserted using a special button (Insert tag). This will prompt the user to select a value from a dropdown list (a hardcoded list of values will do) and a text highlighted in yellow will be inserted into the component. THe user will not be able to delete or edit this (using the delete or backspace keys). The user will be able to click on the tags which will allow them to edit or delete them. The insert tag button will insert the tag at the position of the cursor.
The UI should be implemented using UI Binder
Proper software development best practices should be followed