RootElementsBehavior.js 895 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import inherits from 'inherits-browser';
  2. import CommandInterceptor from '../../command/CommandInterceptor';
  3. /**
  4. * A modeling behavior that ensures we set the correct root element
  5. * as we undo and redo commands.
  6. *
  7. * @param {Canvas} canvas
  8. * @param {didi.Injector} injector
  9. */
  10. export default function RootElementsBehavior(canvas, injector) {
  11. injector.invoke(CommandInterceptor, this);
  12. this.executed(function(event) {
  13. var context = event.context;
  14. if (context.rootElement) {
  15. canvas.setRootElement(context.rootElement);
  16. } else {
  17. context.rootElement = canvas.getRootElement();
  18. }
  19. });
  20. this.revert(function(event) {
  21. var context = event.context;
  22. if (context.rootElement) {
  23. canvas.setRootElement(context.rootElement);
  24. }
  25. });
  26. }
  27. inherits(RootElementsBehavior, CommandInterceptor);
  28. RootElementsBehavior.$inject = [ 'canvas', 'injector' ];