8
0

reinsertoperation.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. import MoveOperation from './moveoperation.js';
  6. import RemoveOperation from './removeoperation.js';
  7. /**
  8. * Operation to reinsert previously removed nodes back to the non-graveyard root. This operation acts like
  9. * {@link engine.model.operation.MoveOperation} but it returns {@link engine.model.operation.RemoveOperation} when reversed
  10. * and fires different change event.
  11. *
  12. * @memberOf engine.model.operation
  13. */
  14. export default class ReinsertOperation extends MoveOperation {
  15. /**
  16. * Position where nodes will be re-inserted.
  17. *
  18. * @type {engine.model.Position}
  19. */
  20. get position() {
  21. return this.targetPosition;
  22. }
  23. /**
  24. * @param {engine.model.Position} pos
  25. */
  26. set position( pos ) {
  27. this.targetPosition = pos;
  28. }
  29. /**
  30. * @inheritDoc
  31. */
  32. get type() {
  33. return 'reinsert';
  34. }
  35. /**
  36. * @inheritDoc
  37. * @returns {engine.model.operation.RemoveOperation}
  38. */
  39. getReversed() {
  40. return new RemoveOperation( this.targetPosition, this.howMany, this.baseVersion + 1 );
  41. }
  42. /**
  43. * @inheritDoc
  44. */
  45. static get className() {
  46. return 'engine.model.operation.ReinsertOperation';
  47. }
  48. }