/// <summary> /// Adds an action to an undo manager. /// </summary> /// <param name="undoManager">The undo manager supplier (normally the document).</param> /// <param name="undo">The undo-action to add.</param> public static void AddActionToUndoManager(XUndoManagerSupplier undoManager, XUndoAction undo) { AddActionToUndoManager(undoManager.getUndoManager(), undo); }
/// <summary> /// Sets a property and add the change in the uno manager. /// </summary> /// <param name="obj">The obj.</param> /// <param name="propName">Name of the property.</param> /// <param name="value">The value of the property.</param> /// <param name="doc">The undo manager.</param> /// <returns><c>true</c> if the property could be changed successfully</returns> public static bool SetPropertyUndoable(Object obj, String propName, Object value, XUndoManagerSupplier doc) { if (obj is XControl) { obj = ((XControl)obj).getModel(); } // We need the XPropertySet interface. XPropertySet objXPropertySet; if (obj is XPropertySet) { // If the right interface was passed in, just typecast it. objXPropertySet = (XPropertySet)obj; } else { // Get a different interface to the drawDoc. // The parameter passed in to us is the wrong interface to the object. objXPropertySet = obj as XPropertySet; } // Now just call our sibling using the correct interface. return SetPropertyUndoable(objXPropertySet, propName, value, doc); }
/// <summary> /// Sets a property and add the change in the uno manager. /// </summary> /// <param name="obj">The obj.</param> /// <param name="propName">Name of the property.</param> /// <param name="value">The value of the property.</param> /// <param name="doc">The undo manager.</param> public static bool SetPropertyUndoable(XPropertySet obj, String propName, Object value, XUndoManagerSupplier doc) { bool success = false; XUndoManager undoManager = null; if (doc != null) { undoManager = ((XUndoManagerSupplier)doc).getUndoManager() as XUndoManager; if (undoManager != null) { var is_lock = undoManager.isLocked(); undoManager.enterUndoContext("Change Property : " + propName); } } var oldVal = GetProperty(obj, propName); success = SetProperty(obj, propName, value); if (doc != null) { if (undoManager != null) { undoManager.addUndoAction(new ParameterUndo("Change a Prop", obj, propName, oldVal, value)); undoManager.leaveUndoContext(); } } return success; }
/// <summary> /// Sets a property and add the change in the uno manager. /// </summary> /// <param name="obj">The obj to change its property [XControl], [XPropertySet].</param> /// <param name="propName">Name of the property.</param> /// <param name="value">The value of the property.</param> /// <param name="doc">The undo manager.</param> /// <returns><c>true</c> if the property could be changed successfully</returns> internal static bool SetPropertyUndoable(Object obj, String propName, Object value, XUndoManagerSupplier doc) { if (obj is XControl) { obj = ((XControl)obj).getModel(); } // We need the XPropertySet interface. XPropertySet objXPropertySet; if (obj is XPropertySet) { // If the right interface was passed in, just typecast it. objXPropertySet = (XPropertySet)obj; } else { // Get a different interface to the drawDoc. // The parameter passed in to us is the wrong interface to the object. objXPropertySet = obj as XPropertySet; } // Now just call our sibling using the correct interface. return(SetPropertyUndoable(objXPropertySet, propName, value, doc)); }
/// <summary> /// Sets a property and add the change in the uno manager. /// </summary> /// <param name="obj">The obj.</param> /// <param name="propName">Name of the property.</param> /// <param name="value">The value of the property.</param> /// <param name="doc">The undo manager.</param> internal static bool SetPropertyUndoable(XPropertySet obj, String propName, Object value, XUndoManagerSupplier doc) { bool success = false; XUndoManager undoManager = null; if (doc != null) { undoManager = ((XUndoManagerSupplier)doc).getUndoManager() as XUndoManager; if (undoManager != null) { var is_lock = undoManager.isLocked(); undoManager.enterUndoContext("Change Property : " + propName); } } var oldVal = GetProperty(obj, propName); success = SetProperty(obj, propName, value); if (doc != null) { if (undoManager != null) { undoManager.addUndoAction(new ParameterUndo("Change a Prop", obj, propName, oldVal, value)); undoManager.leaveUndoContext(); } } return(success); }