Sometimes you want to create your own custom cell type. You can draw when the cell is in display mode, customize the editor when the cell is in editing mode, and handle mouse and keyboard interaction by the cell type itself. If the built-in cell types don't support the kind of functionality you are looking for, then creating a custom cell type would be the way to go. There are many different properties and functions that you can overwrite to get specific cells to fit your own requirements.