.. versionchanged:: 0.14
            Add keyboard shortcuts to set neighbouring electrode states based
            on directional input using ``<Control>`` key plus the corresponding
            direction (e.g., ``<Control>Up``)

def register_shortcuts(self):
        '''
        .. versionchanged:: 0.14
            Add keyboard shortcuts to set neighbouring electrode states based
            on directional input using ``<Control>`` key plus the corresponding
            direction (e.g., ``<Control>Up``)
        '''
        def control_protocol(command):
            if self.plugin is not None:
                self.plugin.execute_async('microdrop.gui.protocol_controller',
                                          command)

        def actuate_direction(direction):
            if self.plugin is not None:
                self.plugin.execute_async('microdrop.electrode_controller_plugin',
                                          'set_electrode_direction_states',
                                          direction=direction)

        # Tie shortcuts to protocol controller commands (next, previous, etc.)
        shortcuts = {'<Control>r': lambda *args:
                     control_protocol('run_protocol'),
                     '<Control>z': lambda *args: self.undo(),
                     '<Control>y': lambda *args: self.redo(),
                     'A': lambda *args: control_protocol('first_step'),
                     'S': lambda *args: control_protocol('prev_step'),
                     'D': lambda *args: control_protocol('next_step'),
                     'F': lambda *args: control_protocol('last_step'),
                     '<Control>Up': lambda *args: actuate_direction('up'),
                     '<Control>Down': lambda *args: actuate_direction('down'),
                     '<Control>Left': lambda *args: actuate_direction('left'),
                     '<Control>Right': lambda *args:
                     actuate_direction('right')}
        register_shortcuts(self.widget.parent, shortcuts)