public void CopyAllSelected(DiagramEntityContainer container) /* ============================================================ * Function : CDiagramClipboardHandler::CopyAllSelected * Description : Clones all selected object to the paste * array. * Access : Public * * Return : void * Parameters : none * * Usage : Call to copy all selected objects to the * clipboard. "Paste" will put them on screen. * * ============================================================*/ { ClearPaste(); List <object> arr = container.GetData(); int max = arr.Count; for (int t = 0; t < max; t++) { DiagramEntity obj = (DiagramEntity)(arr[t]); if (obj.Selected) { DiagramEntity newobj = obj.Clone(); newobj.Selected = (true); newobj.MoveRect(10, 10); newobj.GroupID = (obj.GroupID); m_paste.Add(newobj); } } }
public void Copy(DiagramEntity obj) /* ============================================================ * Function : CDiagramClipboardHandler::Copy * Description : Copies the object "obj" to the 'clipboard'. * Access : Public * * Return : void * Parameters : CDiagramEntity* obj - The object to copy. * * Usage : Call in response to a Copy-command. Note * that "obj" will only be copied to the * clipboard, not the screen. See also the * functions for copy/paste below. * * ============================================================*/ { ClearPaste(); DiagramEntity newobj = obj.Clone(); newobj.Selected = (true); newobj.MoveRect(10, 10); m_paste.Add(newobj); }
public List <DiagramEntity> Paste(DiagramEntityContainer container) /* ============================================================ * Function : CDiagramClipboardHandler::Paste * Description : Clones the contents of the paste array * into the container data array. * Access : Public * * Return : void * Parameters : none * * Usage : Call to paste the contents of the clipboard * to screen. * * ============================================================*/ { List <int> oldgroup = new List <int>(); List <int> newgroup = new List <int>(); int max = m_paste.Count; for (int t = 0; t < max; t++) { DiagramEntity obj = (DiagramEntity)(m_paste[t]); if (obj.GroupID != 0) { int size = oldgroup.Count; bool found = false; for (int i = 0; i < size; i++) { if (obj.GroupID == (int)(oldgroup[i])) { found = true; } } if (!found) { oldgroup.Add(obj.GroupID); newgroup.Add(GroupFactory.GetNewGroup()); } } } List <DiagramEntity> pastedObjs = new List <DiagramEntity>(); for (int t = 0; t < max; t++) { DiagramEntity obj = ( DiagramEntity)(m_paste[t]); DiagramEntity clone = obj.Clone(); int group = 0; if (obj.GroupID != 0) { int size = oldgroup.Count; for (int i = 0; i < size; i++) { if (obj.GroupID == (int)(oldgroup[i])) { group = newgroup[i]; } } } clone.GroupID = (group); clone.setID(DiagramEntity.createNewGUID()); container.Add(clone); pastedObjs.Add(clone); } return(pastedObjs); }