no image
UndoRedo 구현을 마무리 지었습니다.
일단 마무리를 지어야 할 것 같습니다. 구현은 다 했지만 테스트를 하기 위한 환경이 갖추어 지지 않았네요.. painter 쪽, 즉, 컨트롤러 쪽이 리팩토링을 해야 할 시기가 온것 같습니다.. 오늘의 코딩 시나리오를 알려 드리죠.ㅋㅋ redo undo가 구현이 완료 되어서 history에 언제 넣는지 결정하고 소스의 해당부분에 코드를 집어 넣으려고 했습니다. painter가 redoUndomanager와 symbolManager를 모두 갖고 있었기 때문에 코드는 redoUndoManager.add(symbolManager.createMemento()); 였습니다. 하지만, 굳이 painter가 redoUndoManager를 가질 필요가 없다고 생각하여 symbolManager가 redoUndoManage..
2009.10.29
no image
UndoRedo를 구현 하고 있습니다.
UndoRedo를 구현하기 위해서 Memento 패턴을 사용하고 있습니다. Command패턴과 섞어서 쓰는 것이 맞는지 모르겠지만 일단 Memento만 이용하고 있습니다. UndoRedo했을때 대상이 되는 상태를 심볼매니저에 있는 멤버변수들로 했습니다. 심볼매니저의 멤버변수에는 현재 캔버스에 그려진 심볼들, 사용자가 선택한 심볼들, 라인을 가질 후보 Figure 이 있습니다. DSymbolManager가 Originator가 되고, DMemento가 memento가 됩니다. reodo undo를 하기 위해서 memento를 많이 갖고 있어야 하므로, 그것을 관리하는 UndoRedoManager를 만 들어 관리하도록 하였습니다. 클라이언트에 해당하는 painter클래스에 DSymbolManager와 Und..
2009.10.25