                 indent = ''
             obj = @props.actions._commands?[name]
             if not obj?
-                return <MenuItem key={key}>{indent} {display ? name} (not implemented)</MenuItem>
+                return <MenuItem disabled={disabled} key={key}>{indent} {display ? name} (not implemented)</MenuItem>
 
             shortcut = obj.k?[0]
             if shortcut?
-                s = <span  className='pull-right'><KeyboardShortcut shortcut={shortcut} /></span>
+                s = <span className='pull-right'><KeyboardShortcut shortcut={shortcut} /></span>
             else
                 s = <span/>
 
             <MenuItem
                 key      = {key}
                 onSelect = {@command(name)}
+                disabled = {disabled}
                 >
                 {indent} {display ? obj.m ? name} {s}
             </MenuItem>

            has_unsaved_changes : rtypes.bool
            kernel_info         : rtypes.immutable.Map
            backend_kernel_info : rtypes.immutable.Map

    shouldComponentUpdate: (next) ->
        return next.has_unsaved_changes != @props.has_unsaved_changes or \
            next.kernels != @props.kernels or \
            next.kernel != @props.kernel or \
            next.backend_kernel_info != @props.backend_kernel_info

    propTypes :
        actions : rtypes.object.isRequired

                 "cut cell", "copy cell", "paste cell above", "paste cell below", "paste cell and replace", "delete cell", "", \
                 "split cell at cursor", "merge cell with previous cell", "merge cell with next cell", "merge cells", "", \
                 "move cell up", "move cell down", "", \
                 "edit notebook metadata", "find and replace", "", \
                 "#{if cell_type != 'markdown' then '<' else ''}insert image"]   # disable if not markdown

    render_view: ->
        @render_menu
