62 lines
1.7 KiB
C#
62 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using tool.ViewModels;
|
|
|
|
namespace tool.Actions
|
|
{
|
|
public class SyncEditAction : IUndoItem
|
|
{
|
|
public SyncEditAction(IUndoContext _context)
|
|
{
|
|
Context = _context;
|
|
m_OldDataStream = new MemoryStream();
|
|
m_OldDataWriter = new StreamWriter(m_OldDataStream);
|
|
m_OldDataReader = new StreamReader(m_OldDataStream);
|
|
((SyncViewModel)Context).Save(m_OldDataWriter);
|
|
}
|
|
|
|
public bool CanRedo { get { return true; } }
|
|
|
|
public bool CanUndo { get { return true; } }
|
|
|
|
public IUndoContext Context
|
|
{
|
|
get;
|
|
private set;
|
|
}
|
|
|
|
public string Description { get { return "Edit cell value"; } }
|
|
|
|
public void Redo()
|
|
{
|
|
if (m_NewDataStream == null)
|
|
{
|
|
m_NewDataStream = new MemoryStream();
|
|
m_NewDataWriter = new StreamWriter(m_OldDataStream);
|
|
m_NewDataReader = new StreamReader(m_OldDataStream);
|
|
((SyncViewModel)Context).Save(m_NewDataWriter);
|
|
}
|
|
else
|
|
{
|
|
((SyncViewModel)Context).Load(m_NewDataReader);
|
|
}
|
|
}
|
|
|
|
public void Undo()
|
|
{
|
|
((SyncViewModel)Context).Load(m_OldDataReader);
|
|
}
|
|
|
|
private MemoryStream m_OldDataStream;
|
|
private MemoryStream m_NewDataStream;
|
|
private StreamWriter m_OldDataWriter;
|
|
private StreamWriter m_NewDataWriter;
|
|
private StreamReader m_OldDataReader;
|
|
private StreamReader m_NewDataReader;
|
|
}
|
|
}
|