Statistics
| Revision:

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

History | View | Annotate | Download (2.33 KB)

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

    
3
import org.gvsig.data.commands.AbstractCommandsRecord;
4
import org.gvsig.data.commands.Command;
5

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

    
8
/**
9
 * Clase en memoria para registrar y gestionar los comandos que vamos
10
 * realizando. La forma en que ha sido implementada esta clase, en vez de una
11
 * ?nica lista para albergar los comandos de deshacer(undos) y los de
12
 * rehacer(redos), se ha optado por dos pilas una para deshacer(undos) y otra
13
 * para rehacer(redos), de esta forma :  Cuando se a?ade un nuevo comando, se
14
 * inserta este a la pila de deshacer(undos) y se borra de la de
15
 * rehacer(redos). Si se realiza un deshacer se desapila este comando de la
16
 * pila deshacer(undos) y se apila en la de rehacer(redos). Y de la misma
17
 * forma cuando se realiza un rehacer se desapila este comando de la pila de
18
 * rehacer(redos) y pasa a la de deshacer(undos).
19
 *
20
 * @author Vicente Caballero Navarro
21
 */
22
public class FrameCommandsRecord extends AbstractCommandsRecord {
23
        private FrameManager expansionManager;
24
        public FrameCommandsRecord(FrameManager expansionManager){
25
                this.expansionManager=expansionManager;
26
        }
27
        public void insert(Object obj) {
28
                Command command=null;
29
                if (obj instanceof IFFrame){
30
                        IFFrame frame=(IFFrame)obj;
31
                        command=new InsertFrameCommand(expansionManager, frame);
32
                }else{
33
                        throw new RuntimeException("Object not supported by any command");
34
                }
35
                add(command);
36
                command.execute();
37
        }
38
        public void delete(Object obj) {
39
                Command command=null;
40
                if (obj instanceof IFFrame){
41
                        IFFrame frame=(IFFrame)obj;
42
                        command=new DeleteFrameCommand(expansionManager,frame);
43
                }else{
44
                        throw new RuntimeException("Object not supported by any command");
45
                }
46
                add(command);
47
                command.execute();
48
        }
49
        public void update(Object obj, Object oldObj) {
50
                Command command=null;
51
                if (obj instanceof IFFrame){
52
                        IFFrame frame=(IFFrame)obj;
53
                        IFFrame oldFrame=(IFFrame)oldObj;
54
                        command=new UpdateFrameCommand(expansionManager,frame, oldFrame);
55
                }else{
56
                        throw new RuntimeException("Object not supported by any command");
57
                }
58
                add(command);
59
                command.execute();
60
        }
61
        public void clear() {
62
                super.clear();
63
                expansionManager.clear();
64
        }
65
        public FrameManager getFrameManager() {
66
                return expansionManager;
67
        }
68

    
69
}