Studio Developer Manual / Version 2412.0
Table Of ContentsSometimes it is necessary to develop a custom action, for example to open a special window or to start a wizard. In Section 5.1.3, “Actions” you will find a more detailed explanation of actions, but the recipe shown here should be enough in many cases.
All actions inherit from Action. For example, an action
MyCustomAction might look like this:
import Config from "@jangaroo/runtime/Config";
import Action from "@jangaroo/ext-ts/Action";
interface MyCustomActionConfig extends Config<Action> {
amount?: number;
}
class MyCustomAction extends Action {
declare Config: MyCustomActionConfig;
constructor(config:Config<MyCustomAction>) {
super(config);
this.setHandler(this.#handleAction, this);
}
#handleAction():void {
// do something, using `this.initialConfig.amount`
}
}
export default MyCustomAction;
Example 9.40. Creating a custom action
The action can then be used inside a menu item or a button:
import Config from "@jangaroo/runtime/Config";
import Button from "@jangaroo/ext-ts/button/Button";
import MyCustomAction from "./MyCustomAction";
//...
Config(Button, {
baseAction: new MyCustomAction({
text: "do something",
}),
})
//...
Example 9.41. Using a custom action
For example, such a button with a base action might by added to the Header toolbar or the Actions toolbar as shown in the previous sections.
Note that you can use all parameters inherited from Action,
like text in the example above.


