Studio Developer Manual / Version 2304
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.37. 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.38. 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.