|
@@ -0,0 +1,129 @@
|
|
|
+import {
|
|
|
+ UndoManager,
|
|
|
+ ArrayList,
|
|
|
+} from "../internal";
|
|
|
+
|
|
|
+export class UndoManagerObserver {
|
|
|
+ protected _onAddRedoListeners: ArrayList<UndoManagerObserver.OnAddRedoListener>;
|
|
|
+ protected _onAddUndoListeners: ArrayList<UndoManagerObserver.OnAddUndoListener>;
|
|
|
+ protected _onRedoListeners: ArrayList<UndoManagerObserver.OnRedoListener>;
|
|
|
+ protected _onUndoListeners: ArrayList<UndoManagerObserver.OnUndoListener>;
|
|
|
+
|
|
|
+ public dispatchOnAddRedo(wrapped: UndoManager.Wrapped): void {
|
|
|
+ let listeners = this._onAddRedoListeners;
|
|
|
+ if (listeners != null) {
|
|
|
+ const sizeof = listeners.sizeof();
|
|
|
+ for (let i = 0; i < sizeof; i++) {
|
|
|
+ const listener = listeners.get(i);
|
|
|
+ listener.onAddRedo(wrapped);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public dispatchOnAddUndo(wrapped: UndoManager.Wrapped): void {
|
|
|
+ let listeners = this._onAddUndoListeners;
|
|
|
+ if (listeners != null) {
|
|
|
+ const sizeof = listeners.sizeof();
|
|
|
+ for (let i = 0; i < sizeof; i++) {
|
|
|
+ const listener = listeners.get(i);
|
|
|
+ listener.onAddUndo(wrapped);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public dispatchOnRedo(wrapped: UndoManager.Wrapped): void {
|
|
|
+ let listeners = this._onRedoListeners;
|
|
|
+ if (listeners != null) {
|
|
|
+ const sizeof = listeners.sizeof();
|
|
|
+ for (let i = 0; i < sizeof; i++) {
|
|
|
+ const listener = listeners.get(i);
|
|
|
+ listener.onRedo(wrapped);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public dispatchOnUndo(wrapped: UndoManager.Wrapped): void {
|
|
|
+ let listeners = this._onUndoListeners;
|
|
|
+ if (listeners != null) {
|
|
|
+ const sizeof = listeners.sizeof();
|
|
|
+ for (let i = 0; i < sizeof; i++) {
|
|
|
+ const listener = listeners.get(i);
|
|
|
+ listener.onUndo(wrapped);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public addOnAddRedoListener(listener: UndoManagerObserver.OnAddRedoListener): void {
|
|
|
+ if (this._onAddRedoListeners == null) {
|
|
|
+ this._onAddRedoListeners = new ArrayList<UndoManagerObserver.OnAddRedoListener>();
|
|
|
+ }
|
|
|
+ this._onAddRedoListeners.add(listener);
|
|
|
+ }
|
|
|
+
|
|
|
+ public addOnAddUndoListener(listener: UndoManagerObserver.OnAddUndoListener): void {
|
|
|
+ if (this._onAddUndoListeners == null) {
|
|
|
+ this._onAddUndoListeners = new ArrayList<UndoManagerObserver.OnAddUndoListener>();
|
|
|
+ }
|
|
|
+ this._onAddUndoListeners.add(listener);
|
|
|
+ }
|
|
|
+
|
|
|
+ public addOnRedoListener(listener: UndoManagerObserver.OnRedoListener): void {
|
|
|
+ if (this._onRedoListeners == null) {
|
|
|
+ this._onRedoListeners = new ArrayList<UndoManagerObserver.OnRedoListener>();
|
|
|
+ }
|
|
|
+ this._onRedoListeners.add(listener);
|
|
|
+ }
|
|
|
+
|
|
|
+ public addOnUndoListener(listener: UndoManagerObserver.OnUndoListener): void {
|
|
|
+ if (this._onUndoListeners == null) {
|
|
|
+ this._onUndoListeners = new ArrayList<UndoManagerObserver.OnUndoListener>();
|
|
|
+ }
|
|
|
+ this._onUndoListeners.add(listener);
|
|
|
+ }
|
|
|
+
|
|
|
+ public removeOnAddRedoListener(listener: UndoManagerObserver.OnAddRedoListener): void {
|
|
|
+ if (this._onAddRedoListeners == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this._onAddRedoListeners.remove(listener);
|
|
|
+ }
|
|
|
+
|
|
|
+ public removeOnAddUndoListener(listener: UndoManagerObserver.OnAddUndoListener): void {
|
|
|
+ if (this._onAddUndoListeners == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this._onAddUndoListeners.remove(listener);
|
|
|
+ }
|
|
|
+
|
|
|
+ public removeOnUndoListener(listener: UndoManagerObserver.OnUndoListener): void {
|
|
|
+ if (this._onUndoListeners == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this._onUndoListeners.remove(listener);
|
|
|
+ }
|
|
|
+
|
|
|
+ public removeOnRedoListener(listener: UndoManagerObserver.OnRedoListener): void {
|
|
|
+ if (this._onRedoListeners == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this._onRedoListeners.remove(listener);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+export namespace UndoManagerObserver {
|
|
|
+ export interface OnAddRedoListener {
|
|
|
+ onAddRedo(wrapped: UndoManager.Wrapped): void
|
|
|
+ }
|
|
|
+
|
|
|
+ export interface OnAddUndoListener {
|
|
|
+ onAddUndo(wrapped: UndoManager.Wrapped): void
|
|
|
+ }
|
|
|
+
|
|
|
+ export interface OnRedoListener {
|
|
|
+ onRedo(wrapped: UndoManager.Wrapped): void
|
|
|
+ }
|
|
|
+
|
|
|
+ export interface OnUndoListener {
|
|
|
+ onUndo(wrapped: UndoManager.Wrapped): void
|
|
|
+ }
|
|
|
+}
|