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 |
} |