PopupMenuProvider.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * A basic provider that may be extended to provide entries for the popup menu.
  3. *
  4. * Extensions should implement the methods getEntries and register. Optionally
  5. * the method getHeaderEntries can be implemented.
  6. */
  7. export default function PopupMenuProvider(popupMenu) {
  8. this._popupMenu = popupMenu;
  9. this.register();
  10. }
  11. PopupMenuProvider.$inject = [ 'popupMenu' ];
  12. /**
  13. * This method should implement the creation of a list of entry objects.
  14. *
  15. * @param {djs.model.Base} element
  16. *
  17. * The following example contains one entry which alerts the id of the current selected
  18. * element, when clicking on the entry.
  19. *
  20. * @example
  21. * PopupMenuProvider.getEntries = function(element) {
  22. * var entries = [{
  23. * id: 'alert',
  24. * label: 'Alert element ID',
  25. * className: 'alert',
  26. * action: function () {
  27. * alert(element.id);
  28. * }
  29. * }];
  30. *
  31. * return entries;
  32. *}
  33. */
  34. PopupMenuProvider.getEntries = function(element) {};
  35. /**
  36. * This method should implement the creation of a list of header entry objects.
  37. *
  38. * @param {djs.model.Base} element
  39. *
  40. * The following example contains one button as header entry which alerts a string
  41. * when clicking on it.
  42. *
  43. * @example
  44. * PopupMenuProvider.getHeaderEntries = function(element) {
  45. * var headerEntries = [{
  46. * id: 'my-button',
  47. * className: 'icon-button',
  48. * title: 'My button',
  49. * active: true,
  50. * action: function() {
  51. * alert('Button has been clicked');
  52. * }
  53. * }];
  54. *
  55. * return headerEntries;
  56. * };
  57. */
  58. PopupMenuProvider.getHeaderEntries = function(element) {};
  59. /**
  60. * This method should implement the registration in the popup menu using an id.
  61. *
  62. * @example
  63. * PopupMenuProvider.register = function() {
  64. * this._popupMenu.registerProvider('my-provider-id', this);
  65. * }
  66. */
  67. PopupMenuProvider.register = function() {};