SIL.FieldWorks.XWorks.DTMenuHandler.OnDataTreeCopy C# (CSharp) Method

OnDataTreeCopy() public method

This method is called when a user selects a Copy operation in on a slice.
public OnDataTreeCopy ( object cmd ) : bool
cmd object
return bool
		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.
		}