https://www.lianja.com/doc/index.php/Custom_Renderers_and_Custom_Editors