public bool OnDataTreeCopy(object cmd)
{
Slice originalSlice = m_dataEntryForm.CurrentSlice;
ICmObject obj = originalSlice.Object;
object[] key = originalSlice.Key;
Type type = originalSlice.GetType();
if (OnDataTreeInsert(cmd))
{
string label;
if (cmd is Command)
label = (cmd as Command).Label;
else
label = "Copy";
Slice newSlice = m_dataEntryForm.CurrentSlice;
if (newSlice != null && !originalSlice.IsDisposed)
{
//Slice newCopy;
//Slice newOriginal = m_dataEntryForm.FindMatchingSlices(obj, key, type, out newCopy);
//Debug.Assert(newOriginal == originalSlice);
//Debug.Assert(newCopy == newSlice);
originalSlice.HandleCopyCommand(newSlice, label);
}
else
{
Slice newCopy;
Slice newOriginal = m_dataEntryForm.FindMatchingSlices(obj, key, type, out newCopy);
if (newOriginal != null && newCopy != null)
{
newOriginal.HandleCopyCommand(newCopy, label);
newCopy.FocusSliceOrChild();
}
}
}
return true; //we handled this.
}