netpoet coop and 64kode
This commit is contained in:
61
netpoet-coop-8k/src/tool/Actions/SyncEditAction.cs
Normal file
61
netpoet-coop-8k/src/tool/Actions/SyncEditAction.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user