An action such as a finger tap or mouse click could be used to show the options available to the individual row.
Per the image above I would also suggest at least one, possible two, changes:
- Separate the "positive" actions from the "negative" actions.
In your case, "run" and "clone" from "delete". The positive actions, which would generally be the more common ones, should be placed in a more actionable area -- that is, easier to get to. I placed the "run" button near the template name -- I'm not necessarily suggesting that is the best location.
A "negative" action should be harder to execute -- not annoyingly difficult to get to, just someplace that is obviously different from the "positive" actions. Placing to the far left or far right is common.
- Move "Clone" into the "Add Template".
This is a suggestion that would reduce the number of buttons, but I am unaware of your applications function as a whole so this may not ultimately be a best case scenario. If "clone" is not a very common action, asking the user to first "add template" and then giving them the option to "clone" it would not be a general annoyance. That choice depends on your use case.
I would not suggest placing a single set of buttons above or below the table and asking the user to first select a row.
This forces the user to do two things:
- Make large mouse, or finger, movements between the selected row and the buttons.
- Forces the user to scroll when the table is long and the buttons are off-screen. In this case too, the buttons may not be visible if below the table and the user may not be able to use them as context -- thus not knowing what to do!