ContextToolbar
JointJS+ provides a ContextToolbar plugin that enables the ability to display context toolbars (usually a set of buttons) below a certain target element (HTML or SVG).
Installation
Access ContextToolbar
via the ui
namespace, and create an instance. Then, add tool buttons, and call the render()
method in order to open the context toolbar.
import { ui } from '@joint/plus';
const ct = new ui.ContextToolbar({
tools: [
{ action: 'yes', content: 'Yes' },
{ action: 'no', content: 'No' },
{ action: 'maybe', content: 'Maybe' },
{ action: 'sure', content: 'Sure' }
],
target: document.getElementById('my-element')
});
ct.on('action:yes', () => alert('Yes'));
ct.on('action:no', () => alert('No'));
ct.on('action:maybe', () => alert('Maybe'));
ct.on('action:sure', () => alert('Sure'));
ct.render();
There is also a UMD version available
Include joint.ui.contextToolbar.js
and joint.ui.contextToolbar.css
in your HTML:
<link rel="stylesheet" type="text/css" href="joint.ui.contextToolbar.css">
<script src="joint.js"></script>
<script src="joint.ui.contextToolbar.js"></script>
Access ContextToolbar
through the joint.ui
namespace:
const ct = new joint.ui.ContextToolbar({
tools: [
{ action: 'yes', content: 'Yes' },
{ action: 'no', content: 'No' },
{ action: 'maybe', content: 'Maybe' },
{ action: 'sure', content: 'Sure' }
],
target: this
});
ct.on('action:yes', function() { alert('Yes') });
ct.on('action:no', function() { alert('No') });
ct.on('action:maybe', function() { alert('Maybe') });
ct.on('action:sure', function() { alert('Sure') });
ct.render();
How does ContextToolbar work?
There can always be only one context toolbar opened at a time. This is automatically handled by the ui.ContextToolbar
component which simplifies the process and makes sure you don't have to keep track of opened context toolbars yourself.
Common ContextToolbar usage
The following example creates a context toolbar upon user interaction. When the user clicks, a context toolbar is
created, and the render()
method is called on it.
The user can click on the link or SVG circle, and also right-click on the blank canvas.