UndoRedo를 구현 하고 있습니다3.
Deep Copy... 과연 많이 해도 좋을지 모르겠습니다. 오전까지의 구현에서 얕은 복사를 하고 있었기 때문에 Undo, Redo를 해도 제대로 동작 하지 않았습니다. 그래서 UndoRedoManager가 관리 하는 history에 SymbolManager가 만들어 낸 memento를 넣을때 SymbolManager가 갖고 있는 멤버변수를 모두 Deep copy해야 한다는 결론이 나왔습니다. 일단, SymbolManager가 갖고 있는 멤버 변수들은 모두 colloection들로 모두 레퍼런스 변수를 담고 있습니다. 이 레퍼런스 변수는 DSymbol이라는 놈들인데요..(실제로는 DSymbol을 상속받은 것들이겠죠) 그림에 드려질 도형들입니다. 문제는 이 DSymbol안에 있는 것들도 상당한 양의 레퍼런..
2009.10.27