/// <summary> /// 오브젝트컬렉션의 모든 오브젝트들을 복사합니다. /// </summary> /// <returns>복사된 ObjectsCollection</returns> public ObjectsCollection Clone() { ObjectsCollection rtnObj = new ObjectsCollection(); ArrayList arrNew = new ArrayList(); Hashtable htNew = new Hashtable(); foreach (object o in arrObjects) { DrawObject obj = CopyObject((DrawObject)o); arrNew.Add(obj); htNew.Add(obj.Key, obj); } rtnObj.arrObjects = arrNew; rtnObj.htObjects = htNew; return(rtnObj); }
/// <summary> /// 오브젝트를 추가하지만 XML파일에 저장하지 않습니다. /// </summary> /// <param name="o"></param> public void AddNotSaveXml(DrawObject o) { // 인덱스 산출 o.Id = GetMaxId(); // 중복체크 후 키값 변경 int cnt = 0; while (htObjects.Contains(o.Key)) { o.Key = String.Format("Object{0}", ++cnt); } // 컬렉션에 등록 htObjects.Add(o.Key, o); arrObjects.Add(o); }
/// <summary> /// 오브젝트를 복사합니다. /// </summary> /// <param name="src">복사 할 원본 DrawObject</param> /// <returns>복사된 DrawObject</returns> public DrawObject CopyObject(DrawObject src) { DrawObject dest = new DrawObject(DrawObjectType.pRectangle); dest.ObjectType = src.ObjectType; dest.Key = src.Key; dest.Id = src.Id; dest.X = src.X; dest.Y = src.Y; dest.Width = src.Width; dest.Height = src.Height; dest.LineColor = src.LineColor; dest.LineWidth = src.LineWidth; dest.Text = src.Text; dest.FontColor = src.FontColor; dest.FontStyle = src.FontStyle; dest.TextAlign = src.TextAlign; dest.FillColor = src.FillColor; dest.Angle1 = src.Angle1; dest.Angle2 = src.Angle2; dest.Img = src.Img; return(dest); }
/// <summary> /// 오브젝트를 추가하고 XML파일에 저장합니다. /// </summary> /// <param name="o">DrawObject</param> public void Add(DrawObject o) { Add(o, GetMaxId()); }