You can set readonly attribute inside of beforeShowForm on the field (see here) or alternatively you can set/remove readonly: 'readonly' property (see here) of the editoptions for the column inside of beforeInitData which will be called before the edit form will be created. You can use setColProp for example to change editoptions (see here an example).
To implement the changes depends on the cell value from some column you need just get the id of selected row with respect of getGridParam and then get the cell value using getCell (see here).
In any cases I recommend you to use recreateForm: true option of form editing. It should be default options in my opinion.