1*ef39d40dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*ef39d40dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*ef39d40dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*ef39d40dSAndrew Rist  * distributed with this work for additional information
6*ef39d40dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*ef39d40dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*ef39d40dSAndrew Rist  * "License"); you may not use this file except in compliance
9*ef39d40dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*ef39d40dSAndrew Rist  *
11*ef39d40dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*ef39d40dSAndrew Rist  *
13*ef39d40dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*ef39d40dSAndrew Rist  * software distributed under the License is distributed on an
15*ef39d40dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*ef39d40dSAndrew Rist  * KIND, either express or implied.  See the License for the
17*ef39d40dSAndrew Rist  * specific language governing permissions and limitations
18*ef39d40dSAndrew Rist  * under the License.
19*ef39d40dSAndrew Rist  *
20*ef39d40dSAndrew Rist  *************************************************************/
21*ef39d40dSAndrew Rist 
22*ef39d40dSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir package convwatch;
25cdf0e10cSrcweir 
26cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory;
27cdf0e10cSrcweir import lib.TestParameters;
28cdf0e10cSrcweir import java.io.File;
29cdf0e10cSrcweir 
30cdf0e10cSrcweir import com.sun.star.container.XNameAccess;
31cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime;
32cdf0e10cSrcweir 
33cdf0e10cSrcweir /**
34cdf0e10cSrcweir  * This class object is more a Helper or Controller.
35cdf0e10cSrcweir  * It stores information like:
36cdf0e10cSrcweir  * - How to create a document (with a OpenOffice.org method, or with MS Word, or with OpenOffice.org as pdf)
37cdf0e10cSrcweir  * - some more infos for OpenOffice.org method
38cdf0e10cSrcweir  *   - a service factory pointer
39cdf0e10cSrcweir  *   - if hidden mode should use
40cdf0e10cSrcweir  *   - target name
41cdf0e10cSrcweir  *
42cdf0e10cSrcweir  * - printer name
43cdf0e10cSrcweir  *
44cdf0e10cSrcweir  * - how to handle .xml files, which in Microsoft could be Excel or Word documents
45cdf0e10cSrcweir  *
46cdf0e10cSrcweir  * HOWTO USE:
47cdf0e10cSrcweir  * For OOo,
48cdf0e10cSrcweir  *   create an GraphicalTestArguments with a set of TestParameters
49cdf0e10cSrcweir  *    GraphicalTestArguments a = new GraphicalTestArguments(params);
50cdf0e10cSrcweir  *
51cdf0e10cSrcweir  *  If you wish to use pdf export instead of normal printer output, set also the reference type to 'pdf'
52cdf0e10cSrcweir  *    a.setReferenceType("pdf");
53cdf0e10cSrcweir  *
54cdf0e10cSrcweir  *
55cdf0e10cSrcweir  * For MS Office:
56cdf0e10cSrcweir  *   create an GraphicalTestArguments and set the reference type to 'msoffice'
57cdf0e10cSrcweir  *    GraphicalTestArguments a = new GraphicalTestArguments(params);
58cdf0e10cSrcweir  *    a.setReferenceType("msoffice");
59cdf0e10cSrcweir  *
60cdf0e10cSrcweir  * within windows it's better to set also a printer name so it's simply possible to use for normal work the default printer
61cdf0e10cSrcweir  * and for such tests with ConvWatch a extra printer.
62cdf0e10cSrcweir  *    a.setPrinterName("CrossOffice Printer");
63cdf0e10cSrcweir  *
64cdf0e10cSrcweir  */
65cdf0e10cSrcweir 
66cdf0e10cSrcweir public class GraphicalTestArguments
67cdf0e10cSrcweir {
68cdf0e10cSrcweir     /**
69cdf0e10cSrcweir     2DO:
70cdf0e10cSrcweir     Possible reference types are currently
71cdf0e10cSrcweir     // ooo
72cdf0e10cSrcweir     // pdf
73cdf0e10cSrcweir     // msoffice
74cdf0e10cSrcweir     */
75cdf0e10cSrcweir     String m_sReferenceType = "OOo";
76cdf0e10cSrcweir 
77cdf0e10cSrcweir     String m_sTargetFrameName = "_blank";
78cdf0e10cSrcweir 
79cdf0e10cSrcweir     String m_sPrinterName = null;
80cdf0e10cSrcweir 
81cdf0e10cSrcweir     // Hidden = true hiddes a used OpenOffice.org, all code is executed in the background
82cdf0e10cSrcweir     // This parameter is not used for RefType: msoffice
83cdf0e10cSrcweir     boolean m_bHidden = true;
84cdf0e10cSrcweir 
85cdf0e10cSrcweir     String m_sDefaultXMLFormatApplication = null;
86cdf0e10cSrcweir 
87cdf0e10cSrcweir     boolean m_bIncludeSubdirectories;
88cdf0e10cSrcweir 
89cdf0e10cSrcweir     TestParameters m_aCurrentParams;
90cdf0e10cSrcweir 
91cdf0e10cSrcweir     int m_nMaxPages = 0;                           // default is 0 (print all pages)
92cdf0e10cSrcweir     String m_sOnlyPage = "";                       // default is "", there is no page which we want to print only.
93cdf0e10cSrcweir 
94cdf0e10cSrcweir     int m_nResolutionInDPI = 0;
95cdf0e10cSrcweir 
96cdf0e10cSrcweir     boolean m_bStoreFile = true;
97cdf0e10cSrcweir     boolean m_bResuseOffice = false;
98cdf0e10cSrcweir 
99cdf0e10cSrcweir     boolean m_bDebugMode = false;
100cdf0e10cSrcweir 
101cdf0e10cSrcweir     String m_sLeaveOutNames = null;
102cdf0e10cSrcweir 
103cdf0e10cSrcweir     String m_sDistinct = null;
104cdf0e10cSrcweir 
105cdf0e10cSrcweir     boolean m_bCreateDefaultReference = false;
106cdf0e10cSrcweir 
107cdf0e10cSrcweir     // CONSTRUCTOR
GraphicalTestArguments()108cdf0e10cSrcweir     private GraphicalTestArguments(){}
109cdf0e10cSrcweir 
GraphicalTestArguments(TestParameters param)110cdf0e10cSrcweir     public GraphicalTestArguments(TestParameters param)
111cdf0e10cSrcweir         {
112cdf0e10cSrcweir             m_aCurrentParams = param;
113cdf0e10cSrcweir             // collect interesting information from the ComplexTestCase
114cdf0e10cSrcweir             // ....
115cdf0e10cSrcweir 
116cdf0e10cSrcweir             // REFERENCE_TYPE ----------
117cdf0e10cSrcweir             String sReferenceType = (String)param.get( PropertyName.DOC_COMPARATOR_REFERENCE_TYPE );
118cdf0e10cSrcweir             if (sReferenceType == null || sReferenceType.length() == 0)
119cdf0e10cSrcweir             {
120cdf0e10cSrcweir             }
121cdf0e10cSrcweir             else
122cdf0e10cSrcweir             {
123cdf0e10cSrcweir                 // log.println("found REFERENCE_TYPE " + sReferenceType );
124cdf0e10cSrcweir                 setReferenceType(sReferenceType);
125cdf0e10cSrcweir             }
126cdf0e10cSrcweir 
127cdf0e10cSrcweir             // PRINTER_NAME ----------
128cdf0e10cSrcweir             String sPrinterName = (String)param.get( PropertyName.DOC_COMPARATOR_PRINTER_NAME );
129cdf0e10cSrcweir             if (sPrinterName == null || sPrinterName.length() == 0)
130cdf0e10cSrcweir             {
131cdf0e10cSrcweir             }
132cdf0e10cSrcweir             else
133cdf0e10cSrcweir             {
134cdf0e10cSrcweir                 // log.println("found PRINTER_NAME " + sPrinterName );
135cdf0e10cSrcweir                 setPrinterName(sPrinterName);
136cdf0e10cSrcweir             }
137cdf0e10cSrcweir             // DEFAULT_XML_FORMAT_APP ------
138cdf0e10cSrcweir             String sDefaultXMLFormatApp = (String)param.get( PropertyName.DOC_COMPARATOR_DEFAULT_XML_FORMAT_APP );
139cdf0e10cSrcweir             if (sDefaultXMLFormatApp == null || sDefaultXMLFormatApp.length() == 0)
140cdf0e10cSrcweir             {
141cdf0e10cSrcweir             }
142cdf0e10cSrcweir             else
143cdf0e10cSrcweir             {
144cdf0e10cSrcweir                 setDefaultXMLFormatApp(sDefaultXMLFormatApp);
145cdf0e10cSrcweir             }
146cdf0e10cSrcweir 
147cdf0e10cSrcweir             m_bIncludeSubdirectories = true;
148cdf0e10cSrcweir             String sRECURSIVE = (String)param.get( PropertyName.DOC_COMPARATOR_INCLUDE_SUBDIRS );
149cdf0e10cSrcweir // TODO: I need to get the boolean value with get("name") because, if it is not given getBool() returns
150cdf0e10cSrcweir //       with a default of 'false' which is not very helpful if the default should be 'true'
151cdf0e10cSrcweir //       maybe a getBoolean("name", true) could be a better choise.
152cdf0e10cSrcweir             if (sRECURSIVE == null)
153cdf0e10cSrcweir             {
154cdf0e10cSrcweir                 sRECURSIVE = "true";
155cdf0e10cSrcweir             }
156cdf0e10cSrcweir             if (sRECURSIVE.toLowerCase().equals("no") ||
157cdf0e10cSrcweir                 sRECURSIVE.toLowerCase().equals("false"))
158cdf0e10cSrcweir             {
159cdf0e10cSrcweir                 m_bIncludeSubdirectories = false;
160cdf0e10cSrcweir             }
161cdf0e10cSrcweir 
162cdf0e10cSrcweir             // ----------------------------------------
163cdf0e10cSrcweir             m_nMaxPages = param.getInt( PropertyName.DOC_COMPARATOR_PRINT_MAX_PAGE );
164cdf0e10cSrcweir             m_sOnlyPage = (String)param.get(PropertyName.DOC_COMPARATOR_PRINT_ONLY_PAGE);
165cdf0e10cSrcweir 
166cdf0e10cSrcweir             m_nResolutionInDPI = param.getInt( PropertyName.DOC_COMPARATOR_GFX_OUTPUT_DPI_RESOLUTION );
167cdf0e10cSrcweir             if (m_nResolutionInDPI == 0)
168cdf0e10cSrcweir             {
169cdf0e10cSrcweir                 // 212 DPI is 1754 x 2474 pixel for DIN A4
170cdf0e10cSrcweir                 m_nResolutionInDPI = 212;
171cdf0e10cSrcweir             }
172cdf0e10cSrcweir 
173cdf0e10cSrcweir             // ----------------------------------------
174cdf0e10cSrcweir             String sImportFilterName = (String)param.get(PropertyName.DOC_CONVERTER_IMPORT_FILTER_NAME);
175cdf0e10cSrcweir             if (sImportFilterName != null && sImportFilterName.length() > 0)
176cdf0e10cSrcweir             {
177cdf0e10cSrcweir                 // System.out.println("found " + PropertyName.DOC_CONVERTER_IMPORT_FILTER_NAME + " " + sImportFilterName );
178cdf0e10cSrcweir                 m_sImportFilterName = sImportFilterName;
179cdf0e10cSrcweir 
180cdf0e10cSrcweir                 if (sImportFilterName.toLowerCase().equals("help"))
181cdf0e10cSrcweir                 {
182cdf0e10cSrcweir                     showInternalFilterName(sImportFilterName, getMultiServiceFactory() );
183cdf0e10cSrcweir                     GlobalLogWriter.get().println("Must quit.");
184cdf0e10cSrcweir                 }
185cdf0e10cSrcweir             }
186cdf0e10cSrcweir             // ----------------------------------------
187cdf0e10cSrcweir             String sExportFilterName = (String)param.get(PropertyName.DOC_CONVERTER_EXPORT_FILTER_NAME);
188cdf0e10cSrcweir             if (sExportFilterName != null && sExportFilterName.length() > 0)
189cdf0e10cSrcweir             {
190cdf0e10cSrcweir                 // System.out.println("found " + PropertyName.DOC_CONVERTER_EXPORT_FILTER_NAME + " " + sExportFilterName );
191cdf0e10cSrcweir                 m_sExportFilterName = sExportFilterName;
192cdf0e10cSrcweir                 if (sExportFilterName.toLowerCase().equals("help"))
193cdf0e10cSrcweir                 {
194cdf0e10cSrcweir                     showInternalFilterName(sExportFilterName, getMultiServiceFactory() );
195cdf0e10cSrcweir                     GlobalLogWriter.get().println("Must quit.");
196cdf0e10cSrcweir                 }
197cdf0e10cSrcweir             }
198cdf0e10cSrcweir 
199cdf0e10cSrcweir             // ----------------------------------------
200cdf0e10cSrcweir             String sOfficeProgram = (String)param.get(PropertyName.DOC_CONVERTER_OFFICE_PROGRAM);
201cdf0e10cSrcweir             if (sOfficeProgram != null && sOfficeProgram.length() > 0)
202cdf0e10cSrcweir             {
203cdf0e10cSrcweir                 m_sOfficeProgram = sOfficeProgram;
204cdf0e10cSrcweir             }
205cdf0e10cSrcweir             // ----------------------------------------
206cdf0e10cSrcweir             String sREUSE_OFFICE = (String)param.get( PropertyName.DOC_CONVERTER_REUSE_OFFICE);
207cdf0e10cSrcweir             if (sREUSE_OFFICE == null)
208cdf0e10cSrcweir             {
209cdf0e10cSrcweir                 sREUSE_OFFICE = "false";
210cdf0e10cSrcweir             }
211cdf0e10cSrcweir             if (sREUSE_OFFICE.toLowerCase().equals("yes") ||
212cdf0e10cSrcweir                 sREUSE_OFFICE.toLowerCase().equals("true"))
213cdf0e10cSrcweir             {
214cdf0e10cSrcweir                 m_bResuseOffice = true;
215cdf0e10cSrcweir             }
216cdf0e10cSrcweir             else
217cdf0e10cSrcweir             {
218cdf0e10cSrcweir                 m_bResuseOffice = false;
219cdf0e10cSrcweir             }
220cdf0e10cSrcweir 
221cdf0e10cSrcweir 
222cdf0e10cSrcweir             String sHTMLOutputPrefix = (String)param.get( PropertyName.DOC_COMPARATOR_HTML_OUTPUT_PREFIX);
223cdf0e10cSrcweir             if (sHTMLOutputPrefix == null)
224cdf0e10cSrcweir             {
225cdf0e10cSrcweir                 m_sHTMLOutputPrefix = "";
226cdf0e10cSrcweir             }
227cdf0e10cSrcweir             else
228cdf0e10cSrcweir             {
229cdf0e10cSrcweir                 m_sHTMLOutputPrefix = sHTMLOutputPrefix;
230cdf0e10cSrcweir             }
231cdf0e10cSrcweir 
232cdf0e10cSrcweir             String sWithBorderMove = (String)param.get( PropertyName.DOC_COMPARATOR_GFXCMP_WITH_BORDERMOVE);
233cdf0e10cSrcweir             if (sWithBorderMove == null)
234cdf0e10cSrcweir             {
235cdf0e10cSrcweir                 sWithBorderMove = "";
236cdf0e10cSrcweir                 // m_tWithBorderMove = TriState.UNSET;
237cdf0e10cSrcweir                 m_tWithBorderMove = TriState.FALSE;
238cdf0e10cSrcweir             }
239cdf0e10cSrcweir             if (sWithBorderMove.toLowerCase().equals("yes") ||
240cdf0e10cSrcweir                 sWithBorderMove.toLowerCase().equals("true"))
241cdf0e10cSrcweir             {
242cdf0e10cSrcweir                 m_tWithBorderMove = TriState.TRUE;
243cdf0e10cSrcweir             }
244cdf0e10cSrcweir             else if (sWithBorderMove.toLowerCase().equals("no") ||
245cdf0e10cSrcweir                      sWithBorderMove.toLowerCase().equals("false"))
246cdf0e10cSrcweir             {
247cdf0e10cSrcweir                 m_tWithBorderMove = TriState.FALSE;
248cdf0e10cSrcweir             }
249cdf0e10cSrcweir             else
250cdf0e10cSrcweir             {
251cdf0e10cSrcweir                 m_tWithBorderMove = TriState.FALSE;
252cdf0e10cSrcweir                 // m_tWithBorderMove = TriState.UNSET;
253cdf0e10cSrcweir             }
254cdf0e10cSrcweir 
255cdf0e10cSrcweir             String sLeaveOutNames = (String)param.get(PropertyName.DOC_COMPARATOR_LEAVE_OUT_FILES);
256cdf0e10cSrcweir             if (sLeaveOutNames != null)
257cdf0e10cSrcweir             {
258cdf0e10cSrcweir                 m_sLeaveOutNames = sLeaveOutNames;
259cdf0e10cSrcweir             }
260cdf0e10cSrcweir 
261cdf0e10cSrcweir             String sDBInfoString = (String)param.get(PropertyName.DOC_COMPARATOR_DB_INFO_STRING);
262cdf0e10cSrcweir             if (sDBInfoString != null)
263cdf0e10cSrcweir             {
264cdf0e10cSrcweir                 m_sDBInfoString = sDBInfoString;
265cdf0e10cSrcweir             }
266cdf0e10cSrcweir 
267cdf0e10cSrcweir             // DISTINCT ----------
268cdf0e10cSrcweir             String sDistinct = (String)param.get( "DISTINCT" );
269cdf0e10cSrcweir             if (sDistinct == null || sDistinct.length() == 0)
270cdf0e10cSrcweir             {
271cdf0e10cSrcweir                 sDistinct = "";
272cdf0e10cSrcweir             }
273cdf0e10cSrcweir             else
274cdf0e10cSrcweir             {
275cdf0e10cSrcweir                 m_sDistinct = sDistinct;
276cdf0e10cSrcweir             }
277cdf0e10cSrcweir             // HIDDEN
278cdf0e10cSrcweir             String sOfficeViewable = (String)param.get(PropertyName.OFFICE_VIEWABLE);
279cdf0e10cSrcweir             if (sOfficeViewable != null)
280cdf0e10cSrcweir             {
281cdf0e10cSrcweir                 if (sOfficeViewable.toLowerCase().equals("yes") ||
282cdf0e10cSrcweir                     sOfficeViewable.toLowerCase().equals("true"))
283cdf0e10cSrcweir                 {
284cdf0e10cSrcweir                     setViewable();
285cdf0e10cSrcweir                 }
286cdf0e10cSrcweir                 else
287cdf0e10cSrcweir                 {
288cdf0e10cSrcweir                     setHidden();
289cdf0e10cSrcweir                 }
290cdf0e10cSrcweir             }
291cdf0e10cSrcweir             // CREATE_DEFAULT
292cdf0e10cSrcweir             String sCreateDefault = (String)param.get(PropertyName.CREATE_DEFAULT);
293cdf0e10cSrcweir             if (sCreateDefault != null)
294cdf0e10cSrcweir             {
295cdf0e10cSrcweir                 if (sCreateDefault.toLowerCase().equals("yes") ||
296cdf0e10cSrcweir                     sCreateDefault.toLowerCase().equals("true"))
297cdf0e10cSrcweir                 {
298cdf0e10cSrcweir                     m_bCreateDefaultReference = true;
299cdf0e10cSrcweir                 }
300cdf0e10cSrcweir                 else
301cdf0e10cSrcweir                 {
302cdf0e10cSrcweir                     m_bCreateDefaultReference = false;
303cdf0e10cSrcweir                 }
304cdf0e10cSrcweir             }
305cdf0e10cSrcweir 
306cdf0e10cSrcweir         }
307cdf0e10cSrcweir 
checkIfUsableDocumentType(String _sName)308cdf0e10cSrcweir     public boolean checkIfUsableDocumentType(String _sName)
309cdf0e10cSrcweir         {
310cdf0e10cSrcweir             // @todo
311cdf0e10cSrcweir             // check if the name is in the leave out list and then return 'false'
312cdf0e10cSrcweir             if (_sName.toLowerCase().endsWith(".jpg") ||
313cdf0e10cSrcweir                 _sName.toLowerCase().endsWith(".png") ||
314cdf0e10cSrcweir                 _sName.toLowerCase().endsWith(".gif") ||
315cdf0e10cSrcweir                 _sName.toLowerCase().endsWith(".bmp") ||
316cdf0e10cSrcweir                 _sName.toLowerCase().endsWith(".prn") ||
317cdf0e10cSrcweir                 _sName.toLowerCase().endsWith(".ps"))
318cdf0e10cSrcweir             {
319cdf0e10cSrcweir                 return false;
320cdf0e10cSrcweir             }
321cdf0e10cSrcweir 
322cdf0e10cSrcweir             return true;
323cdf0e10cSrcweir         }
324cdf0e10cSrcweir 
showInternalFilterName(String _sFilterName, XMultiServiceFactory _xMSF)325cdf0e10cSrcweir     static void showInternalFilterName(String _sFilterName, XMultiServiceFactory _xMSF)
326cdf0e10cSrcweir         {
327cdf0e10cSrcweir             if (_sFilterName.length() == 0)
328cdf0e10cSrcweir             {
329cdf0e10cSrcweir                 // System.out.println("No FilterName set.");
330cdf0e10cSrcweir                 return;
331cdf0e10cSrcweir             }
332cdf0e10cSrcweir 
333cdf0e10cSrcweir             if (_xMSF == null)
334cdf0e10cSrcweir             {
335cdf0e10cSrcweir                 GlobalLogWriter.get().println("MultiServiceFactory not set.");
336cdf0e10cSrcweir                 return;
337cdf0e10cSrcweir             }
338cdf0e10cSrcweir             // XFilterFactory aFilterFactory = null;
339cdf0e10cSrcweir             Object aObj = null;
340cdf0e10cSrcweir             try
341cdf0e10cSrcweir             {
342cdf0e10cSrcweir                 aObj = _xMSF.createInstance("com.sun.star.document.FilterFactory");
343cdf0e10cSrcweir             }
344cdf0e10cSrcweir             catch(com.sun.star.uno.Exception e)
345cdf0e10cSrcweir             {
346cdf0e10cSrcweir                 GlobalLogWriter.get().println("Can't get com.sun.star.document.FilterFactory.");
347cdf0e10cSrcweir                 return;
348cdf0e10cSrcweir             }
349cdf0e10cSrcweir             if (aObj != null)
350cdf0e10cSrcweir             {
351cdf0e10cSrcweir                 XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aObj);
352cdf0e10cSrcweir                 if (aNameAccess != null)
353cdf0e10cSrcweir                 {
354cdf0e10cSrcweir 
355cdf0e10cSrcweir                     if (_sFilterName.toLowerCase().equals("help"))
356cdf0e10cSrcweir                     {
357cdf0e10cSrcweir                         GlobalLogWriter.get().println("Show all possible ElementNames from current version." );
358cdf0e10cSrcweir                         String[] aElementNames = aNameAccess.getElementNames();
359cdf0e10cSrcweir                         for (int i = 0; i<aElementNames.length; i++)
360cdf0e10cSrcweir                         {
361cdf0e10cSrcweir                             GlobalLogWriter.get().println(aElementNames[i]);
362cdf0e10cSrcweir                         }
363cdf0e10cSrcweir                     }
364cdf0e10cSrcweir                 }
365cdf0e10cSrcweir             }
366cdf0e10cSrcweir         }
367cdf0e10cSrcweir 
368cdf0e10cSrcweir     /*
369cdf0e10cSrcweir     public GraphicalTestArguments(TestParameters param, Log xxx)
370cdf0e10cSrcweir     {
371cdf0e10cSrcweir         // collect interesting information from the ComplexTestCase
372cdf0e10cSrcweir         // ....
373cdf0e10cSrcweir     }
374cdf0e10cSrcweir     */
375cdf0e10cSrcweir 
376cdf0e10cSrcweir     // set methods
setReferenceType(String _sType)377cdf0e10cSrcweir     public void setReferenceType(String _sType)
378cdf0e10cSrcweir         {
379cdf0e10cSrcweir             // special casse, null is not allowed, set to default.
380cdf0e10cSrcweir             if (_sType == null)
381cdf0e10cSrcweir             {
382cdf0e10cSrcweir                 m_sReferenceType = "OOo";
383cdf0e10cSrcweir             }
384cdf0e10cSrcweir             else
385cdf0e10cSrcweir             {
386cdf0e10cSrcweir                 m_sReferenceType = _sType;
387cdf0e10cSrcweir             }
388cdf0e10cSrcweir         }
setTargetFrameName(String _sTargetFrameName)389cdf0e10cSrcweir     public void setTargetFrameName(String _sTargetFrameName) {m_sTargetFrameName = _sTargetFrameName;}
setPrinterName(String _sName)390cdf0e10cSrcweir     public void setPrinterName(String _sName) {m_sPrinterName = _sName;}
setHidden()391cdf0e10cSrcweir     public void setHidden() { m_bHidden = true;}
setViewable()392cdf0e10cSrcweir     public void setViewable() {m_bHidden = false;}
setDefaultXMLFormatApp(String _sNameOfApp)393cdf0e10cSrcweir     public void setDefaultXMLFormatApp(String _sNameOfApp) {m_sDefaultXMLFormatApplication = _sNameOfApp;}
394cdf0e10cSrcweir 
395cdf0e10cSrcweir     // get methods
getMultiServiceFactory()396cdf0e10cSrcweir     public XMultiServiceFactory getMultiServiceFactory()
397cdf0e10cSrcweir         {
398cdf0e10cSrcweir             XMultiServiceFactory xMSF = (XMultiServiceFactory)m_aCurrentParams.getMSF();
399cdf0e10cSrcweir 
400cdf0e10cSrcweir             // check if MultiServiceFactory is given
401cdf0e10cSrcweir             if (getReferenceType().toLowerCase().equals("pdf") ||
402cdf0e10cSrcweir                 getReferenceType().toLowerCase().equals("ooo"))
403cdf0e10cSrcweir             {
404cdf0e10cSrcweir                 if (xMSF == null)
405cdf0e10cSrcweir                 {
406cdf0e10cSrcweir                     GlobalLogWriter.get().println("ERROR! MultiServiceFactory not given.");
407cdf0e10cSrcweir                 }
408cdf0e10cSrcweir             }
409cdf0e10cSrcweir             return xMSF;
410cdf0e10cSrcweir         }
411cdf0e10cSrcweir 
getReferenceType()412cdf0e10cSrcweir     public String getReferenceType() {return m_sReferenceType;}
getTargetFrameName()413cdf0e10cSrcweir     public String getTargetFrameName() {return m_sTargetFrameName;}
getPrinterName()414cdf0e10cSrcweir     public String getPrinterName() {return m_sPrinterName;}
isHidden()415cdf0e10cSrcweir     public boolean isHidden() {return m_bHidden;}
getDefaultXMLFormatApp()416cdf0e10cSrcweir     public String getDefaultXMLFormatApp() {return m_sDefaultXMLFormatApplication;}
417cdf0e10cSrcweir 
418cdf0e10cSrcweir 
419cdf0e10cSrcweir     /**
420cdf0e10cSrcweir      * @return true, if subdirectories should run through
421cdf0e10cSrcweir      */
includeSubDirectories()422cdf0e10cSrcweir     public boolean includeSubDirectories() {return m_bIncludeSubdirectories;}
423cdf0e10cSrcweir 
424cdf0e10cSrcweir     /**
425cdf0e10cSrcweir      * @return the number of pages to be print
426cdf0e10cSrcweir      */
getMaxPages()427cdf0e10cSrcweir     public int getMaxPages() {return m_nMaxPages;}
428cdf0e10cSrcweir 
429cdf0e10cSrcweir     /**
430cdf0e10cSrcweir      * @return as string, which pages should be print, e.g. '1-4;6' here, page 1 to 4 and page 6.
431cdf0e10cSrcweir      */
getOnlyPages()432cdf0e10cSrcweir     public String getOnlyPages()
433cdf0e10cSrcweir     {
434cdf0e10cSrcweir         if (m_sOnlyPage == null)
435cdf0e10cSrcweir         {
436cdf0e10cSrcweir             return "";
437cdf0e10cSrcweir         }
438cdf0e10cSrcweir         return m_sOnlyPage;
439cdf0e10cSrcweir     }
440cdf0e10cSrcweir 
441cdf0e10cSrcweir     /**
442cdf0e10cSrcweir      * @return true, if there should not print all pages at all, use getMaxPages() and or getOnlyPages() to get which pages to print
443cdf0e10cSrcweir      */
printAllPages()444cdf0e10cSrcweir     public boolean printAllPages()
445cdf0e10cSrcweir         {
446cdf0e10cSrcweir             if ( (getMaxPages() > 0) ||
447cdf0e10cSrcweir                  (getOnlyPages().length() != 0))
448cdf0e10cSrcweir             {
449cdf0e10cSrcweir                 return false;
450cdf0e10cSrcweir             }
451cdf0e10cSrcweir             return true;
452cdf0e10cSrcweir         }
453cdf0e10cSrcweir 
454cdf0e10cSrcweir     /**
455cdf0e10cSrcweir      * @return integer value, which contain resolution in DPI.
456cdf0e10cSrcweir      */
getResolutionInDPI()457cdf0e10cSrcweir     public int getResolutionInDPI() {return m_nResolutionInDPI;}
458cdf0e10cSrcweir 
checkIfMSWindowsConformPath(String _sPath)459cdf0e10cSrcweir     public static void checkIfMSWindowsConformPath(String _sPath)
460cdf0e10cSrcweir         {
461cdf0e10cSrcweir             if (_sPath != null  && _sPath.length() > 1)
462cdf0e10cSrcweir             {
463cdf0e10cSrcweir                 if (_sPath.charAt(1) == ':')
464cdf0e10cSrcweir                 {
465cdf0e10cSrcweir                     if (_sPath.charAt(2) != '\\')
466cdf0e10cSrcweir                     {
467cdf0e10cSrcweir                         GlobalLogWriter.get().println("This is not a Microsoft Windows conform path: '" + _sPath + "' please fix.");
468cdf0e10cSrcweir                         System.exit(1);
469cdf0e10cSrcweir                     }
470cdf0e10cSrcweir                 }
471cdf0e10cSrcweir             }
472cdf0e10cSrcweir         }
473cdf0e10cSrcweir 
474cdf0e10cSrcweir 
475cdf0e10cSrcweir     /**
476cdf0e10cSrcweir      * @return the INPUT_PATH out of the TestParameters
477cdf0e10cSrcweir      */
getInputPath()478cdf0e10cSrcweir     public String getInputPath()
479cdf0e10cSrcweir         {
480cdf0e10cSrcweir             String sInputPath;
481cdf0e10cSrcweir             sInputPath = (String)m_aCurrentParams.get(PropertyName.DOC_COMPARATOR_INPUT_PATH);
482cdf0e10cSrcweir             checkIfMSWindowsConformPath(sInputPath);
483cdf0e10cSrcweir             return sInputPath;
484cdf0e10cSrcweir         }
485cdf0e10cSrcweir     /**
486cdf0e10cSrcweir      * @return the OUTPUT_PATH out of the TestParameters
487cdf0e10cSrcweir      */
getOutputPath()488cdf0e10cSrcweir     public String getOutputPath()
489cdf0e10cSrcweir         {
490cdf0e10cSrcweir             String sOutputPath;
491cdf0e10cSrcweir             sOutputPath = (String)m_aCurrentParams.get(PropertyName.DOC_COMPARATOR_OUTPUT_PATH);
492cdf0e10cSrcweir             checkIfMSWindowsConformPath(sOutputPath);
493cdf0e10cSrcweir             return sOutputPath;
494cdf0e10cSrcweir         }
495cdf0e10cSrcweir     /**
496cdf0e10cSrcweir      * @return the REFERENCE_PATH out of the TestParameters
497cdf0e10cSrcweir      */
getReferencePath()498cdf0e10cSrcweir     public String getReferencePath()
499cdf0e10cSrcweir         {
500cdf0e10cSrcweir             String sReferencePath;
501cdf0e10cSrcweir             sReferencePath = (String)m_aCurrentParams.get(PropertyName.DOC_COMPARATOR_REFERENCE_PATH);
502cdf0e10cSrcweir             checkIfMSWindowsConformPath(sReferencePath);
503cdf0e10cSrcweir             return sReferencePath;
504cdf0e10cSrcweir         }
505cdf0e10cSrcweir     /**
506cdf0e10cSrcweir      * @return the DIFF_PATH out of the TestParameters
507cdf0e10cSrcweir      */
getDiffPath()508cdf0e10cSrcweir     public String getDiffPath()
509cdf0e10cSrcweir         {
510cdf0e10cSrcweir             String sDiffPath;
511cdf0e10cSrcweir             sDiffPath = (String)m_aCurrentParams.get(PropertyName.DOC_COMPARATOR_DIFF_PATH);
512cdf0e10cSrcweir             checkIfMSWindowsConformPath(sDiffPath);
513cdf0e10cSrcweir             return sDiffPath;
514cdf0e10cSrcweir         }
515cdf0e10cSrcweir 
getOverwrite()516cdf0e10cSrcweir     public boolean getOverwrite()
517cdf0e10cSrcweir         {
518cdf0e10cSrcweir             boolean bOverwrite = m_aCurrentParams.getBool( PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE);
519cdf0e10cSrcweir             return bOverwrite;
520cdf0e10cSrcweir         }
getReferenceInputPath()521cdf0e10cSrcweir     public String getReferenceInputPath()
522cdf0e10cSrcweir         {
523cdf0e10cSrcweir             String sReferenceInputPath;
524cdf0e10cSrcweir             sReferenceInputPath = (String)m_aCurrentParams.get(PropertyName.DOC_COMPARATOR_REFERENCE_INPUT_PATH);
525cdf0e10cSrcweir             return sReferenceInputPath;
526cdf0e10cSrcweir         }
527cdf0e10cSrcweir 
528cdf0e10cSrcweir     /**
529cdf0e10cSrcweir      * Helper function to get the buildid of the current used OpenOffice.org
530cdf0e10cSrcweir      * out of the AppExecutionCommand the build ID
531cdf0e10cSrcweir      */
getBuildID()532cdf0e10cSrcweir     public String getBuildID()
533cdf0e10cSrcweir         {
534cdf0e10cSrcweir             String sAPP = (String)m_aCurrentParams.get(util.PropertyName.APP_EXECUTION_COMMAND);
535cdf0e10cSrcweir             // return getBuildID(sAPP);
536cdf0e10cSrcweir //  TODO: here we need the getBuildID(string) method
537cdf0e10cSrcweir             String sBuildID = convwatch.BuildID.getBuildID(sAPP);
538cdf0e10cSrcweir             return sBuildID;
539cdf0e10cSrcweir         }
540cdf0e10cSrcweir 
shouldOfficeStart()541cdf0e10cSrcweir     public boolean shouldOfficeStart()
542cdf0e10cSrcweir         {
543cdf0e10cSrcweir             String sNoOffice = (String)m_aCurrentParams.get( "NoOffice" );
544cdf0e10cSrcweir             if (sNoOffice != null)
545cdf0e10cSrcweir             {
546cdf0e10cSrcweir                 if (sNoOffice.toLowerCase().startsWith("t") || sNoOffice.toLowerCase().startsWith("y"))
547cdf0e10cSrcweir                 {
548cdf0e10cSrcweir                     return false;
549cdf0e10cSrcweir                 }
550cdf0e10cSrcweir             }
551cdf0e10cSrcweir             return true;
552cdf0e10cSrcweir         }
553cdf0e10cSrcweir 
554cdf0e10cSrcweir         // Handle for Reference Build ID, is set in ConvWatch.createPostscriptStartCheck()
555cdf0e10cSrcweir     private String m_sRefBuildID;
556cdf0e10cSrcweir 
setRefBuildID(String _sRef)557cdf0e10cSrcweir     public void setRefBuildID(String _sRef)
558cdf0e10cSrcweir         {
559cdf0e10cSrcweir             m_sRefBuildID = _sRef;
560cdf0e10cSrcweir         }
getRefBuildID()561cdf0e10cSrcweir     public String getRefBuildID()
562cdf0e10cSrcweir         {
563cdf0e10cSrcweir             return m_sRefBuildID;
564cdf0e10cSrcweir         }
565cdf0e10cSrcweir 
disallowStore()566cdf0e10cSrcweir     public void disallowStore()
567cdf0e10cSrcweir         {
568cdf0e10cSrcweir             m_bStoreFile = false;
569cdf0e10cSrcweir         }
allowStore()570cdf0e10cSrcweir     public void allowStore()
571cdf0e10cSrcweir         {
572cdf0e10cSrcweir             m_bStoreFile = true;
573cdf0e10cSrcweir         }
isStoreAllowed()574cdf0e10cSrcweir     public boolean isStoreAllowed()
575cdf0e10cSrcweir         {
576cdf0e10cSrcweir             return m_bStoreFile;
577cdf0e10cSrcweir         }
createDefaultReference()578cdf0e10cSrcweir     public boolean createDefaultReference()
579cdf0e10cSrcweir         {
580cdf0e10cSrcweir             return m_bCreateDefaultReference;
581cdf0e10cSrcweir         }
582cdf0e10cSrcweir 
583cdf0e10cSrcweir 
584cdf0e10cSrcweir     // get/set for FilterName
585cdf0e10cSrcweir     // get the right Filtername (internal Name) from
586cdf0e10cSrcweir     // http://framework.openoffice.org/files/documents/25/897/filter_description.html
587cdf0e10cSrcweir 
588cdf0e10cSrcweir     String m_sImportFilterName = "";
589cdf0e10cSrcweir     String m_sExportFilterName = "";
setImportFilterName(String _sImportFilterName)590cdf0e10cSrcweir     public void setImportFilterName(String _sImportFilterName)
591cdf0e10cSrcweir         {
592cdf0e10cSrcweir             m_sImportFilterName = _sImportFilterName;
593cdf0e10cSrcweir         }
getImportFilterName()594cdf0e10cSrcweir     public String getImportFilterName()
595cdf0e10cSrcweir         {
596cdf0e10cSrcweir             return m_sImportFilterName;
597cdf0e10cSrcweir         }
setExportFilterName(String _sExportFilterName)598cdf0e10cSrcweir     public void setExportFilterName(String _sExportFilterName)
599cdf0e10cSrcweir         {
600cdf0e10cSrcweir             m_sExportFilterName = _sExportFilterName;
601cdf0e10cSrcweir         }
getExportFilterName()602cdf0e10cSrcweir     public String getExportFilterName()
603cdf0e10cSrcweir         {
604cdf0e10cSrcweir             return m_sExportFilterName;
605cdf0e10cSrcweir         }
606cdf0e10cSrcweir 
607cdf0e10cSrcweir     String m_sOfficeProgram = "";
setOfficeProgram(String _sName)608cdf0e10cSrcweir     public void setOfficeProgram(String _sName)
609cdf0e10cSrcweir         {
610cdf0e10cSrcweir             m_sOfficeProgram = _sName;
611cdf0e10cSrcweir         }
getOfficeProgram()612cdf0e10cSrcweir     public String getOfficeProgram()
613cdf0e10cSrcweir         {
614cdf0e10cSrcweir             return m_sOfficeProgram;
615cdf0e10cSrcweir         }
616cdf0e10cSrcweir 
restartOffice()617cdf0e10cSrcweir     public boolean restartOffice()
618cdf0e10cSrcweir         {
619cdf0e10cSrcweir             if (m_bResuseOffice == false)
620cdf0e10cSrcweir             {
621cdf0e10cSrcweir                 return true;
622cdf0e10cSrcweir             }
623cdf0e10cSrcweir             return false;
624cdf0e10cSrcweir         }
625cdf0e10cSrcweir 
626cdf0e10cSrcweir     String m_sHTMLOutputPrefix = "";
getHTMLOutputPrefix()627cdf0e10cSrcweir     public String getHTMLOutputPrefix()
628cdf0e10cSrcweir         {
629cdf0e10cSrcweir             return m_sHTMLOutputPrefix;
630cdf0e10cSrcweir         }
631cdf0e10cSrcweir 
632cdf0e10cSrcweir     TriState m_tWithBorderMove = TriState.UNSET;
633cdf0e10cSrcweir     // public TriState isBorderMove()
634cdf0e10cSrcweir     //     {
635cdf0e10cSrcweir     //         return m_tWithBorderMove;
636cdf0e10cSrcweir     //     }
getBorderMove()637cdf0e10cSrcweir     public TriState getBorderMove()
638cdf0e10cSrcweir         {
639cdf0e10cSrcweir             return m_tWithBorderMove;
640cdf0e10cSrcweir         }
setBorderMove(TriState _tBorderMove)641cdf0e10cSrcweir     public void setBorderMove(TriState _tBorderMove)
642cdf0e10cSrcweir         {
643cdf0e10cSrcweir             m_tWithBorderMove = _tBorderMove;
644cdf0e10cSrcweir         }
645cdf0e10cSrcweir 
646cdf0e10cSrcweir     String m_sDocumentType = "";
setDocumentType(String _sName)647cdf0e10cSrcweir     public void setDocumentType(String _sName)
648cdf0e10cSrcweir         {
649cdf0e10cSrcweir             m_sDocumentType = _sName;
650cdf0e10cSrcweir         }
getDocumentType()651cdf0e10cSrcweir     public String getDocumentType()
652cdf0e10cSrcweir         {
653cdf0e10cSrcweir             return m_sDocumentType;
654cdf0e10cSrcweir         }
655cdf0e10cSrcweir 
656cdf0e10cSrcweir     /*
657cdf0e10cSrcweir       helper class for performance analyser features
658cdf0e10cSrcweir      */
659cdf0e10cSrcweir     PerformanceContainer m_aPerformanceContainer = null;
getPerformance()660cdf0e10cSrcweir     public PerformanceContainer getPerformance()
661cdf0e10cSrcweir         {
662cdf0e10cSrcweir             if (m_aPerformanceContainer == null)
663cdf0e10cSrcweir             {
664cdf0e10cSrcweir                 m_aPerformanceContainer = new PerformanceContainer();
665cdf0e10cSrcweir             }
666cdf0e10cSrcweir             return m_aPerformanceContainer;
667cdf0e10cSrcweir         }
668cdf0e10cSrcweir 
669cdf0e10cSrcweir     private String m_aInputFile;
setInputFile(String _sInputFile)670cdf0e10cSrcweir     public void setInputFile(String _sInputFile)
671cdf0e10cSrcweir         {
672cdf0e10cSrcweir             m_aInputFile = _sInputFile;
673cdf0e10cSrcweir         }
getInputFile()674cdf0e10cSrcweir     public String getInputFile()
675cdf0e10cSrcweir         {
676cdf0e10cSrcweir             return m_aInputFile;
677cdf0e10cSrcweir         }
678cdf0e10cSrcweir 
679cdf0e10cSrcweir     private String m_sDBInfoString;
getDBInfoString()680cdf0e10cSrcweir     public String getDBInfoString()
681cdf0e10cSrcweir         {
682cdf0e10cSrcweir             if (m_sDBInfoString != null)
683cdf0e10cSrcweir             {
684cdf0e10cSrcweir                 if (m_sDBInfoString.length() == 0)
685cdf0e10cSrcweir                 {
686cdf0e10cSrcweir                     return null;
687cdf0e10cSrcweir                 }
688cdf0e10cSrcweir             }
689cdf0e10cSrcweir 
690cdf0e10cSrcweir             return m_sDBInfoString;
691cdf0e10cSrcweir         }
692cdf0e10cSrcweir 
cancelRequest()693cdf0e10cSrcweir     public boolean cancelRequest()
694cdf0e10cSrcweir         {
695cdf0e10cSrcweir             File aCancelFile = null;
696cdf0e10cSrcweir             String fs;
697cdf0e10cSrcweir             fs = System.getProperty("file.separator");
698cdf0e10cSrcweir             String sTempPath = (String)m_aCurrentParams.get( PropertyName.TEMPPATH );
699cdf0e10cSrcweir             if (sTempPath != null)
700cdf0e10cSrcweir             {
701cdf0e10cSrcweir                 String sGDC_Dir = sTempPath;
702cdf0e10cSrcweir 
703cdf0e10cSrcweir                 if (m_sDistinct.length() > 0)
704cdf0e10cSrcweir                 {
705cdf0e10cSrcweir                     sGDC_Dir = sGDC_Dir + fs + m_sDistinct;
706cdf0e10cSrcweir                 }
707cdf0e10cSrcweir 
708cdf0e10cSrcweir                 String sCancelFile = sGDC_Dir + fs + "cancel_compare.txt";
709cdf0e10cSrcweir                 aCancelFile = new File(sCancelFile);
710cdf0e10cSrcweir 
711cdf0e10cSrcweir                 if (aCancelFile.exists())
712cdf0e10cSrcweir                 {
713cdf0e10cSrcweir                     GlobalLogWriter.get().println("ATTENTION: Found file: '" + sCancelFile + "'.");
714cdf0e10cSrcweir                     GlobalLogWriter.get().println("User has canceled the program flow.");
715cdf0e10cSrcweir                     return true;
716cdf0e10cSrcweir                 }
717cdf0e10cSrcweir             }
718cdf0e10cSrcweir             return false;
719cdf0e10cSrcweir         }
720cdf0e10cSrcweir 
721cdf0e10cSrcweir }
722cdf0e10cSrcweir 
723cdf0e10cSrcweir 
724cdf0e10cSrcweir /*
725cdf0e10cSrcweir public class MSGraphicalTestArguments extends GraphicalTestArguments
726cdf0e10cSrcweir {
727cdf0e10cSrcweir     MSGraphicalTestArguments()
728cdf0e10cSrcweir         {
729cdf0e10cSrcweir             setReferenceType("msoffice");
730cdf0e10cSrcweir         }
731cdf0e10cSrcweir }
732cdf0e10cSrcweir 
733cdf0e10cSrcweir public class OOoGraphicalTestArguments extends GraphicalTestArguments
734cdf0e10cSrcweir {
735cdf0e10cSrcweir     OOoGraphicalTestArguments(XMultiServiceFactory _aFactory)
736cdf0e10cSrcweir         {
737cdf0e10cSrcweir             setMultiServiceFactory(_aFactory);
738cdf0e10cSrcweir         }
739cdf0e10cSrcweir }
740cdf0e10cSrcweir */
741