# RSE Actions API

In Eclipse, we typically launch our dialogs and wizards and menu items from an action, which is a class that implements the JFace `IAction` interface. The Remote System Explorer offers classes to help simplify the creation of action classes, especially when used together with the RSE classes for dialogs and wizards.

There are two ways the Remote System Explorer API set can help you when it comes to actions:

1. A set of base action classes from which to base your own action classes.
2. A set of re-usable actions for specific requirements.

## RSE-Supplied Base Classes for Actions

Here are the primary base classes the RSE supplies for actions, all of which are found in the package `org.eclipse.rse.ui.actions` in the plugin `org.eclipse.rse.ui`:

Class | Description
--- | ---

`SystemBaseAction`

This is the base action class for the other classes, and is only used directly for actions that do not result in a dialog or wizard being presented to the user. It extends the JFace `Action` class, adding to it support for properties such as the current shell and viewer and selection, as well as overridable methods for easily enabling/disabling the action based on the selection, and a method for setting the context help for the action. There are many other useful methods, such as `allowOnMultipleSelection(boolean)` and `setContextMenuGroup(String)`, to simplify when the action is enabled and where it appears in a popup menu.

`SystemBaseSubMenuAction`

This base action class extends `SystemBaseAction`, and is used as the parent class when for popup menu actions that are to cascade. A cascading menu is itself another menu, really, containing actions just like the primary menu does. So, to create a cascading menu action, you simply subclass this class and override the method `populateSubMenu`, where you add all the actions to show in this cascading menu. And yes, one or more of those can themselves be cascading. The RSE views will automatically call the method `getSubMenu` when populating the initial popup menu, but your own views will need to do this.

`SystemBaseDialogAction` | This base action class extends `SystemBaseAction`, and is used when the action presents the user with a dialog, preferably a dialog that extends the RSE `SystemPromptDialog` class. To use this class, subclass it and override the methods
`SystemBaseWizardAction` | This base action class extends `SystemBaseAction`, and is used when the action presents the user with a wizard, preferably a wizard that extends the RSE `AbstractSystemWizard` class.

## Actions Pre-Supplied by RSE

You may find some of the actions supplied by the RSE to be immediately re-usable in your own code, saving some development and test effort. All these actions can be found in package `org.eclipse.rse.ui.actions`. Further, you can find many useful actions related to the selection of remote files or folders, in package `org.eclipse.rse.files.ui.actions`.