01: /*
02: * Jacareto Copyright (c) 2002-2005
03: * Applied Computer Science Research Group, Darmstadt University of
04: * Technology, Institute of Mathematics & Computer Science,
05: * Ludwigsburg University of Education, and Computer Based
06: * Learning Research Group, Aachen University. All rights reserved.
07: *
08: * Jacareto is free software; you can redistribute it and/or
09: * modify it under the terms of the GNU General Public
10: * License as published by the Free Software Foundation; either
11: * version 2 of the License, or (at your option) any later version.
12: *
13: * Jacareto is distributed in the hope that it will be useful,
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16: * General Public License for more details.
17: *
18: * You should have received a copy of the GNU General Public
19: * License along with Jacareto; if not, write to the Free
20: * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21: *
22: */
23:
24: /*
25: * Created on 20.10.2003
26: */
27: package jacareto.replay;
28:
29: import jacareto.record.ComponentEventRecordable;
30: import jacareto.struct.StructureElement;
31: import jacareto.system.Environment;
32:
33: import java.awt.Component;
34: import java.awt.Window;
35: import java.awt.event.ComponentEvent;
36:
37: /**
38: * DOCUMENT ME!
39: *
40: * @author clk
41: */
42: public class ComponentEventReplayer extends AWTEventReplayer {
43: /**
44: * constructor
45: *
46: * @param env
47: * @param replay
48: */
49: public ComponentEventReplayer(Environment env, Replay replay) {
50: super (env, replay);
51: }
52:
53: public boolean handlesElement(StructureElement element) {
54: return (element != null)
55: && (element instanceof ComponentEventRecordable);
56: }
57:
58: /* replays the sequence of the XML document, is only replayed if component is a JFrame
59: * (non-Javadoc)
60: * @see jacareto.replay.Replayer#replay(jacareto.struct.StructureElement)
61: */
62: public boolean replay(StructureElement element) {
63: boolean result = true;
64:
65: ComponentEventRecordable cRecordable = (ComponentEventRecordable) element;
66: int ID = cRecordable.getID();
67:
68: // Get the component belonging to the event
69: Component source = null;
70:
71: if ((ID == ComponentEvent.COMPONENT_RESIZED)
72: || (ID == ComponentEvent.COMPONENT_MOVED)) {
73: source = replay.getComponents().getComponent(
74: cRecordable.getSourceName());
75: }
76:
77: if ((source == null) || !source.isVisible()) {
78: return true;
79: }
80:
81: if (!(source instanceof Window)) {
82: return true;
83: }
84:
85: Component component = source;
86:
87: component.setSize(cRecordable.getWidth(), cRecordable
88: .getHeight());
89: component.setLocation(cRecordable.getXPos(), cRecordable
90: .getYPos());
91:
92: return result;
93: }
94: }
|