Statistics
| Revision:

root / branches / v2_0_0_prep / applications / appgvSIG / src / com / iver / cit / gvsig / project / documents / layout / commands / FrameCommandsRecord.java @ 25068

History | View | Annotate | Download (1.91 KB)

1
package com.iver.cit.gvsig.project.documents.layout.commands;
2

    
3
import org.gvsig.tools.undo.command.impl.DefaultUndoRedoCommandStack;
4

    
5
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame;
6

    
7
/**
8
 * Clase en memoria para registrar y gestionar los comandos que vamos
9
 * realizando. La forma en que ha sido implementada esta clase, en vez de una
10
 * ?nica lista para albergar los comandos de deshacer(undos) y los de
11
 * rehacer(redos), se ha optado por dos pilas una para deshacer(undos) y otra
12
 * para rehacer(redos), de esta forma :  Cuando se a?ade un nuevo comando, se
13
 * inserta este a la pila de deshacer(undos) y se borra de la de
14
 * rehacer(redos). Si se realiza un deshacer se desapila este comando de la
15
 * pila deshacer(undos) y se apila en la de rehacer(redos). Y de la misma
16
 * forma cuando se realiza un rehacer se desapila este comando de la pila de
17
 * rehacer(redos) y pasa a la de deshacer(undos).
18
 *
19
 * @author Vicente Caballero Navarro
20
 */
21
public class FrameCommandsRecord extends DefaultUndoRedoCommandStack {
22
        private FrameManager expansionManager;
23
        public FrameCommandsRecord(FrameManager expansionManager){
24
                this.expansionManager=expansionManager;
25
        }
26
        public void insert(IFFrame frame) {
27
                InsertFrameCommand command=new InsertFrameCommand(expansionManager, frame,frame.getName());
28
        add(command);
29
        command.execute();
30
    }
31

    
32
        public void delete(IFFrame frame) {
33
                DeleteFrameCommand command=new DeleteFrameCommand(expansionManager, frame,frame.getName());
34
        add(command);
35
        command.execute();
36
    }
37

    
38
        public void update(IFFrame frame, IFFrame oldFrame) {
39
                UpdateFrameCommand command=new UpdateFrameCommand(expansionManager,frame, oldFrame,frame.getName());
40
                add(command);
41
                command.execute();
42
        }
43
        public void clear() {
44
                super.clear();
45
                expansionManager.clear();
46
        }
47
        public FrameManager getFrameManager() {
48
                return expansionManager;
49
        }
50

    
51
}