To get an idea on how to setup UI bindings check existing ones. The DefaultSelectionBindings should be a good way to start (because the Ctrl + C) binding. By checking the corresponding copy binding, you should also get an idea on how to implement a paste action by using the SelectionLayer to identify the current cell to paste to.
That depends what you are doing where. Typically in an action you are creating a command that is transported down the layer stack. You also create a corresponding command handler that you register at your data layer. This way you don't need to search for the layer you need to operate on.
Sorry to bring this up again. I was working with the TreeViewer that the NatTableExamples demo has for my application. I wanted the dataprovider of the natTable to update some stuff when something happens in the treeviewer.
Long story short, if I have access to the NatTable instance, how do I get to its dataprovider? I want to be able to call the setDataValue method of my custom data provider.