001: package com.xoetrope.carousel.testpilot;
002:
003: import net.n3.nanoxml.IXMLElement;
004: import net.n3.nanoxml.XMLElement;
005: import net.xoetrope.builder.helper.XTableModelHelper;
006: import net.xoetrope.swing.XButton;
007: import net.xoetrope.swing.XTable;
008: import net.xoetrope.debug.DebugLogger;
009: import net.xoetrope.xui.XPage;
010: import net.xoetrope.xui.XPageManager;
011: import net.xoetrope.xui.XProjectManager;
012: import net.xoetrope.xui.data.XBaseModel;
013: import net.xoetrope.xui.data.XModel;
014: import netscape.javascript.JSObject;
015:
016: /**
017: * Support for ???
018: * <p> Copyright (c) Xoetrope Ltd., 2001-2006, This software is licensed under
019: * the GNU Public License (GPL), please see license.txt for more details. If
020: * you make commercial use of this software you must purchase a commercial
021: * license from Xoetrope.</p>
022: * <p> $Revision: 1.2 $</p>
023: */
024: public class Recorder extends XPage {
025: XTable table;
026: XMLElement elt;
027: IXMLElement eleRun, eleCurrent;
028: int item = 0;
029: XBaseModel dset, tableModel, currentModel;
030: XButton btnStart, btnPause, btnStop, btnSave, btnBack, btnAssert;
031: boolean pauseAfterNext = false;
032: private XPageManager pageManager;
033:
034: public void pageCreated() {
035: try {
036: pageManager = project.getPageManager();
037: table = (XTable) this .findComponent("table");
038: table.setStyle("TableData");
039: table.setHeaderStyle("TableHeading");
040: table.setSelectedStyle("TableSelection");
041: table.setInteractiveTable(true);
042: table.repaint();
043: btnStart = (XButton) findComponent("btnStart");
044: btnPause = (XButton) findComponent("btnPause");
045: btnStop = (XButton) findComponent("btnStop");
046: btnSave = (XButton) findComponent("btnSave");
047: btnBack = (XButton) findComponent("btnBack");
048: btnAssert = (XButton) findComponent("btnAssert");
049: } catch (Exception ex) {
050: ex.printStackTrace();
051: }
052: }
053:
054: public void addAssert() {
055: if (wasMouseClicked())
056: pageManager.showPage("tpassert");
057: }
058:
059: public void startScript() {
060: if (wasMouseClicked()) {
061: btnStart.setEnabled(false);
062: btnPause.setEnabled(true);
063: btnStop.setEnabled(true);
064: btnSave.setEnabled(false);
065: btnBack.setEnabled(false);
066: btnAssert.setEnabled(true);
067: JSObject js = JSObject.getWindow(UnitApplet.getApplet());
068: js.eval("startScript();");
069: }
070: }
071:
072: public void stopScript() {
073: if (wasMouseClicked()) {
074: btnStart.setEnabled(true);
075: btnPause.setEnabled(false);
076: btnStop.setEnabled(false);
077: btnSave.setEnabled(dset == null ? false : true);
078: btnBack.setEnabled(true);
079: btnAssert.setEnabled(false);
080: }
081: }
082:
083: public void goBack() {
084: if (wasMouseClicked())
085: pageManager.showPrevious();
086: }
087:
088: public void createScript() {
089: if (dset == null) {
090: dset = (XBaseModel) XTableModelHelper
091: .createDataSet("events");
092: tableModel = (XBaseModel) XTableModelHelper.createTable(
093: dset, "items");
094: XBaseModel header = (XBaseModel) XTableModelHelper
095: .addHeader(tableModel);
096: XTableModelHelper.addData(header, "event", "event");
097: XTableModelHelper.addData(header, "control", "control");
098: XTableModelHelper.addData(header, "value", "value");
099: table.setModel(tableModel);
100: table.repaint();
101: item++;
102:
103: XModel baseModel = (XModel) project.getModel();
104: XBaseModel settings = new XBaseModel();
105: settings
106: .setAttribValue(settings.VALUE_ATTRIBUTE, "dataset");
107: settings.setAttribValue(settings.ID_ATTRIBUTE, "settings");
108: baseModel.append(settings);
109:
110: XBaseModel urlModel = new XBaseModel();
111: urlModel.setAttribValue(settings.VALUE_ATTRIBUTE, "data");
112: urlModel.setAttribValue(settings.ID_ATTRIBUTE, "url");
113: AppletConfig welcome = (AppletConfig) pageManager
114: .getPage("tpwelcome");
115: urlModel.set(welcome.getURL());
116: settings.append(urlModel);
117: DebugLogger.dumpModel((XModel) project.getModel());
118: }
119:
120: table.repaint();
121: }
122:
123: public void addEvent(String comp) {
124: XBaseModel rowdata = (XBaseModel) XTableModelHelper
125: .addRow(tableModel);
126: XTableModelHelper.addData(rowdata, "event", "");
127: XTableModelHelper.addData(rowdata, "Control", comp);
128: XTableModelHelper.addData(rowdata, "Value", "");
129: table.repaint();
130: }
131:
132: public void addPause() {
133: if (wasMouseClicked()) {
134: Pause pauseDlg = new Pause(true);
135: int ret = pauseDlg.showDialog(this );
136: if (ret == 1) {
137: addPause(pauseDlg.getReturnObject().toString());
138: }
139: }
140: }
141:
142: public void addPause(String len) {
143: XBaseModel rowdata = (XBaseModel) XTableModelHelper
144: .addRow(tableModel);
145: XTableModelHelper.addData(rowdata, "event", "pause");
146: XTableModelHelper.addData(rowdata, "Control", "");
147: XTableModelHelper.addData(rowdata, "Value", len);
148: XTableModelHelper.addData(rowdata, "cmd", "pause");
149: XTableModelHelper.addData(rowdata, "hash", "");
150: XTableModelHelper.addData(rowdata, "tag", "");
151: XTableModelHelper.addData(rowdata, "frame", "");
152: table.repaint();
153: }
154:
155: public void pauseAdded() {
156: XBaseModel rowdata = (XBaseModel) XTableModelHelper
157: .addRow(tableModel);
158: XTableModelHelper.addData(rowdata, "event", null);
159: XTableModelHelper.addData(rowdata, "Control", null);
160: XTableModelHelper.addData(rowdata, "cmd", "pause");
161: table.repaint();
162: }
163:
164: public void recordBrowserEvent(String type) {
165: XBaseModel rowdata = (XBaseModel) XTableModelHelper
166: .addRow(tableModel);
167: XTableModelHelper.addData(rowdata, "event", type);
168: XTableModelHelper.addData(rowdata, "Control", "");
169: XTableModelHelper.addData(rowdata, "Value", "");
170: XTableModelHelper.addData(rowdata, "cmd", "info");
171: XTableModelHelper.addData(rowdata, "hash", "");
172: XTableModelHelper.addData(rowdata, "tag", "");
173: XTableModelHelper.addData(rowdata, "frame", "");
174: table.repaint();
175: }
176:
177: public void recordEvent(String ctlName, String evt, String tagName,
178: String ctlOuterHTML, String frameName) {
179: if (btnStart.isEnabled())
180: return;
181: currentModel = (XBaseModel) XTableModelHelper
182: .addRow(tableModel);
183: XTableModelHelper.addData(currentModel, "event", evt);
184: if (ctlName != null)
185: XTableModelHelper.addData(currentModel, "Control", ctlName);
186: else
187: XTableModelHelper.addData(currentModel, "Control", "");
188: XTableModelHelper.addData(currentModel, "Value", "");
189: XTableModelHelper.addData(currentModel, "cmd", "cmd");
190: if ((ctlName == null) || (ctlName.compareTo("") == 0))
191: XTableModelHelper.addData(currentModel, "hash",
192: ctlOuterHTML);
193: else
194: XTableModelHelper.addData(currentModel, "hash", "");
195: XTableModelHelper.addData(currentModel, "tag", tagName);
196: XTableModelHelper.addData(currentModel, "frame", frameName);
197: // table.setBounds();
198: // table.scrollToBottom();
199: table.repaint();
200: if (pauseAfterNext) {
201: addPause("200");
202: pauseAfterNext = false;
203: }
204: }
205:
206: public void recordAlert(String value) {
207: XBaseModel rowdata = (XBaseModel) XTableModelHelper
208: .addRow(tableModel);
209: XTableModelHelper.addData(rowdata, "event", "alert");
210: XTableModelHelper.addData(rowdata, "Control", "");
211: XTableModelHelper.addData(rowdata, "Value", value);
212: XTableModelHelper.addData(rowdata, "cmd", "info");
213: XTableModelHelper.addData(rowdata, "hash", "");
214: XTableModelHelper.addData(rowdata, "tag", "");
215: XTableModelHelper.addData(rowdata, "frame", "");
216: table.repaint();
217: }
218:
219: public void recordConfirm(String value, String ret) {
220: XBaseModel rowdata = (XBaseModel) XTableModelHelper
221: .addRow(tableModel);
222: XTableModelHelper.addData(rowdata, "event", "confirm");
223: XTableModelHelper.addData(rowdata, "Control", ret);
224: XTableModelHelper.addData(rowdata, "Value", value);
225: XTableModelHelper.addData(rowdata, "cmd", "info");
226: XTableModelHelper.addData(rowdata, "hash", "");
227: XTableModelHelper.addData(rowdata, "tag", "");
228: XTableModelHelper.addData(rowdata, "frame", "");
229: table.repaint();
230: }
231:
232: public void setKeyCode(String key) {
233: // eleCurrent.setAttribute( "key", key );
234: }
235:
236: public void setInputValue(String value) {
237: XBaseModel valueModel = (XBaseModel) currentModel.get("Value");
238: valueModel.set(value);
239: }
240:
241: public void saveScript() {
242: if (wasMouseClicked())
243: pageManager.showPage("tpsavescript");
244: }
245:
246: public void reset() {
247: dset = null;
248: tableModel = null;
249: currentModel = null;
250: table.setModel((XModel) null);
251: table.repaint();
252: }
253:
254: public void addPauseAfterNext() {
255: pauseAfterNext = true;
256: }
257: }
|