Files
bluflame/netpoet-coop-8k/src/tool/Actions/SyncEditAction.cs
2026-04-19 00:41:25 +02:00

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;
}
}