KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openbravo > erpCommon > ad_actionButton > TestLine


1 /*
2  *************************************************************************
3  * The contents of this file are subject to the Openbravo Public License
4  * Version 1.0 (the "License"), being the Mozilla Public License
5  * Version 1.1 with a permitted attribution clause; you may not use this
6  * file except in compliance with the License. You may obtain a copy of
7  * the License at http://www.openbravo.com/legal/license.html
8  * Software distributed under the License is distributed on an "AS IS"
9  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
10  * License for the specific language governing rights and limitations
11  * under the License.
12  * The Original Code is Openbravo ERP.
13  * The Initial Developer of the Original Code is Openbravo SL
14  * All portions are Copyright (C) 2001-2006 Openbravo SL
15  * All Rights Reserved.
16  * Contributor(s): ______________________________________.
17  ************************************************************************
18  */

19 package org.openbravo.erpCommon.ad_actionButton;
20
21 import java.util.regex.*;
22 import java.io.*;
23 import javax.servlet.*;
24 import org.openbravo.base.MultipartRequest;
25 import org.openbravo.data.*;
26 import org.openbravo.base.VariablesBase;
27
28 // imports for transactions
29
import org.openbravo.database.ConnectionProvider;
30
31 public class TestLine extends MultipartRequest implements FieldProvider {
32   public String JavaDoc comando;
33   public String JavaDoc arg1;
34   public String JavaDoc arg2;
35   public String JavaDoc arg3;
36
37   public Pattern pattern;
38   public Matcher matcher;
39   public String JavaDoc currentWindow;
40   public String JavaDoc currentFrame;
41   public String JavaDoc currentTab;
42   public boolean generatedWindow = false;
43   public boolean generatedWindowPopup = false;
44
45   public ConnectionProvider conn;
46
47   public TestLine(VariablesBase _vars, String JavaDoc _filename, boolean _firstLineHeads, String JavaDoc _currentWindow, String JavaDoc _currentFrame, boolean _generatedWindow, ConnectionProvider _conn) throws IOException {
48     super();
49     this.currentWindow = _currentWindow;
50     this.currentFrame = _currentFrame;
51     this.generatedWindow= _generatedWindow;
52     this.conn=_conn;
53     init(_vars, _filename, _firstLineHeads, "C", null);
54     readSubmittedFile();
55   }
56
57   public TestLine(String JavaDoc _currentWindow, String JavaDoc _currentFrame, boolean _generatedWindow, ConnectionProvider _conn) {
58     this.currentWindow = _currentWindow;
59     this.currentFrame = _currentFrame;
60     this.generatedWindow= _generatedWindow;
61     this.conn=_conn;
62   }
63
64   public String JavaDoc getField(String JavaDoc fieldName) {
65     if (fieldName.equalsIgnoreCase("comando"))
66       return comando;
67     else if (fieldName.equalsIgnoreCase("arg1"))
68       return arg1;
69     else if (fieldName.equalsIgnoreCase("arg2"))
70       return arg2;
71     else if (fieldName.equalsIgnoreCase("arg3"))
72       return arg3;
73     else {
74       return null;
75     }
76   }
77
78
79   public FieldProvider lineFixedSize(String JavaDoc linea) {
80     return null;
81   }
82
83   public FieldProvider lineSeparatorFormated(String JavaDoc linea) {
84     if (linea.length() < 1) return null;
85     TestLine TestLine = new TestLine(currentWindow, currentFrame, generatedWindow,conn);
86     if (linea.substring(0,2).equals("//")) return TestLine;
87
88     // To replace the completed-process popup
89
pattern = Pattern.compile("setAlertWindow\\( \".+?\",[0-9]{1,2}\\)");
90     matcher = pattern.matcher("");
91     matcher.reset(linea);
92     if (matcher.find()) {
93       TestLine.comando = "800127";
94       return TestLine;
95     }
96
97     // To replace setTest by setField
98
pattern = Pattern.compile("setText\\(\"(.+?)\",\"(.+?)\",[0-9]{1,2}\\)");
99     matcher = pattern.matcher("");
100     matcher.reset(linea);
101     if (matcher.find()) {
102       if (generatedWindow) {
103         // To make it get all the login fields, because it's still unknown if it's generated
104
if (matcher.group(1).equals("user")||matcher.group(1).equals("password")) TestLine.comando = "800152";
105         else if(isCheckTextField(currentTab, argErase(matcher.group(1)))) TestLine.comando = "800108";
106         else TestLine.comando = "800156";
107       } else TestLine.comando = "800152";
108       //if(!generatedWindow) TestLine.comando = "800162"; The textarea is not considered in non-generated
109
TestLine.arg1 = matcher.group(1);
110       TestLine.arg2 = matcher.group(2);
111       // To make it not show BLANK in the logout
112
if (TestLine.arg2.equals("_QE_BLANK")) TestLine.comando="";
113       return TestLine;
114     }
115
116     //To replace the drop-down SeletItem
117
pattern = Pattern.compile("selectItem\\(\"report(.+?)_S\",\"(.+?)\",[0-9]{1,2}\\)");
118     matcher = pattern.matcher("");
119     matcher.reset(linea);
120     if (matcher.find()) {
121       TestLine.comando = "800111";
122       TestLine.arg1 = matcher.group(1);
123       TestLine.arg2 = matcher.group(2);
124       return TestLine;
125     }
126     //To solve the non-generated windows drop-down problem
127
pattern = Pattern.compile("selectItem\\(\"(.+?)\",\"(.+?)\",[0-9]{1,2}\\)");
128     matcher = pattern.matcher("");
129     matcher.reset(linea);
130     if (matcher.find()) {
131       TestLine.comando = "800154";
132       TestLine.arg1 = matcher.group(1);
133       TestLine.arg2 = matcher.group(2);
134       return TestLine;
135     }
136     //Click on the id-less image
137
pattern = Pattern.compile("clickImage\\(\"(http.+?)\",[0-9]{1,2}\\)");
138     matcher = pattern.matcher("");
139     matcher.reset(linea);
140     if (matcher.find()) {
141       TestLine.comando = "800153";
142       TestLine.arg1 = matcher.group(1);
143       return TestLine;
144     }
145     //Click on the popup with id
146
pattern = Pattern.compile("clickImage\\(\"(command.+?)\",[0-9]{1,2}\\)");
147     matcher = pattern.matcher("");
148     matcher.reset(linea);
149     if (matcher.find()) {
150       TestLine.comando = "800155";
151       TestLine.arg1 = matcher.group(1);
152       return TestLine;
153     }
154     //Click on the button panel
155
pattern = Pattern.compile("clickImage\\(\"(button.+?)\",[0-9]{1,2}\\)");
156     matcher = pattern.matcher("");
157     matcher.reset(linea);
158     if (matcher.find()) {
159       TestLine.comando = "800140";
160       TestLine.arg1 = matcher.group(1);
161       return TestLine;
162     }
163     //Click on the openbravo image
164
pattern = Pattern.compile("clickImage\\(\"openbravoLogo\",[0-9]{1,2}\\)");
165     matcher = pattern.matcher("");
166     matcher.reset(linea);
167     if (matcher.find()) {
168       TestLine.comando = "800139";
169       return TestLine;
170     }
171     //Click on the tab's title
172
pattern = Pattern.compile("clickElement\\(\"tabtitle(.+?)\",[0-9]{1,2}\\)");
173     matcher = pattern.matcher("");
174     matcher.reset(linea);
175     if (matcher.find()) {
176       TestLine.comando = "800148";
177       TestLine.arg1 = matcher.group(1);
178       currentTab = matcher.group(1);
179       return TestLine;
180     }
181     //Click on the process button
182
pattern = Pattern.compile("clickElement\\(\"(.+?)\",[0-9]{1,2}\\)");
183     matcher = pattern.matcher("");
184     matcher.reset(linea);
185     if (matcher.find()) {
186       TestLine.comando = "800128";
187       TestLine.arg1 = matcher.group(1);
188       TestLine.arg2 = matcher.group(1);
189       return TestLine;
190     }
191     //LEFT MENU
192
//We capture the clicks on the left side menu. Window
193
pattern = Pattern.compile("clickLink\\(\"childwindow(.+?)\",[0-9]{1,2}\\)");
194     matcher = pattern.matcher("");
195     matcher.reset(linea);
196     if (matcher.find()) {
197       TestLine.comando = "800141";
198       TestLine.arg1 = "ad_menu-" + matcher.group(1);
199       generatedWindow=checkIsGenerated("window",matcher.group(1));
200       if (generatedWindow) {
201         try {currentTab = TestLineData.setTabId(conn, matcher.group(1));}
202         catch (ServletException ex) {ex.printStackTrace();}
203       } else currentTab = "";
204       return TestLine;
205     }
206     //We capture the clicks on the left side menu.Process
207
pattern = Pattern.compile("clickLink\\(\"childprocess(.+?)\",[0-9]{1,2}\\)");
208     matcher = pattern.matcher("");
209     matcher.reset(linea);
210     if (matcher.find()) {
211       TestLine.comando = "800142";
212       TestLine.arg1 = "ad_menu-" + matcher.group(1);
213       generatedWindow=checkIsGenerated("process",matcher.group(1));
214       if (generatedWindow) {
215         try {currentTab = TestLineData.setTabId(conn, matcher.group(1));}
216         catch (ServletException ex) {ex.printStackTrace();}
217       } else currentTab="";
218       return TestLine;
219     }
220     //We capture the clicks on the left side menu.Report
221
pattern = Pattern.compile("clickLink\\(\"childreport(.+?)\",[0-9]{1,2}\\)");
222     matcher = pattern.matcher("");
223     matcher.reset(linea);
224     if (matcher.find()) {
225       TestLine.comando = "800144";
226       TestLine.arg1 = "ad_menu-" + matcher.group(1);
227       generatedWindow= false;
228       currentTab="";
229       return TestLine;
230     }
231     //We capture the clicks on the left side menu.Form
232
pattern = Pattern.compile("clickLink\\(\"childform(.+?)\",[0-9]{1,2}\\)");
233     matcher = pattern.matcher("");
234     matcher.reset(linea);
235     if (matcher.find()) {
236       TestLine.comando = "800145";
237       TestLine.arg1 = "ad_menu-" + matcher.group(1);
238       generatedWindow= false;
239       currentTab="";
240       return TestLine;
241     }
242     //We capture the clicks on the left side menu.WorkFlow
243
pattern = Pattern.compile("clickLink\\(\"childwf(.+?)\",[0-9]{1,2}\\)");
244     matcher = pattern.matcher("");
245     matcher.reset(linea);
246     if (matcher.find()) {
247       TestLine.comando = "800160";
248       TestLine.arg1 = "ad_menu-" + matcher.group(1);
249       generatedWindow= true;
250       try {currentTab = TestLineData.setTabId(conn, matcher.group(1));}
251       catch (ServletException ex) {ex.printStackTrace();}
252       return TestLine;
253     }
254     //We capture the clicks on the left side menu.Task
255
pattern = Pattern.compile("clickLink\\(\"childtask(.+?)\",[0-9]{1,2}\\)");
256     matcher = pattern.matcher("");
257     matcher.reset(linea);
258     if (matcher.find()) {
259       TestLine.comando = "800161";
260       TestLine.arg1 = "ad_menu-" + matcher.group(1);
261       generatedWindow= true;
262       return TestLine;
263     }
264     //We capture the clicks on the left side menu.Folder
265
pattern = Pattern.compile("clickLink\\(\"folderHref(.+?)\",[0-9]{1,2}\\)");
266     matcher = pattern.matcher("");
267     matcher.reset(linea);
268     if (matcher.find()) {
269       TestLine.comando = "800147";
270       TestLine.arg1 = "ad_menu-" + matcher.group(1);
271       return TestLine;
272     }
273     //We capture the clicks to change the tab
274
pattern = Pattern.compile("clickLink\\(\"tabname(.+?)\",[0-9]{1,2}\\)");
275     matcher = pattern.matcher("");
276     matcher.reset(linea);
277     if (matcher.find()) {
278       TestLine.comando = "800150";
279       TestLine.arg1 = "ad_tab-" + matcher.group(1);
280       generatedWindow=checkIsGenerated("windowtab",matcher.group(1));
281       currentTab = matcher.group(1);
282       return TestLine;
283     }
284     //We capture the popup's accept button click
285
pattern = Pattern.compile("clickButton\\(\"Button\",[0-9]{1,2}\\)");
286     matcher = pattern.matcher("");
287     matcher.reset(linea);
288     if (matcher.find()) {
289       return TestLine;
290     }
291     //We capture the button clicks
292
pattern = Pattern.compile("clickButton\\(\"(inp.+?)_?([0-9]{1,2})?\",[0-9]{1,2}\\)");
293     matcher = pattern.matcher("");
294     matcher.reset(linea);
295     if (matcher.find()) {
296       TestLine.comando = "800119";
297       TestLine.arg1 = matcher.group(1);
298       TestLine.arg2 = "0";
299       return TestLine;
300     }
301     //We capture the static-checkbox set's clicks
302
pattern = Pattern.compile("clickButton\\(\"param(.+?)_M_?([0-9]{1,2})?\",[0-9]{1,2}\\)");
303     matcher = pattern.matcher("");
304     matcher.reset(linea);
305     if (matcher.find()) {
306       TestLine.comando = "800159";
307       TestLine.arg1 = matcher.group(1);
308       return TestLine;
309     }
310     //We capture the static-checkbox set's click. READY FOR THE "_" BY REPETITON
311
pattern = Pattern.compile("clickButton\\(\"(.+?)_?([0-9]{1,2})?\",[0-9]{1,2}\\)");
312     matcher = pattern.matcher("");
313     matcher.reset(linea);
314     if (matcher.find()) {
315       TestLine.comando = "800117";
316       TestLine.arg1 = matcher.group(1);
317       return TestLine;
318     }
319
320     //The static menu
321
pattern = Pattern.compile("clickLink\\(\"(.+?)\",[0-9]{1,2}\\)");
322     matcher = pattern.matcher("");
323     matcher.reset(linea);
324     if (matcher.find()) {
325       TestLine.comando = "800146";
326       TestLine.arg1 = matcher.group(1);
327       return TestLine;
328     }
329     // For the ASSERT of an element
330
pattern = Pattern.compile("showContextMenu\\(\"(.+?)\",[0-9]{1,2}\\)");
331     matcher = pattern.matcher("");
332     matcher.reset(linea);
333     if (matcher.find()) {
334       TestLine.comando = "800114";
335       TestLine.arg1 = matcher.group(1);
336       return TestLine;
337     }
338     // To replace SETWINDOW Y frame in caps (invented) by seekandsetWindow
339
pattern = Pattern.compile("setWindow\\(\\s\"(.+?)_([A-Z]+)_?([0-9]{1,2})?\",[0-9]{1,2}\\)");//gorka
340
matcher = pattern.matcher("");
341     matcher.reset(linea);
342     if (matcher.find()) {
343       int compWindow = matcher.group(1).compareTo(currentWindow);
344       if (compWindow!=0){
345         TestLine.arg1 = matcher.group(1);
346         TestLine.arg2 = "false";
347         TestLine.comando = "800116";
348         if (!currentWindow.equals("Aplicación de gestión") && matcher.group(1).equals("Aplicación de gestión")) generatedWindow=generatedWindowPopup;
349         else if (currentWindow.equals("Aplicación de gestión") && !matcher.group(1).equals("Aplicación de gestión")) {
350           generatedWindowPopup = generatedWindow;
351           generatedWindow = false;
352         }
353         currentWindow=matcher.group(1);
354
355       }
356       return TestLine;
357     }
358     // to replace SETWINDOW by seekandsetWindow and setFrame
359
//pattern = Pattern.compile("setWindow\\(\\s\"(.+?)_([\\w]+)_?([0-9]{1,2})?\",[0-9]{1,2}\\)");
360
pattern = Pattern.compile("setWindow\\(\\s\"(.+?)_([\\w]+?)_?([0-9]{1,2})?\",[0-9]{1,2}\\)");
361     matcher = pattern.matcher("");
362     matcher.reset(linea);
363     if (matcher.find()) {
364       int compWindow = matcher.group(1).compareTo(currentWindow);
365       int compFrame = matcher.group(2).compareTo(currentFrame);
366       if (!currentWindow.equals("Aplicación de gestión") && matcher.group(1).equals("Aplicación de gestión")) generatedWindow=generatedWindowPopup;
367       else if (currentWindow.equals("Aplicación de gestión") && !matcher.group(1).equals("Aplicación de gestión")) {
368         generatedWindowPopup = generatedWindow;
369         generatedWindow = false;
370       }
371
372       if (compWindow!=0){
373         TestLine.arg1 = matcher.group(1);
374         TestLine.arg2 = matcher.group(2);
375         TestLine.comando = "800149";
376         currentWindow=matcher.group(1);
377         currentFrame=matcher.group(2);
378       } else if (compFrame!=0){
379         TestLine.arg1 = matcher.group(2);
380         TestLine.comando = "800107";
381         currentFrame=matcher.group(2);
382       }
383       return TestLine;
384     }
385
386     //To close a window
387
// pattern = Pattern.compile("closeWindow\\(\\s\"(.+?)_([\\w]+)\",[0-9]{1,2}\\)");
388
// matcher = pattern.matcher("");
389
// matcher.reset(linea);
390
// if (matcher.find()) {
391
// TestLine.comando = "800151";
392
// return TestLine;
393
// }
394
return TestLine;
395   }
396
397   // With this class we know if a window is either manual or wad-generated
398
public boolean checkIsGenerated (String JavaDoc element,String JavaDoc generatedId) {
399     TestLineData[] comprobar=null;
400     //To know if a Window is manual
401
if(element.equals("window")){
402       try {comprobar = TestLineData.selectWindow(conn, generatedId);}
403       catch (ServletException ex) {ex.printStackTrace();}
404       if(comprobar.length==1){
405         return true;
406       }
407       if(comprobar.length==0){
408         return false;
409       }
410     }
411
412     //To know if a Process is manual
413
if(element.equals("process")){
414       try {comprobar = TestLineData.selectProcess(conn, generatedId);}
415       catch (ServletException ex) {ex.printStackTrace();}
416       if(comprobar.length==1){
417         return true;
418       }
419       if(comprobar.length==0){
420         return false;
421       }
422     }
423
424     //To check if a Tab belongs to a manual window
425
if(element.equals("windowtab")){
426       try {comprobar = TestLineData.selectWindowTab(conn, generatedId);}
427       catch (ServletException ex) {ex.printStackTrace();}
428       if(comprobar.length==1){
429         return true;
430       }
431       if(comprobar.length==0){
432         return false;
433       }
434     }
435     return false;
436   }
437   //With this class we know if it is a field or a TextArea
438
public boolean isCheckTextField (String JavaDoc tab,String JavaDoc column) {
439     //TestLineData[] comprobar=null;
440
String JavaDoc comprobar="";
441     //To check the length of a field
442
try {comprobar = TestLineData.checkFieldOrArea(conn, tab, column);}
443     catch (ServletException ex) {ex.printStackTrace();}
444     if(Integer.valueOf(comprobar).intValue() <=110){
445       return true;
446     } else {
447       // if(comprobar.length>110){
448
return false;
449       }
450
451     //return false;
452
}
453     //With this class we know if it's a checkBox
454
public boolean isCheck (String JavaDoc tab,String JavaDoc column) {
455       //TestLineData[] comprobar=null;
456
String JavaDoc comprobar="";
457       //To check the length of a field
458
try {comprobar = TestLineData.checkButtonOrCheck(conn, tab, column);}
459       catch (ServletException ex) {ex.printStackTrace();}
460       if(comprobar.equals("20")){
461         return true;
462       }
463
464       return false;
465     }
466
467     //With this class we knoe if it's a button
468
public boolean isButton (String JavaDoc tab,String JavaDoc column) {
469       //TestLineData[] comprobar=null;
470
String JavaDoc comprobar="";
471       //To check the length of a field
472
try {comprobar = TestLineData.checkButtonOrCheck(conn, tab, column);}
473       catch (ServletException ex) {ex.printStackTrace();}
474       if(comprobar.equals("28")){
475         return true;
476       }
477
478       return false;
479     }
480
481     private String JavaDoc argErase(String JavaDoc arg) {
482       if (arg.endsWith("_D")) arg = arg.substring(0, arg.lastIndexOf("_"));
483       else if (arg.endsWith("_BTN")) arg = arg.substring(0, arg.lastIndexOf("_"));
484
485       return arg;
486     }
487
488   }
489
Popular Tags