1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_framework.hxx"
26
27 //_________________________________________________________________________________________________________________
28 // my own includes
29 //_________________________________________________________________________________________________________________
30 #include <classes/servicemanager.hxx>
31 #include <classes/filtercache.hxx>
32 #include <macros/generic.hxx>
33 #include <macros/debug.hxx>
34 #include <services.h>
35 #include <filterflags.h>
36 #include <queries.h>
37
38 //_________________________________________________________________________________________________________________
39 // interface includes
40 //_________________________________________________________________________________________________________________
41 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
42 #include <com/sun/star/container/XNameContainer.hpp>
43 #include <com/sun/star/beans/PropertyValue.hpp>
44
45 //_________________________________________________________________________________________________________________
46 // other includes
47 //_________________________________________________________________________________________________________________
48 #include <comphelper/processfactory.hxx>
49 #include <vos/process.hxx>
50 #include <rtl/ustring.hxx>
51 #include <rtl/ustrbuf.hxx>
52
53 #ifndef __SGI_STL_HASH_MAP
54 #include <hash_map>
55 #endif
56
57 #include <vcl/event.hxx>
58 #include <vcl/svapp.hxx>
59 #include <vcl/wrkwin.hxx>
60 #include <vcl/msgbox.hxx>
61 #include <stdio.h>
62
63 //_________________________________________________________________________________________________________________
64 // const
65 //_________________________________________________________________________________________________________________
66
67 #define RDBFILE DECLARE_ASCII("typecfg.rdb" )
68 #define ARGUMENT_DIRNAME DECLARE_ASCII("-dir=" ) // argument for output directory
69 #define ARGUMENT_VERSION DECLARE_ASCII("-ver=" ) // argument for file version to read [1|2|3]
70 #define ARGUMENTLENGTH 5 // same length for all arguemnts make it easier to detect it :-)
71 #define ARGUMENTFOUND 0 // OUString::compareTo returns 0 if searched string match given one
72
73 #define MENU_HTML "menu.html"
74 #define BLANK_HTML "blank.html"
75
76 #define FRAMESET_START_HTML "index.html"
77 #define FRAMESET_TYPES_HTML "fs_types.html"
78 #define FRAMESET_FILTERS_HTML "fs_filters.html"
79 #define FRAMESET_MODULFILTERS_HTML "fs_modulfilters.html"
80 #define FRAMESET_DETECTORS_HTML "fs_detectors.html"
81 #define FRAMESET_LOADERS_HTML "fs_loaders.html"
82 #define FRAMESET_INVALIDFILTERS_HTML "fs_invalidfilters.html"
83 #define FRAMESET_INVALIDDETECTORS_HTML "fs_invaliddetectors.html"
84 #define FRAMESET_INVALIDLOADERS_HTML "fs_invalidloaders.html"
85 #define FRAMESET_DOUBLEFILTERUINAMES_HTML "fs_doublefilteruinames.html"
86
87 #define ALLTYPES_HTML "alltypes.html"
88 #define ALLFILTERS_HTML "allfilters.html"
89 #define ALLDETECTORS_HTML "alldetectors.html"
90 #define ALLLOADERS_HTML "allloaders.html"
91
92 #define TYPEPROPERTIES_HTML "typeproperties.html"
93 #define FILTERPROPERTIES_HTML "filterproperties.html"
94 #define DETECTORPROPERTIES_HTML "detectorproperties.html"
95 #define LOADERPROPERTIES_HTML "loaderproperties.html"
96
97 #define INVALIDFILTERS_HTML "invalidfilters.html"
98 #define INVALIDDETECTORS_HTML "invaliddetectors.html"
99 #define INVALIDLOADERS_HTML "invalidloaders.html"
100
101 #define FILTERFLAGS_HTML "filterflags.html"
102 #define MODULFILTERS_HTML "modulfilters.html"
103 #define DOUBLEFILTERUINAMES_HTML "doublefilteruinames.html"
104
105 #define TARGET_MENU "menu"
106 #define TARGET_VIEW "view"
107 #define TARGET_LIST "list"
108 #define TARGET_PROPERTIES "properties"
109
110 //_________________________________________________________________________________________________________________
111 // namespace
112 //_________________________________________________________________________________________________________________
113
114 using namespace ::std ;
115 using namespace ::vos ;
116 using namespace ::rtl ;
117 using namespace ::framework ;
118 using namespace ::comphelper ;
119 using namespace ::com::sun::star::uno ;
120 using namespace ::com::sun::star::lang ;
121 using namespace ::com::sun::star::container ;
122 using namespace ::com::sun::star::beans ;
123
124 //_________________________________________________________________________________________________________________
125 // defines
126 //_________________________________________________________________________________________________________________
127
128 //_________________________________________________________________________________________________________________
129 // declarations
130 //_________________________________________________________________________________________________________________
131
132 /*-***************************************************************************************************************/
133 struct AppMember
134 {
135 Reference< XMultiServiceFactory > xServiceManager ;
136 FilterCache* pCache ;
137 ::rtl::OUString sDirectory ;
138 sal_Int32 nVersion ;
139 };
140
141 /*-***************************************************************************************************************/
142 class CFGView : public Application
143 {
144 //*************************************************************************************************************
145 public:
146 void Main();
147
148 //*************************************************************************************************************
149 private:
150 void impl_parseCommandLine ( AppMember& rMember );
151 void impl_generateHTMLView ();
152
153 //*************************************************************************************************************
154 private:
155 void impl_printCopyright ();
156 void impl_printSyntax ();
157 void impl_generateTypeListHTML ();
158 void impl_generateFilterListHTML ();
159 void impl_generateFilterModulListHTML ();
160 void impl_generateDetectorListHTML ();
161 void impl_generateLoaderListHTML ();
162 void impl_generateInvalidFiltersHTML ();
163 void impl_generateInvalidDetectorsHTML ();
164 void impl_generateInvalidLoadersHTML ();
165 void impl_generateFilterFlagsHTML ();
166 void impl_generateDefaultFiltersHTML ();
167 void impl_generateDoubleFilterUINamesHTML ();
168 void impl_writeFile ( const ::rtl::OString& sFile, const ::rtl::OString& sContent );
169
170 //*************************************************************************************************************
171 private:
172 AppMember m_aData ;
173
174 }; // class CFGView
175
176 //_________________________________________________________________________________________________________________
177 // global variables
178 //_________________________________________________________________________________________________________________
179
180 CFGView gApplication;
181
182 //*****************************************************************************************************************
Main()183 void CFGView::Main()
184 {
185 // Init global servicemanager and set it.
186 // It's neccessary for other services ... e.g. configuration.
187 ServiceManager aManager;
188 ::comphelper::setProcessServiceFactory( aManager.getGlobalUNOServiceManager() );
189
190 // Get optional commands from command line.
191 impl_parseCommandLine( m_aData );
192
193 // Read configuration and fill cache ... use given file version (see parameter "-ver=" too)
194 m_aData.pCache = new FilterCache( m_aData.nVersion );
195
196 // Generate view as html
197 impl_generateHTMLView();
198
199 // Free all used memory
200 delete m_aData.pCache;
201 m_aData.pCache = NULL;
202 }
203
204 /*-************************************************************************************************************//**
205 @short print some info messages to stderr
206 @descr We must show an copyright or help for using this file.
207 This two methods do that.
208
209 @seealso -
210
211 @param -
212 @return -
213
214 @onerror -
215 *//*-*************************************************************************************************************/
impl_printCopyright()216 void CFGView::impl_printCopyright()
217 {
218 fprintf( stderr, "\n(c) Copyright by Sun microsystems, 2001\n" );
219 }
220
221 //*****************************************************************************************************************
impl_printSyntax()222 void CFGView::impl_printSyntax()
223 {
224 fprintf( stderr, "\nusing: xml2xcd -fi=<outputfile> -vi=<version input> -vo=<version output> [-wr=<true|false>]\n\n" );
225 fprintf( stderr, "\tneccessary parameters:\n" );
226 fprintf( stderr, "\t\t-fi=<outputfile>\tname of output file in system notation\n" );
227 fprintf( stderr, "\t\t-vi=<version input>\tformat version of input xml file\n" );
228 fprintf( stderr, "\t\t-vo=<version output>\tformat version of generated xcd file\n\n" );
229 fprintf( stderr, "\toptional parameters:\n" );
230 fprintf( stderr, "\t\t-wr=<true|false>\tconfig items should be writeable ... [true|false]\n" );
231 }
232
233 /*-************************************************************************************************************//**
234 @short analyze command line arguments
235 @descr Created binary accept different command line arguments. These parameters
236 regulate creation of this html view. Follow arguments are supported:
237 "-dir=<directory for output files>"
238 "-ver=<version of input file>[1|2|3]"
239
240 @seealso -
241
242 @param "rMember", reference to struct of global application member to fill arguments in it
243 @return right filled member struct or unchanged struct if an error occure!
244
245 @onerror We do nothing - or warn programmer!
246 *//*-*************************************************************************************************************/
impl_parseCommandLine(AppMember & rMember)247 void CFGView::impl_parseCommandLine( AppMember& rMember )
248 {
249 ::vos::OStartupInfo aInfo ;
250 ::rtl::OUString sArgument ;
251 sal_Int32 nArgument = 0 ;
252 sal_Int32 nCount = aInfo.getCommandArgCount();
253 sal_Int32 nMinCount = 0 ;
254
255 while( nArgument<nCount )
256 {
257 aInfo.getCommandArg( nArgument, sArgument );
258
259 //_____________________________________________________________________________________________________
260 // look for "-dir="
261 if( sArgument.compareTo( ARGUMENT_DIRNAME, ARGUMENTLENGTH ) == ARGUMENTFOUND )
262 {
263 rMember.sDirectory = sArgument.copy( ARGUMENTLENGTH, sArgument.getLength()-ARGUMENTLENGTH );
264 ++nMinCount;
265 }
266 else
267 //_____________________________________________________________________________________________________
268 // look for "-ver="
269 if( sArgument.compareTo( ARGUMENT_VERSION, ARGUMENTLENGTH ) == ARGUMENTFOUND )
270 {
271 ::rtl::OUString sVersion = sArgument.copy( ARGUMENTLENGTH, sArgument.getLength()-ARGUMENTLENGTH );
272 rMember.nVersion = sVersion.toInt32();
273 ++nMinCount;
274 }
275
276 ++nArgument;
277 }
278
279 // Show help if user don't call us right!
280 if( nMinCount != 2 )
281 {
282 impl_printSyntax();
283 exit(-1);
284 }
285 }
286
287 //*****************************************************************************************************************
impl_generateHTMLView()288 void CFGView::impl_generateHTMLView()
289 {
290 //-------------------------------------------------------------------------------------------------------------
291 // generate start frameset
292 OUStringBuffer sStartFramesetHTML( 10000 );
293
294 sStartFramesetHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tTypeDetection CFG\n\t\t</title>\n\t</head>\n" ); // open html
295 sStartFramesetHTML.appendAscii( "\t\t<frameset rows=\"25%,75%\">\n" ); // open frameset
296 sStartFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "menu"
297 sStartFramesetHTML.appendAscii( TARGET_MENU );
298 sStartFramesetHTML.appendAscii( "\" src=\"" );
299 sStartFramesetHTML.appendAscii( MENU_HTML );
300 sStartFramesetHTML.appendAscii( "\" title=\"List\">\n" );
301 sStartFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "view"
302 sStartFramesetHTML.appendAscii( TARGET_VIEW );
303 sStartFramesetHTML.appendAscii( "\" src=\"" );
304 sStartFramesetHTML.appendAscii( BLANK_HTML );
305 sStartFramesetHTML.appendAscii( "\" title=\"Properties\">\n" );
306 sStartFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset
307 sStartFramesetHTML.appendAscii( "</html>\n" ); // close html
308
309 impl_writeFile( FRAMESET_START_HTML, U2B(sStartFramesetHTML.makeStringAndClear()) );
310
311 //-------------------------------------------------------------------------------------------------------------
312 // generate blank html
313 OUStringBuffer sBlankHTML( 10000 );
314
315 sBlankHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tBlank\n\t\t</title>\n\t</head>\n\t<body>\n\t</body>Please select ...\n</html>\n" ); // open html
316
317 impl_writeFile( BLANK_HTML, U2B(sBlankHTML.makeStringAndClear()) );
318
319 //-------------------------------------------------------------------------------------------------------------
320 // generate menu
321 OUStringBuffer sMenuHTML( 10000 );
322
323 sMenuHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tMenu\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
324 sMenuHTML.appendAscii( "\t\t<ul>\n" ); // open list
325
326 sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "All Types"
327 sMenuHTML.appendAscii( FRAMESET_TYPES_HTML );
328 sMenuHTML.appendAscii( "\" target=\"" );
329 sMenuHTML.appendAscii( TARGET_VIEW );
330 sMenuHTML.appendAscii( "\">All Types</a></li>\n" );
331
332 sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "All Filters"
333 sMenuHTML.appendAscii( FRAMESET_FILTERS_HTML );
334 sMenuHTML.appendAscii( "\" target=\"" );
335 sMenuHTML.appendAscii( TARGET_VIEW );
336 sMenuHTML.appendAscii( "\">All Filters</a></li>\n" );
337
338 sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "All Filters sorted by modules"
339 sMenuHTML.appendAscii( FRAMESET_MODULFILTERS_HTML );
340 sMenuHTML.appendAscii( "\" target=\"" );
341 sMenuHTML.appendAscii( TARGET_VIEW );
342 sMenuHTML.appendAscii( "\">Filters by Moduls</a></li>\n" );
343
344 sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "All Detectors"
345 sMenuHTML.appendAscii( FRAMESET_DETECTORS_HTML );
346 sMenuHTML.appendAscii( "\" target=\"" );
347 sMenuHTML.appendAscii( TARGET_VIEW );
348 sMenuHTML.appendAscii( "\">All Detector Services</a></li>\n" );
349
350 sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "All Loaders"
351 sMenuHTML.appendAscii( FRAMESET_LOADERS_HTML );
352 sMenuHTML.appendAscii( "\" target=\"" );
353 sMenuHTML.appendAscii( TARGET_VIEW );
354 sMenuHTML.appendAscii( "\">All Loader Services</a></li>\n" );
355
356 sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "Invalid Filter"
357 sMenuHTML.appendAscii( FRAMESET_INVALIDFILTERS_HTML );
358 sMenuHTML.appendAscii( "\" target=\"" );
359 sMenuHTML.appendAscii( TARGET_VIEW );
360 sMenuHTML.appendAscii( "\">Invalid Filter</a></li>\n" );
361
362 sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "Invalid Detect Services"
363 sMenuHTML.appendAscii( FRAMESET_INVALIDDETECTORS_HTML );
364 sMenuHTML.appendAscii( "\" target=\"" );
365 sMenuHTML.appendAscii( TARGET_VIEW );
366 sMenuHTML.appendAscii( "\">Invalid Detect Services</a></li>\n" );
367
368 sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "Double Filter UINames"
369 sMenuHTML.appendAscii( FRAMESET_DOUBLEFILTERUINAMES_HTML );
370 sMenuHTML.appendAscii( "\" target=\"" );
371 sMenuHTML.appendAscii( TARGET_VIEW );
372 sMenuHTML.appendAscii( "\">Double Filter UINames</a></li>\n" );
373
374 sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "Show Filter Flags"
375 sMenuHTML.appendAscii( FILTERFLAGS_HTML );
376 sMenuHTML.appendAscii( "\" target=\"" );
377 sMenuHTML.appendAscii( TARGET_VIEW );
378 sMenuHTML.appendAscii( "\">Show Filter Flags</a></li>\n" );
379
380 sMenuHTML.appendAscii( "\t\t</ul>\n" ); // close list
381 sMenuHTML.appendAscii( "\t</body>\n</html>\n" ); // close html
382
383 impl_writeFile( MENU_HTML, U2B(sMenuHTML.makeStringAndClear()) );
384
385 impl_generateTypeListHTML ();
386 impl_generateFilterListHTML ();
387 impl_generateFilterModulListHTML ();
388 impl_generateDetectorListHTML ();
389 impl_generateLoaderListHTML ();
390 impl_generateInvalidFiltersHTML ();
391 impl_generateInvalidDetectorsHTML ();
392 impl_generateInvalidLoadersHTML ();
393 impl_generateFilterFlagsHTML ();
394 impl_generateDoubleFilterUINamesHTML();
395 }
396
397 //*****************************************************************************************************************
impl_generateTypeListHTML()398 void CFGView::impl_generateTypeListHTML()
399 {
400 //-------------------------------------------------------------------------------------------------------------
401 // generate frameset for types
402 OUStringBuffer sTypesFramesetHTML( 10000 );
403
404 sTypesFramesetHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Types\n\t\t</title>\n\t</head>\n" ); // open html
405 sTypesFramesetHTML.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols
406 sTypesFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list"
407 sTypesFramesetHTML.appendAscii( TARGET_LIST );
408 sTypesFramesetHTML.appendAscii( "\" src=\"" );
409 sTypesFramesetHTML.appendAscii( ALLTYPES_HTML );
410 sTypesFramesetHTML.appendAscii( "\" title=\"List\">\n" );
411 sTypesFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties"
412 sTypesFramesetHTML.appendAscii( TARGET_PROPERTIES );
413 sTypesFramesetHTML.appendAscii( "\" src=\"" );
414 sTypesFramesetHTML.appendAscii( TYPEPROPERTIES_HTML );
415 sTypesFramesetHTML.appendAscii( "\" title=\"Properties\">\n" );
416 sTypesFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset cols
417 sTypesFramesetHTML.appendAscii( "</html>\n" ); // close html
418
419 impl_writeFile( FRAMESET_TYPES_HTML, U2B(sTypesFramesetHTML.makeStringAndClear()) );
420
421 //-------------------------------------------------------------------------------------------------------------
422 // generate type list (names and links only!)
423 // use same loop to generate type property list!
424 OUStringBuffer sAllTypesHTML( 10000 );
425 OUStringBuffer sTypePropHTML( 10000 );
426
427 sAllTypesHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tAll Types\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
428 sAllTypesHTML.appendAscii( "\t\t<table border=0><tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Type</strong></td></tr>\n" ); // open table
429
430 sTypePropHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tTypeProperties\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
431
432 css::uno::Sequence< ::rtl::OUString > lNames = m_aData.pCache->getAllTypeNames();
433 sal_Int32 nCount = lNames.getLength() ;
434 for( sal_Int32 nItem=0; nItem<nCount; ++nItem )
435 {
436 ::rtl::OUString sName = lNames[nItem] ;
437 FileType aItem = m_aData.pCache->getType( sName );
438
439 // write entry in type list table
440 sAllTypesHTML.appendAscii ( "\t\t\t<tr>\n" ); // open row
441 sAllTypesHTML.appendAscii ( "\t\t\t\t<td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">" ); // open column "nr"
442 sAllTypesHTML.append ( OUString::valueOf( nItem ) ); // write nr
443 sAllTypesHTML.appendAscii ( "</td>\n" ); // close column "nr"
444 sAllTypesHTML.appendAscii ( "\t\t\t\t<td>" ); // open column "name"
445 sAllTypesHTML.appendAscii ( "<a href=\"" ); // open href="typeproperties.html#<typename>"
446 sAllTypesHTML.appendAscii ( TYPEPROPERTIES_HTML );
447 sAllTypesHTML.appendAscii ( "#" );
448 sAllTypesHTML.append ( aItem.sName );
449 sAllTypesHTML.appendAscii ( "\" target=\"" );
450 sAllTypesHTML.appendAscii ( TARGET_PROPERTIES );
451 sAllTypesHTML.appendAscii ( "\">" );
452 sAllTypesHTML.append ( aItem.sName ); // write name
453 sAllTypesHTML.appendAscii ( "</a>" ); // close href
454 sAllTypesHTML.appendAscii ( "</td>\n" ); // close column "name"
455 sAllTypesHTML.appendAscii ( "\t\t\t</tr>\n" ); // close row
456
457 // write entry in type property table
458 sTypePropHTML.appendAscii ( "\t\t<a name=\"" ); // set target="#<typename>" to follow table
459 sTypePropHTML.append ( aItem.sName );
460 sTypePropHTML.appendAscii ( "\"></a>" );
461 sTypePropHTML.appendAscii ( "\t\t<table border=0>\n" ); // open table
462 sTypePropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Nr.</td><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\"> " ); // generate row "Nr <value>"
463 sTypePropHTML.append ( OUString::valueOf( nItem ) );
464 sTypePropHTML.appendAscii ( "</td></tr>\n" );
465 sTypePropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Name</td><td valign=\"top\" align=\"top\"> " ); // generate row "Name <value>"
466 sTypePropHTML.append ( aItem.sName );
467 sTypePropHTML.appendAscii ( "</td></tr>\n" );
468 sTypePropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">UIName</td><td valign=\"top\" align=\"top\">" ); // generate row "UIName <value>"
469 for( ConstStringHashIterator pUIName=aItem.lUINames.begin() ;
470 pUIName!=aItem.lUINames.end() ;
471 ++pUIName )
472 {
473 sTypePropHTML.appendAscii ( " [" );
474 sTypePropHTML.append ( pUIName->first );
475 sTypePropHTML.appendAscii ( "] \"" );
476 sTypePropHTML.append ( pUIName->second );
477 sTypePropHTML.appendAscii ( "\"<br>" );
478 }
479 sTypePropHTML.appendAscii ( "</td></tr>\n" );
480 sTypePropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">MediaType</td><td valign=\"top\" align=\"top\"> " ); // generate row "MediaType <value>"
481 sTypePropHTML.append ( aItem.sMediaType );
482 sTypePropHTML.appendAscii ( "</td></tr>\n" );
483 sTypePropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">ClipboardFormat</td><td valign=\"top\" align=\"top\"> " ); // generate row "ClipboardFormat <value>"
484 sTypePropHTML.append ( aItem.sClipboardFormat );
485 sTypePropHTML.appendAscii ( "</td></tr>\n" );
486 sTypePropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">URLPattern</td><td valign=\"top\" align=\"top\">" ); // generate row "URLPattern <value>"
487 for( ConstStringListIterator pPattern=aItem.lURLPattern.begin() ;
488 pPattern!=aItem.lURLPattern.end() ;
489 ++pPattern )
490 {
491 sTypePropHTML.appendAscii ( " \"");
492 sTypePropHTML.append ( *pPattern );
493 sTypePropHTML.appendAscii ( "\"<br>" );
494 }
495 sTypePropHTML.appendAscii ( "</td></tr>\n" );
496 sTypePropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Extensions</td><td valign=\"top\" align=\"top\">" ); // generate row "Extensions <value>"
497 for( ConstStringListIterator pExtension=aItem.lExtensions.begin() ;
498 pExtension!=aItem.lExtensions.end() ;
499 ++pExtension )
500 {
501 sTypePropHTML.appendAscii ( " \"" );
502 sTypePropHTML.append ( *pExtension );
503 sTypePropHTML.appendAscii ( "\"<br>" );
504 }
505 sTypePropHTML.appendAscii ( "</td></tr>\n" );
506 sTypePropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">DocumentIconID</td><td valign=\"top\" align=\"top\"> " ); // generate row "DocumentIconID <value>"
507 sTypePropHTML.append ( OUString::valueOf( aItem.nDocumentIconID ) );
508 sTypePropHTML.appendAscii ( "</td></tr>\n" );
509 sTypePropHTML.appendAscii ( "\t\t</table>\n" ); // close table
510 sTypePropHTML.appendAscii ( "\t\t<p>\n" ); // add space between this and following table
511 }
512
513 sAllTypesHTML.appendAscii( "</table>\n" ); // close table
514 sAllTypesHTML.appendAscii( "</body>\n</html>\n" ); // close html
515
516 sTypePropHTML.appendAscii( "</body>\n</html>\n" ); // close html
517
518 impl_writeFile( ALLTYPES_HTML , U2B(sAllTypesHTML.makeStringAndClear()) );
519 impl_writeFile( TYPEPROPERTIES_HTML , U2B(sTypePropHTML.makeStringAndClear()) );
520 }
521
522 //*****************************************************************************************************************
impl_generateFilterListHTML()523 void CFGView::impl_generateFilterListHTML()
524 {
525 //-------------------------------------------------------------------------------------------------------------
526 // generate frameset for types
527 OUStringBuffer sFiltersFramesetHTML( 10000 );
528
529 sFiltersFramesetHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Filters\n\t\t</title>\n\t</head>\n" ); // open html
530 sFiltersFramesetHTML.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols
531 sFiltersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list"
532 sFiltersFramesetHTML.appendAscii( TARGET_LIST );
533 sFiltersFramesetHTML.appendAscii( "\" src=\"" );
534 sFiltersFramesetHTML.appendAscii( ALLFILTERS_HTML );
535 sFiltersFramesetHTML.appendAscii( "\" title=\"List\">\n" );
536 sFiltersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties"
537 sFiltersFramesetHTML.appendAscii( TARGET_PROPERTIES );
538 sFiltersFramesetHTML.appendAscii( "\" src=\"" );
539 sFiltersFramesetHTML.appendAscii( FILTERPROPERTIES_HTML );
540 sFiltersFramesetHTML.appendAscii( "\" title=\"Properties\">\n" );
541 sFiltersFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset cols
542 sFiltersFramesetHTML.appendAscii( "</html>\n" ); // close html
543
544 impl_writeFile( FRAMESET_FILTERS_HTML, U2B(sFiltersFramesetHTML.makeStringAndClear()) );
545
546 //-------------------------------------------------------------------------------------------------------------
547 // generate filter list (names and links only!)
548 // use same loop to generate filter property list!
549 OUStringBuffer sAllFiltersHTML( 10000 );
550 OUStringBuffer sFilterPropHTML( 10000 );
551
552 sAllFiltersHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tAll Filters\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
553 sAllFiltersHTML.appendAscii( "\t\t<table border=0><tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Filter</strong></td></tr>\n" ); // open table
554
555 sFilterPropHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFilterProperties\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
556 /*
557 ::framework::StringList lFilterNames;
558 for( ConstFilterIterator pFilter=m_pData->aCFGView.begin(); pFilter!=m_pData->aCFGView.end(); ++pFilter )
559 {
560 lFilterNames.push_back( pFilter->first );
561 }
562 ::std::stable_sort( lFilterNames.begin(), lFilterNames.end() );
563 css::uno::Sequence< ::rtl::OUString > lNames;
564 ::framework::DataContainer::convertStringVectorToSequence( lFilterNames, lNames );
565 */
566 css::uno::Sequence< ::rtl::OUString > lNames = m_aData.pCache->getAllFilterNames() ;
567 sal_Int32 nFilterCounter = 0 ;
568 sal_Int32 nCount = lNames.getLength() ;
569 Filter aFilter ;
570 for( nFilterCounter=0; nFilterCounter<nCount; ++nFilterCounter )
571 {
572 aFilter = m_aData.pCache->getFilter( lNames[nFilterCounter] );
573
574 // write entry in filter list table
575 sAllFiltersHTML.appendAscii ( "\t\t\t<tr>\n" ); // open row
576 sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">" ); // open column "nr"
577 sAllFiltersHTML.append ( OUString::valueOf( nFilterCounter ) ); // write nr
578 sAllFiltersHTML.appendAscii ( "</td>\n" ); // close column "nr"
579 sAllFiltersHTML.appendAscii ( "\t\t\t\t<td>" ); // open column "name"
580 sAllFiltersHTML.appendAscii ( "<a href=\"" ); // open href="filterproperties.html#<filtername>"
581 sAllFiltersHTML.appendAscii ( FILTERPROPERTIES_HTML );
582 sAllFiltersHTML.appendAscii ( "#" );
583 sAllFiltersHTML.append ( aFilter.sName );
584 sAllFiltersHTML.appendAscii ( "\" target=\"" );
585 sAllFiltersHTML.appendAscii ( TARGET_PROPERTIES );
586 sAllFiltersHTML.appendAscii ( "\">" );
587 sAllFiltersHTML.append ( aFilter.sName ); // write name
588 sAllFiltersHTML.appendAscii ( "</a>" ); // close href
589 sAllFiltersHTML.appendAscii ( "</td>\n" ); // close column "name"
590 sAllFiltersHTML.appendAscii ( "\t\t\t</tr>\n" ); // close row
591
592 // write entry in filter property table
593 sFilterPropHTML.appendAscii ( "\t\t<a name=\"" ); // set target="#<typename>" to follow table
594 sFilterPropHTML.append ( aFilter.sName );
595 sFilterPropHTML.appendAscii ( "\"></a>" );
596 sFilterPropHTML.appendAscii ( "\t\t<table border=0>\n" ); // open table
597 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Nr.</td><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\"> "); // generate row "Nr <value>"
598 sFilterPropHTML.append ( OUString::valueOf( nFilterCounter ) );
599 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
600 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Name</td><td valign=\"top\" align=\"top\"> " ); // generate row "Name <value>"
601 sFilterPropHTML.append ( aFilter.sName );
602 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
603 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Order</td><td valign=\"top\" align=\"top\"> \"" ); // generate row "Order <value>"
604 sFilterPropHTML.append ( aFilter.nOrder );
605 sFilterPropHTML.appendAscii ( "\"</td></tr>\n" );
606 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Type</td><td valign=\"top\" align=\"top\"> \"" ); // generate row "Type <value>"
607 sFilterPropHTML.append ( aFilter.sType );
608 sFilterPropHTML.appendAscii ( "\"</td></tr>\n" );
609 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">UIName</td><td valign=\"top\" align=\"top\">" ); // generate row "UIName <value>"
610 for( ConstStringHashIterator pUIName=aFilter.lUINames.begin() ;
611 pUIName!=aFilter.lUINames.end() ;
612 ++pUIName )
613 {
614 sFilterPropHTML.appendAscii ( " [" );
615 sFilterPropHTML.append ( pUIName->first );
616 sFilterPropHTML.appendAscii ( "] \"" );
617 sFilterPropHTML.append ( pUIName->second );
618 sFilterPropHTML.appendAscii ( "\"<br>" );
619 }
620 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
621 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">DocumentService</td><td valign=\"top\" align=\"top\"> " ); // generate row "DocumentService <value>"
622 sFilterPropHTML.append ( aFilter.sDocumentService );
623 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
624 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">FilterService</td><td valign=\"top\" align=\"top\"> " ); // generate row "FilterService <value>"
625 sFilterPropHTML.append ( aFilter.sFilterService );
626 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
627 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Flags</td><td valign=\"top\" align=\"top\"> " ); // generate row "Flags <value>"
628 if( aFilter.nFlags & FILTERFLAG_IMPORT ) { sFilterPropHTML.append( FILTERFLAGNAME_IMPORT ); sFilterPropHTML.appendAscii( "<br> " ); };
629 if( aFilter.nFlags & FILTERFLAG_EXPORT ) { sFilterPropHTML.append( FILTERFLAGNAME_EXPORT ); sFilterPropHTML.appendAscii( "<br> " ); };
630 if( aFilter.nFlags & FILTERFLAG_TEMPLATE ) { sFilterPropHTML.append( FILTERFLAGNAME_TEMPLATE ); sFilterPropHTML.appendAscii( "<br> " ); };
631 if( aFilter.nFlags & FILTERFLAG_INTERNAL ) { sFilterPropHTML.append( FILTERFLAGNAME_INTERNAL ); sFilterPropHTML.appendAscii( "<br> " ); };
632 if( aFilter.nFlags & FILTERFLAG_TEMPLATEPATH ) { sFilterPropHTML.append( FILTERFLAGNAME_TEMPLATEPATH ); sFilterPropHTML.appendAscii( "<br> " ); };
633 if( aFilter.nFlags & FILTERFLAG_OWN ) { sFilterPropHTML.append( FILTERFLAGNAME_OWN ); sFilterPropHTML.appendAscii( "<br> " ); };
634 if( aFilter.nFlags & FILTERFLAG_ALIEN ) { sFilterPropHTML.append( FILTERFLAGNAME_ALIEN ); sFilterPropHTML.appendAscii( "<br> " ); };
635 if( aFilter.nFlags & FILTERFLAG_USESOPTIONS ) { sFilterPropHTML.append( FILTERFLAGNAME_USESOPTIONS ); sFilterPropHTML.appendAscii( "<br> " ); };
636 if( aFilter.nFlags & FILTERFLAG_DEFAULT ) { sFilterPropHTML.append( FILTERFLAGNAME_DEFAULT ); sFilterPropHTML.appendAscii( "<br> " ); };
637 if( aFilter.nFlags & FILTERFLAG_NOTINFILEDIALOG ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINFILEDIALOG ); sFilterPropHTML.appendAscii( "<br> " ); };
638 if( aFilter.nFlags & FILTERFLAG_NOTINCHOOSER ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINCHOOSER ); sFilterPropHTML.appendAscii( "<br> " ); };
639 if( aFilter.nFlags & FILTERFLAG_ASYNCHRON ) { sFilterPropHTML.append( FILTERFLAGNAME_ASYNCHRON ); sFilterPropHTML.appendAscii( "<br> " ); };
640 if( aFilter.nFlags & FILTERFLAG_READONLY ) { sFilterPropHTML.append( FILTERFLAGNAME_READONLY ); sFilterPropHTML.appendAscii( "<br> " ); };
641 if( aFilter.nFlags & FILTERFLAG_NOTINSTALLED ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINSTALLED ); sFilterPropHTML.appendAscii( "<br> " ); };
642 if( aFilter.nFlags & FILTERFLAG_CONSULTSERVICE ) { sFilterPropHTML.append( FILTERFLAGNAME_CONSULTSERVICE ); sFilterPropHTML.appendAscii( "<br> " ); };
643 if( aFilter.nFlags & FILTERFLAG_3RDPARTYFILTER ) { sFilterPropHTML.append( FILTERFLAGNAME_3RDPARTYFILTER ); sFilterPropHTML.appendAscii( "<br> " ); };
644 if( aFilter.nFlags & FILTERFLAG_PACKED ) { sFilterPropHTML.append( FILTERFLAGNAME_PACKED ); sFilterPropHTML.appendAscii( "<br> " ); };
645 if( aFilter.nFlags & FILTERFLAG_SILENTEXPORT ) { sFilterPropHTML.append( FILTERFLAGNAME_SILENTEXPORT ); sFilterPropHTML.appendAscii( "<br> " ); };
646 if( aFilter.nFlags & FILTERFLAG_BROWSERPREFERED ) { sFilterPropHTML.append( FILTERFLAGNAME_BROWSERPREFERED ); sFilterPropHTML.appendAscii( "<br> " ); };
647 if( aFilter.nFlags & FILTERFLAG_PREFERED ) { sFilterPropHTML.append( FILTERFLAGNAME_PREFERED ); sFilterPropHTML.appendAscii( "<br> " ); };
648
649 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
650 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">UserData</td><td valign=\"top\" align=\"top\">" ); // generate row "UserData <value>"
651 for( ConstStringListIterator pUserData=aFilter.lUserData.begin() ;
652 pUserData!=aFilter.lUserData.end() ;
653 ++pUserData )
654 {
655 sFilterPropHTML.appendAscii ( " \"" );
656 sFilterPropHTML.append ( *pUserData );
657 sFilterPropHTML.appendAscii ( "\"<br>" );
658 }
659 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
660 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">FileFormatVersion</td><td valign=\"top\" align=\"top\"> "); // generate row "FileFormatVersion <value>"
661 sFilterPropHTML.append ( OUString::valueOf( aFilter.nFileFormatVersion ) );
662 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
663 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">TemplateName</td><td valign=\"top\" align=\"top\"> " ); // generate row "TemplateName <value>"
664 sFilterPropHTML.append ( aFilter.sTemplateName );
665 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
666 sFilterPropHTML.appendAscii ( "\t\t</table>\n" ); // close table
667 sFilterPropHTML.appendAscii ( "\t\t<p>\n" ); // add space between this and following table
668 }
669
670 sAllFiltersHTML.appendAscii( "</table>\n" ); // close table
671 sAllFiltersHTML.appendAscii( "</body>\n</html>\n" ); // close html
672
673 sFilterPropHTML.appendAscii( "</body>\n</html>\n" ); // close html
674
675 impl_writeFile( ALLFILTERS_HTML , U2B(sAllFiltersHTML.makeStringAndClear()) );
676 impl_writeFile( FILTERPROPERTIES_HTML, U2B(sFilterPropHTML.makeStringAndClear()) );
677 }
678
679 //*****************************************************************************************************************
impl_generateFilterModulListHTML()680 void CFGView::impl_generateFilterModulListHTML()
681 {
682 //-------------------------------------------------------------------------------------------------------------
683 // generate frameset for filters sorted by modules
684 OUStringBuffer sFiltersFramesetHTML( 10000 );
685
686 sFiltersFramesetHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Filters sorted by modules\n\t\t</title>\n\t</head>\n" ); // open html
687 sFiltersFramesetHTML.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols
688 sFiltersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list"
689 sFiltersFramesetHTML.appendAscii( TARGET_LIST );
690 sFiltersFramesetHTML.appendAscii( "\" src=\"" );
691 sFiltersFramesetHTML.appendAscii( MODULFILTERS_HTML );
692 sFiltersFramesetHTML.appendAscii( "\" title=\"List\">\n" );
693 sFiltersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties"
694 sFiltersFramesetHTML.appendAscii( TARGET_PROPERTIES );
695 sFiltersFramesetHTML.appendAscii( "\" src=\"" );
696 sFiltersFramesetHTML.appendAscii( FILTERPROPERTIES_HTML );
697 sFiltersFramesetHTML.appendAscii( "\" title=\"Properties\">\n" );
698 sFiltersFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset cols
699 sFiltersFramesetHTML.appendAscii( "</html>\n" ); // close html
700
701 impl_writeFile( FRAMESET_FILTERS_HTML, U2B(sFiltersFramesetHTML.makeStringAndClear()) );
702
703 //-------------------------------------------------------------------------------------------------------------
704 // generate filter list (names and links only!)
705 // use same loop to generate filter property list!
706 OUStringBuffer sAllFiltersHTML( 10000 );
707 OUStringBuffer sFilterPropHTML( 10000 );
708
709 sAllFiltersHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tAll Filters\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
710 sAllFiltersHTML.appendAscii( "\t\t<table border=0><tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Filter</strong></td></tr>\n" ); // open table
711
712 sFilterPropHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFilterProperties\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
713
714 css::uno::Sequence< ::rtl::OUString > lWriter ;
715 css::uno::Sequence< ::rtl::OUString > lWeb ;
716 css::uno::Sequence< ::rtl::OUString > lGlobal ;
717 css::uno::Sequence< ::rtl::OUString > lChart ;
718 css::uno::Sequence< ::rtl::OUString > lCalc ;
719 css::uno::Sequence< ::rtl::OUString > lImpress;
720 css::uno::Sequence< ::rtl::OUString > lDraw ;
721 css::uno::Sequence< ::rtl::OUString > lMath ;
722 css::uno::Sequence< ::rtl::OUString > lGraphic;
723 css::uno::Sequence< ::rtl::OUString > lDefault;
724 css::uno::Sequence< ::rtl::OUString > lNames ;
725
726 m_aData.pCache->queryFilters( FILTERQUERY_TEXTDOCUMENT_WITHDEFAULT ) >>= lWriter ;
727 m_aData.pCache->queryFilters( FILTERQUERY_WEBDOCUMENT_WITHDEFAULT ) >>= lWeb ;
728 m_aData.pCache->queryFilters( FILTERQUERY_GLOBALDOCUMENT_WITHDEFAULT ) >>= lGlobal ;
729 m_aData.pCache->queryFilters( FILTERQUERY_CHARTDOCUMENT_WITHDEFAULT ) >>= lChart ;
730 m_aData.pCache->queryFilters( FILTERQUERY_SPREADSHEETDOCUMENT_WITHDEFAULT ) >>= lCalc ;
731 m_aData.pCache->queryFilters( FILTERQUERY_PRESENTATIONDOCUMENT_WITHDEFAULT) >>= lImpress ;
732 m_aData.pCache->queryFilters( FILTERQUERY_DRAWINGDOCUMENT_WITHDEFAULT ) >>= lDraw ;
733 m_aData.pCache->queryFilters( FILTERQUERY_FORMULARPROPERTIES_WITHDEFAULT ) >>= lMath ;
734 m_aData.pCache->queryFilters( FILTERQUERY_GRAPHICFILTERS ) >>= lGraphic ;
735 m_aData.pCache->queryFilters( FILTERQUERY_DEFAULTFILTERS ) >>= lDefault ;
736
737 sal_Int32 nModuls = 0;
738 sal_Int32 nFilters = 0;
739 sal_Int32 nModulCount = 0;
740 sal_Int32 nFilterCount = 0;
741 Filter aFilter ;
742 ::rtl::OString sModul ;
743
744 for( nModuls=0; nModuls<nModulCount; ++nModuls )
745 {
746 switch( nModuls )
747 {
748 case 0: {
749 lNames = lWriter;
750 sModul = "Writer";
751 }
752 break;
753 case 1: {
754 lNames = lWeb ;
755 sModul = "Web";
756 }
757 break;
758 case 2: {
759 lNames = lGlobal ;
760 sModul = "GlobalDokument";
761 }
762 break;
763 case 3: {
764 lNames = lChart ;
765 sModul = "Chart";
766 }
767 break;
768 case 4: {
769 lNames = lCalc ;
770 sModul = "Calc";
771 }
772 break;
773 case 5: {
774 lNames = lImpress;
775 sModul = "Impress";
776 }
777 break;
778 case 6: {
779 lNames = lDraw ;
780 sModul = "Draw";
781 }
782 break;
783 case 7: {
784 lNames = lMath ;
785 sModul = "Math";
786 }
787 break;
788 case 8: {
789 lNames = lGraphic;
790 sModul = "Graphic";
791 }
792 break;
793 case 9: {
794 lNames = lDefault;
795 sModul = "Default Filter!";
796 }
797 break;
798 }
799
800 sAllFiltersHTML.appendAscii ( "\t\t\t<tr>\n" );
801 sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#000000 fgcolor=#ffffff valign=\"top\" align=\"top\">-</td>\n" );
802 sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#000000 fgcolor=#ffffff valign=\"top\" align=\"top\">" );
803 sAllFiltersHTML.appendAscii ( sModul );
804 sAllFiltersHTML.appendAscii ( "</td>\n" );
805 sAllFiltersHTML.appendAscii ( "\t\t\t</tr>\n" );
806
807 nFilterCount = lNames.getLength();
808
809 for( nFilters=0; nFilters<nFilterCount; ++nFilters )
810 {
811 aFilter = m_aData.pCache->getFilter( lNames[nFilters] );
812
813 // write entry in filter list table
814 sAllFiltersHTML.appendAscii ( "\t\t\t<tr>\n" ); // open row
815 sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">" ); // open column "nr"
816 sAllFiltersHTML.append ( OUString::valueOf( nFilters ) ); // write nr
817 sAllFiltersHTML.appendAscii ( "</td>\n" ); // close column "nr"
818 sAllFiltersHTML.appendAscii ( "\t\t\t\t<td>" ); // open column "name"
819 sAllFiltersHTML.appendAscii ( "<a href=\"" ); // open href="filterproperties.html#<filtername>"
820 sAllFiltersHTML.appendAscii ( FILTERPROPERTIES_HTML );
821 sAllFiltersHTML.appendAscii ( "#" );
822 sAllFiltersHTML.append ( aFilter.sName );
823 sAllFiltersHTML.appendAscii ( "\" target=\"" );
824 sAllFiltersHTML.appendAscii ( TARGET_PROPERTIES );
825 sAllFiltersHTML.appendAscii ( "\">" );
826 sAllFiltersHTML.append ( aFilter.sName ); // write name
827 sAllFiltersHTML.appendAscii ( "</a>" ); // close href
828 sAllFiltersHTML.appendAscii ( "</td>\n" ); // close column "name"
829 sAllFiltersHTML.appendAscii ( "\t\t\t</tr>\n" ); // close row
830
831 // write entry in filter property table
832 sFilterPropHTML.appendAscii ( "\t\t<a name=\"" ); // set target="#<typename>" to follow table
833 sFilterPropHTML.append ( aFilter.sName );
834 sFilterPropHTML.appendAscii ( "\"></a>" );
835 sFilterPropHTML.appendAscii ( "\t\t<table border=0>\n" ); // open table
836 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Nr.</td><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\"> "); // generate row "Nr <value>"
837 sFilterPropHTML.append ( OUString::valueOf( nFilters ) );
838 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
839 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Name</td><td valign=\"top\" align=\"top\"> " ); // generate row "Name <value>"
840 sFilterPropHTML.append ( aFilter.sName );
841 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
842 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Order</td><td valign=\"top\" align=\"top\"> \"" ); // generate row "Order <value>"
843 sFilterPropHTML.append ( aFilter.nOrder );
844 sFilterPropHTML.appendAscii ( "\"</td></tr>\n" );
845 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Type</td><td valign=\"top\" align=\"top\"> \"" ); // generate row "Type <value>"
846 sFilterPropHTML.append ( aFilter.sType );
847 sFilterPropHTML.appendAscii ( "\"</td></tr>\n" );
848 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">UIName</td><td valign=\"top\" align=\"top\">" ); // generate row "UIName <value>"
849 for( ConstStringHashIterator pUIName=aFilter.lUINames.begin() ;
850 pUIName!=aFilter.lUINames.end() ;
851 ++pUIName )
852 {
853 sFilterPropHTML.appendAscii ( " [" );
854 sFilterPropHTML.append ( pUIName->first );
855 sFilterPropHTML.appendAscii ( "] \"" );
856 sFilterPropHTML.append ( pUIName->second );
857 sFilterPropHTML.appendAscii ( "\"<br>" );
858 }
859 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
860 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">DocumentService</td><td valign=\"top\" align=\"top\"> " ); // generate row "DocumentService <value>"
861 sFilterPropHTML.append ( aFilter.sDocumentService );
862 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
863 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">FilterService</td><td valign=\"top\" align=\"top\"> " ); // generate row "FilterService <value>"
864 sFilterPropHTML.append ( aFilter.sFilterService );
865 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
866 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Flags</td><td valign=\"top\" align=\"top\"> " ); // generate row "Flags <value>"
867 if( aFilter.nFlags & FILTERFLAG_IMPORT ) { sFilterPropHTML.append( FILTERFLAGNAME_IMPORT ); sFilterPropHTML.appendAscii( "<br> " ); };
868 if( aFilter.nFlags & FILTERFLAG_EXPORT ) { sFilterPropHTML.append( FILTERFLAGNAME_EXPORT ); sFilterPropHTML.appendAscii( "<br> " ); };
869 if( aFilter.nFlags & FILTERFLAG_TEMPLATE ) { sFilterPropHTML.append( FILTERFLAGNAME_TEMPLATE ); sFilterPropHTML.appendAscii( "<br> " ); };
870 if( aFilter.nFlags & FILTERFLAG_INTERNAL ) { sFilterPropHTML.append( FILTERFLAGNAME_INTERNAL ); sFilterPropHTML.appendAscii( "<br> " ); };
871 if( aFilter.nFlags & FILTERFLAG_TEMPLATEPATH ) { sFilterPropHTML.append( FILTERFLAGNAME_TEMPLATEPATH ); sFilterPropHTML.appendAscii( "<br> " ); };
872 if( aFilter.nFlags & FILTERFLAG_OWN ) { sFilterPropHTML.append( FILTERFLAGNAME_OWN ); sFilterPropHTML.appendAscii( "<br> " ); };
873 if( aFilter.nFlags & FILTERFLAG_ALIEN ) { sFilterPropHTML.append( FILTERFLAGNAME_ALIEN ); sFilterPropHTML.appendAscii( "<br> " ); };
874 if( aFilter.nFlags & FILTERFLAG_USESOPTIONS ) { sFilterPropHTML.append( FILTERFLAGNAME_USESOPTIONS ); sFilterPropHTML.appendAscii( "<br> " ); };
875 if( aFilter.nFlags & FILTERFLAG_DEFAULT ) { sFilterPropHTML.append( FILTERFLAGNAME_DEFAULT ); sFilterPropHTML.appendAscii( "<br> " ); };
876 if( aFilter.nFlags & FILTERFLAG_NOTINFILEDIALOG ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINFILEDIALOG ); sFilterPropHTML.appendAscii( "<br> " ); };
877 if( aFilter.nFlags & FILTERFLAG_NOTINCHOOSER ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINCHOOSER ); sFilterPropHTML.appendAscii( "<br> " ); };
878 if( aFilter.nFlags & FILTERFLAG_ASYNCHRON ) { sFilterPropHTML.append( FILTERFLAGNAME_ASYNCHRON ); sFilterPropHTML.appendAscii( "<br> " ); };
879 if( aFilter.nFlags & FILTERFLAG_READONLY ) { sFilterPropHTML.append( FILTERFLAGNAME_READONLY ); sFilterPropHTML.appendAscii( "<br> " ); };
880 if( aFilter.nFlags & FILTERFLAG_NOTINSTALLED ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINSTALLED ); sFilterPropHTML.appendAscii( "<br> " ); };
881 if( aFilter.nFlags & FILTERFLAG_CONSULTSERVICE ) { sFilterPropHTML.append( FILTERFLAGNAME_CONSULTSERVICE ); sFilterPropHTML.appendAscii( "<br> " ); };
882 if( aFilter.nFlags & FILTERFLAG_3RDPARTYFILTER ) { sFilterPropHTML.append( FILTERFLAGNAME_3RDPARTYFILTER ); sFilterPropHTML.appendAscii( "<br> " ); };
883 if( aFilter.nFlags & FILTERFLAG_PACKED ) { sFilterPropHTML.append( FILTERFLAGNAME_PACKED ); sFilterPropHTML.appendAscii( "<br> " ); };
884 if( aFilter.nFlags & FILTERFLAG_SILENTEXPORT ) { sFilterPropHTML.append( FILTERFLAGNAME_SILENTEXPORT ); sFilterPropHTML.appendAscii( "<br> " ); };
885 if( aFilter.nFlags & FILTERFLAG_BROWSERPREFERED ) { sFilterPropHTML.append( FILTERFLAGNAME_BROWSERPREFERED ); sFilterPropHTML.appendAscii( "<br> " ); };
886 if( aFilter.nFlags & FILTERFLAG_PREFERED ) { sFilterPropHTML.append( FILTERFLAGNAME_PREFERED ); sFilterPropHTML.appendAscii( "<br> " ); };
887
888 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
889 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">UserData</td><td valign=\"top\" align=\"top\">" ); // generate row "UserData <value>"
890 for( ConstStringListIterator pUserData=aFilter.lUserData.begin() ;
891 pUserData!=aFilter.lUserData.end() ;
892 ++pUserData )
893 {
894 sFilterPropHTML.appendAscii ( " \"" );
895 sFilterPropHTML.append ( *pUserData );
896 sFilterPropHTML.appendAscii ( "\"<br>" );
897 }
898 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
899 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">FileFormatVersion</td><td valign=\"top\" align=\"top\"> "); // generate row "FileFormatVersion <value>"
900 sFilterPropHTML.append ( OUString::valueOf( aFilter.nFileFormatVersion ) );
901 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
902 sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">TemplateName</td><td valign=\"top\" align=\"top\"> " ); // generate row "TemplateName <value>"
903 sFilterPropHTML.append ( aFilter.sTemplateName );
904 sFilterPropHTML.appendAscii ( "</td></tr>\n" );
905 sFilterPropHTML.appendAscii ( "\t\t</table>\n" ); // close table
906 sFilterPropHTML.appendAscii ( "\t\t<p>\n" ); // add space between this and following table
907 }
908 }
909
910 sAllFiltersHTML.appendAscii( "</table>\n" ); // close table
911 sAllFiltersHTML.appendAscii( "</body>\n</html>\n" ); // close html
912
913 sFilterPropHTML.appendAscii( "</body>\n</html>\n" ); // close html
914
915 impl_writeFile( ALLFILTERS_HTML , U2B(sAllFiltersHTML.makeStringAndClear()) );
916 impl_writeFile( FILTERPROPERTIES_HTML, U2B(sFilterPropHTML.makeStringAndClear()) );
917 }
918
919 //*****************************************************************************************************************
impl_generateDetectorListHTML()920 void CFGView::impl_generateDetectorListHTML()
921 {
922 //-------------------------------------------------------------------------------------------------------------
923 // generate frameset for detector services
924 OUStringBuffer sDetectorsFramesetHTML( 10000 );
925
926 sDetectorsFramesetHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Detector Services\n\t\t</title>\n\t</head>\n" ); // open html
927 sDetectorsFramesetHTML.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols
928 sDetectorsFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list"
929 sDetectorsFramesetHTML.appendAscii( TARGET_LIST );
930 sDetectorsFramesetHTML.appendAscii( "\" src=\"" );
931 sDetectorsFramesetHTML.appendAscii( ALLDETECTORS_HTML );
932 sDetectorsFramesetHTML.appendAscii( "\" title=\"List\">\n" );
933 sDetectorsFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties"
934 sDetectorsFramesetHTML.appendAscii( TARGET_PROPERTIES );
935 sDetectorsFramesetHTML.appendAscii( "\" src=\"" );
936 sDetectorsFramesetHTML.appendAscii( DETECTORPROPERTIES_HTML );
937 sDetectorsFramesetHTML.appendAscii( "\" title=\"Properties\">\n" );
938 sDetectorsFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset cols
939 sDetectorsFramesetHTML.appendAscii( "</html>\n" ); // close html
940
941 impl_writeFile( FRAMESET_DETECTORS_HTML, U2B(sDetectorsFramesetHTML.makeStringAndClear()) );
942
943 //-------------------------------------------------------------------------------------------------------------
944 // generate detector list (names and links only!)
945 // use same loop to generate detector property list!
946 OUStringBuffer sAllDetectorsHTML( 10000 );
947 OUStringBuffer sDetectorPropHTML( 10000 );
948
949 sAllDetectorsHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tAll Detectors\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
950 sAllDetectorsHTML.appendAscii( "\t\t<table border=0><tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Detector</strong></td></tr>\n" ); // open table
951
952 sDetectorPropHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tDetectorProperties\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
953
954 css::uno::Sequence< ::rtl::OUString > lNames = m_aData.pCache->getAllDetectorNames();
955 sal_Int32 nCount = lNames.getLength() ;
956 for( sal_Int32 nItem=0; nItem<nCount; ++nItem )
957 {
958 Detector aDetector = m_aData.pCache->getDetector( lNames[nItem] );
959
960 // write entry in detector list table
961 sAllDetectorsHTML.appendAscii ( "\t\t\t<tr>\n" ); // open row
962 sAllDetectorsHTML.appendAscii ( "\t\t\t\t<td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">" ); // open column "nr"
963 sAllDetectorsHTML.append ( OUString::valueOf( nItem ) ); // write nr
964 sAllDetectorsHTML.appendAscii ( "</td>\n" ); // close column "nr"
965 sAllDetectorsHTML.appendAscii ( "\t\t\t\t<td>" ); // open column "name"
966 sAllDetectorsHTML.appendAscii ( "<a href=\"" ); // open href="detectorproperties.html#<detectorname>"
967 sAllDetectorsHTML.appendAscii ( DETECTORPROPERTIES_HTML );
968 sAllDetectorsHTML.appendAscii ( "#" );
969 sAllDetectorsHTML.append ( aDetector.sName );
970 sAllDetectorsHTML.appendAscii ( "\" target=\"" );
971 sAllDetectorsHTML.appendAscii ( TARGET_PROPERTIES );
972 sAllDetectorsHTML.appendAscii ( "\">" );
973 sAllDetectorsHTML.append ( aDetector.sName ); // write name
974 sAllDetectorsHTML.appendAscii ( "</a>" ); // close href
975 sAllDetectorsHTML.appendAscii ( "</td>\n" ); // close column "name"
976 sAllDetectorsHTML.appendAscii ( "\t\t\t</tr>\n" ); // close row
977
978 // write entry in detector property table
979 sDetectorPropHTML.appendAscii ( "\t\t<a name=\"" ); // set target="#<detectorname>" to follow table
980 sDetectorPropHTML.append ( aDetector.sName );
981 sDetectorPropHTML.appendAscii ( "\"></a>" );
982 sDetectorPropHTML.appendAscii ( "\t\t<table border=0>\n" ); // open table
983 sDetectorPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Nr.</td><td valign=\"top\" align=\"top\"> " ); // generate row "Nr <value>"
984 sDetectorPropHTML.append ( OUString::valueOf( nItem ) );
985 sDetectorPropHTML.appendAscii ( "</td></tr>\n" );
986 sDetectorPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Name</td><td valign=\"top\" align=\"top\"> " ); // generate row "Name <value>"
987 sDetectorPropHTML.append ( aDetector.sName );
988 sDetectorPropHTML.appendAscii ( "</td></tr>\n" );
989 sDetectorPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Types</td><td valign=\"top\" align=\"top\">" ); // generate row "Types <value>"
990 for( ConstStringListIterator pType=aDetector.lTypes.begin() ;
991 pType!=aDetector.lTypes.end() ;
992 ++pType )
993 {
994 sDetectorPropHTML.appendAscii ( " \"");
995 sDetectorPropHTML.append ( *pType );
996 sDetectorPropHTML.appendAscii ( "\"<br>" );
997 }
998
999 sDetectorPropHTML.appendAscii ( "\t\t</table>\n" ); // close table
1000 sDetectorPropHTML.appendAscii ( "\t\t<p>\n" ); // add space between this and following table
1001 }
1002
1003 sAllDetectorsHTML.appendAscii( "</table>\n" ); // close table
1004 sAllDetectorsHTML.appendAscii( "</body>\n</html>\n" ); // close html
1005
1006 sDetectorPropHTML.appendAscii( "</body>\n</html>\n" ); // close html
1007
1008 impl_writeFile( ALLDETECTORS_HTML , U2B(sAllDetectorsHTML.makeStringAndClear()) );
1009 impl_writeFile( DETECTORPROPERTIES_HTML , U2B(sDetectorPropHTML.makeStringAndClear()) );
1010 }
1011
1012 //*****************************************************************************************************************
impl_generateLoaderListHTML()1013 void CFGView::impl_generateLoaderListHTML()
1014 {
1015 //-------------------------------------------------------------------------------------------------------------
1016 // generate frameset for loader services
1017 OUStringBuffer sLoadersFramesetHTML( 10000 );
1018
1019 sLoadersFramesetHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Loader Services\n\t\t</title>\n\t</head>\n" ); // open html
1020 sLoadersFramesetHTML.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols
1021 sLoadersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list"
1022 sLoadersFramesetHTML.appendAscii( TARGET_LIST );
1023 sLoadersFramesetHTML.appendAscii( "\" src=\"" );
1024 sLoadersFramesetHTML.appendAscii( ALLLOADERS_HTML );
1025 sLoadersFramesetHTML.appendAscii( "\" title=\"List\">\n" );
1026 sLoadersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties"
1027 sLoadersFramesetHTML.appendAscii( TARGET_PROPERTIES );
1028 sLoadersFramesetHTML.appendAscii( "\" src=\"" );
1029 sLoadersFramesetHTML.appendAscii( LOADERPROPERTIES_HTML );
1030 sLoadersFramesetHTML.appendAscii( "\" title=\"Properties\">\n" );
1031 sLoadersFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset cols
1032 sLoadersFramesetHTML.appendAscii( "</html>\n" ); // close html
1033
1034 impl_writeFile( FRAMESET_LOADERS_HTML, U2B(sLoadersFramesetHTML.makeStringAndClear()) );
1035
1036 //-------------------------------------------------------------------------------------------------------------
1037 // generate loader list (names and links only!)
1038 // use same loop to generate loader property list!
1039 OUStringBuffer sAllLoadersHTML( 10000 );
1040 OUStringBuffer sLoaderPropHTML( 10000 );
1041
1042 sAllLoadersHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tAll Loaders\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
1043 sAllLoadersHTML.appendAscii( "\t\t<table border=0><tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Loader</strong></td></tr>\n" ); // open table
1044
1045 sLoaderPropHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tLoaderProperties\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
1046
1047 css::uno::Sequence< ::rtl::OUString > lNames = m_aData.pCache->getAllLoaderNames();
1048 sal_Int32 nCount = lNames.getLength() ;
1049 for( sal_Int32 nItem=0; nItem<nCount; ++nItem )
1050 {
1051 Loader aLoader = m_aData.pCache->getLoader( lNames[nItem] );
1052
1053 // write entry in loader list table
1054 sAllLoadersHTML.appendAscii ( "\t\t\t<tr>\n" ); // open row
1055 sAllLoadersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">" ); // open column "nr"
1056 sAllLoadersHTML.append ( OUString::valueOf( nItem ) ); // write nr
1057 sAllLoadersHTML.appendAscii ( "</td>\n" ); // close column "nr"
1058 sAllLoadersHTML.appendAscii ( "\t\t\t\t<td>" ); // open column "name"
1059 sAllLoadersHTML.appendAscii ( "<a href=\"" ); // open href="loaderproperties.html#<loadername>"
1060 sAllLoadersHTML.appendAscii ( LOADERPROPERTIES_HTML );
1061 sAllLoadersHTML.appendAscii ( "#" );
1062 sAllLoadersHTML.append ( aLoader.sName );
1063 sAllLoadersHTML.appendAscii ( "\" target=\"" );
1064 sAllLoadersHTML.appendAscii ( TARGET_PROPERTIES );
1065 sAllLoadersHTML.appendAscii ( "\">" );
1066 sAllLoadersHTML.append ( aLoader.sName ); // write name
1067 sAllLoadersHTML.appendAscii ( "</a>" ); // close href
1068 sAllLoadersHTML.appendAscii ( "</td>\n" ); // close column "name"
1069 sAllLoadersHTML.appendAscii ( "\t\t\t</tr>\n" ); // close row
1070
1071 // write entry in loader property table
1072 sLoaderPropHTML.appendAscii ( "\t\t<a name=\"" ); // set target="#<loadername>" to follow table
1073 sLoaderPropHTML.append ( aLoader.sName );
1074 sLoaderPropHTML.appendAscii ( "\"></a>" );
1075 sLoaderPropHTML.appendAscii ( "\t\t<table border=0>\n" ); // open table
1076 sLoaderPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Nr.</td><td valign=\"top\" align=\"top\"> " ); // generate row "Nr <value>"
1077 sLoaderPropHTML.append ( OUString::valueOf( nItem ) );
1078 sLoaderPropHTML.appendAscii ( "</td></tr>\n" );
1079 sLoaderPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Name</td><td valign=\"top\" align=\"top\"> " ); // generate row "Name <value>"
1080 sLoaderPropHTML.append ( aLoader.sName );
1081 sLoaderPropHTML.appendAscii ( "</td></tr>\n" );
1082 sLoaderPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">UIName</td><td valign=\"top\" align=\"top\">" ); // generate row "UIName <value>"
1083 for( ConstStringHashIterator pUIName=aLoader.lUINames.begin() ;
1084 pUIName!=aLoader.lUINames.end() ;
1085 ++pUIName )
1086 {
1087 sLoaderPropHTML.appendAscii ( " [" );
1088 sLoaderPropHTML.append ( pUIName->first );
1089 sLoaderPropHTML.appendAscii ( "] \"" );
1090 sLoaderPropHTML.append ( pUIName->second );
1091 sLoaderPropHTML.appendAscii ( "\"<br>" );
1092 }
1093 sLoaderPropHTML.appendAscii ( "</td></tr>\n" );
1094 sLoaderPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Types</td><td valign=\"top\" align=\"top\">" ); // generate row "Types <value>"
1095 for( ConstStringListIterator pType=aLoader.lTypes.begin() ;
1096 pType!=aLoader.lTypes.end() ;
1097 ++pType )
1098 {
1099 sLoaderPropHTML.appendAscii ( " \"");
1100 sLoaderPropHTML.append ( *pType );
1101 sLoaderPropHTML.appendAscii ( "\"<br>" );
1102 }
1103
1104 sLoaderPropHTML.appendAscii ( "\t\t</table>\n" ); // close table
1105 sLoaderPropHTML.appendAscii ( "\t\t<p>\n" ); // add space between this and following table
1106 }
1107
1108 sAllLoadersHTML.appendAscii( "</table>\n" ); // close table
1109 sAllLoadersHTML.appendAscii( "</body>\n</html>\n" ); // close html
1110
1111 sLoaderPropHTML.appendAscii( "</body>\n</html>\n" ); // close html
1112
1113 impl_writeFile( ALLLOADERS_HTML , U2B(sAllLoadersHTML.makeStringAndClear()) );
1114 impl_writeFile( LOADERPROPERTIES_HTML, U2B(sLoaderPropHTML.makeStringAndClear()) );
1115 }
1116
1117 //*****************************************************************************************************************
impl_generateInvalidFiltersHTML()1118 void CFGView::impl_generateInvalidFiltersHTML()
1119 {
1120 //-------------------------------------------------------------------------------------------------------------
1121 // generate frameset for invalid filters
1122 OUStringBuffer sInvalidFiltersFramesetHTML( 10000 );
1123
1124 sInvalidFiltersFramesetHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Invalid Filters\n\t\t</title>\n\t</head>\n" ); // open html
1125 sInvalidFiltersFramesetHTML.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols
1126 sInvalidFiltersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list"
1127 sInvalidFiltersFramesetHTML.appendAscii( TARGET_LIST );
1128 sInvalidFiltersFramesetHTML.appendAscii( "\" src=\"" );
1129 sInvalidFiltersFramesetHTML.appendAscii( INVALIDFILTERS_HTML );
1130 sInvalidFiltersFramesetHTML.appendAscii( "\" title=\"List\">\n" );
1131 sInvalidFiltersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties"
1132 sInvalidFiltersFramesetHTML.appendAscii( TARGET_PROPERTIES );
1133 sInvalidFiltersFramesetHTML.appendAscii( "\" src=\"" );
1134 sInvalidFiltersFramesetHTML.appendAscii( FILTERPROPERTIES_HTML );
1135 sInvalidFiltersFramesetHTML.appendAscii( "\" title=\"Properties\">\n" );
1136 sInvalidFiltersFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset cols
1137 sInvalidFiltersFramesetHTML.appendAscii( "</html>\n" ); // close html
1138
1139 impl_writeFile( FRAMESET_INVALIDFILTERS_HTML, U2B(sInvalidFiltersFramesetHTML.makeStringAndClear()) );
1140
1141 //-------------------------------------------------------------------------------------------------------------
1142 // Search invalid registered filters!
1143 OUStringBuffer sInvalidFilterHTML( 10000 );
1144
1145 sInvalidFilterHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tInvalid Filter\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
1146 sInvalidFilterHTML.appendAscii( "\t\tPlease check follow filter entries in configuration. They are registered for invalid types!<p>\n" ); // write "Note"
1147 sInvalidFilterHTML.appendAscii( "\t\t<table border=0>\n" ); // open table
1148 sInvalidFilterHTML.appendAscii( "\t<tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Filter</strong></td><td bgcolor=#ff8040><strong>Wrong Type</strong></td></tr>\n" ); // generate table header
1149
1150 css::uno::Sequence< ::rtl::OUString > lFilters = m_aData.pCache->getAllFilterNames();
1151 sal_Int32 nFilterCount = lFilters.getLength() ;
1152 css::uno::Sequence< ::rtl::OUString > lTypes = m_aData.pCache->getAllTypeNames() ;
1153 sal_Int32 nTypeCount = lTypes.getLength() ;
1154 FileType aType ;
1155 Filter aFilter;
1156 for( sal_Int32 nFilter=0; nFilter<nFilterCount; ++nFilter )
1157 {
1158 aFilter = m_aData.pCache->getFilter( lFilters[nFilter] );
1159 sal_Bool bFound = sal_False;
1160 for( sal_Int32 nType=0; nType<nTypeCount; ++nType )
1161 {
1162 aType = m_aData.pCache->getType( lTypes[nType] );
1163 if( aFilter.sType == aType.sName )
1164 {
1165 bFound = sal_True;
1166 break;
1167 }
1168 }
1169 if( bFound == sal_False )
1170 {
1171 sInvalidFilterHTML.appendAscii ( "\t<tr><td bgcolor=#ff0000 color=#00ffff>" ); // generate row for invalid filter entry
1172 sInvalidFilterHTML.append ( OUString::valueOf( nFilter ) );
1173 sInvalidFilterHTML.appendAscii ( "</td><td><a href=\"" );
1174 sInvalidFilterHTML.appendAscii ( FILTERPROPERTIES_HTML );
1175 sInvalidFilterHTML.appendAscii ( "#" );
1176 sInvalidFilterHTML.append ( aFilter.sName );
1177 sInvalidFilterHTML.appendAscii ( "\" target=\"" );
1178 sInvalidFilterHTML.appendAscii ( TARGET_PROPERTIES );
1179 sInvalidFilterHTML.appendAscii ( "\">" );
1180 sInvalidFilterHTML.append ( aFilter.sName );
1181 sInvalidFilterHTML.appendAscii ( "\"</a></td><td>\"" );
1182 sInvalidFilterHTML.append ( aFilter.sType );
1183 sInvalidFilterHTML.appendAscii ( "\"</td></tr>\n" );
1184 }
1185 }
1186 sInvalidFilterHTML.appendAscii( "</table>\n" ); // close table
1187 sInvalidFilterHTML.appendAscii( "</body>\n</html>\n" ); // close html
1188 impl_writeFile( INVALIDFILTERS_HTML, U2B(sInvalidFilterHTML.makeStringAndClear()) );
1189 }
1190
1191 //*****************************************************************************************************************
impl_generateInvalidDetectorsHTML()1192 void CFGView::impl_generateInvalidDetectorsHTML()
1193 {
1194 //-------------------------------------------------------------------------------------------------------------
1195 // generate frameset for invalid detectors
1196 OUStringBuffer sInvalidDetectorsFramesetHTML( 10000 );
1197
1198 sInvalidDetectorsFramesetHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Invalid Detectors\n\t\t</title>\n\t</head>\n" ); // open html
1199 sInvalidDetectorsFramesetHTML.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols
1200 sInvalidDetectorsFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list"
1201 sInvalidDetectorsFramesetHTML.appendAscii( TARGET_LIST );
1202 sInvalidDetectorsFramesetHTML.appendAscii( "\" src=\"" );
1203 sInvalidDetectorsFramesetHTML.appendAscii( INVALIDDETECTORS_HTML );
1204 sInvalidDetectorsFramesetHTML.appendAscii( "\" title=\"List\">\n" );
1205 sInvalidDetectorsFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties"
1206 sInvalidDetectorsFramesetHTML.appendAscii( TARGET_PROPERTIES );
1207 sInvalidDetectorsFramesetHTML.appendAscii( "\" src=\"" );
1208 sInvalidDetectorsFramesetHTML.appendAscii( DETECTORPROPERTIES_HTML );
1209 sInvalidDetectorsFramesetHTML.appendAscii( "\" title=\"Properties\">\n" );
1210 sInvalidDetectorsFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset cols
1211 sInvalidDetectorsFramesetHTML.appendAscii( "</html>\n" ); // close html
1212
1213 impl_writeFile( FRAMESET_INVALIDDETECTORS_HTML, U2B(sInvalidDetectorsFramesetHTML.makeStringAndClear()) );
1214
1215 //-------------------------------------------------------------------------------------------------------------
1216 // Search invalid registered detect services!
1217 OUStringBuffer sInvalidDetectorsHTML( 10000 );
1218
1219 sInvalidDetectorsHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tInvalid Detector Services\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
1220 sInvalidDetectorsHTML.appendAscii( "\t\tPlease check follow detect service entries in configuration. They are registered for invalid types!<p>\n" ); // write "Note"
1221 sInvalidDetectorsHTML.appendAscii( "\t\t<table border=0>\n" ); // open table
1222 sInvalidDetectorsHTML.appendAscii( "\t<tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Detector</strong></td></tr>\n" ); // generate table header
1223
1224 css::uno::Sequence< ::rtl::OUString > lDetectors = m_aData.pCache->getAllDetectorNames();
1225 sal_Int32 nDetectorCount = lDetectors.getLength() ;
1226 css::uno::Sequence< ::rtl::OUString > lTypes = m_aData.pCache->getAllTypeNames() ;
1227 sal_Int32 nTypeCount = lTypes.getLength() ;
1228 FileType aType ;
1229 Detector aDetector;
1230 for( sal_Int32 nDetector=0; nDetector<nDetectorCount; ++nDetector )
1231 {
1232 aDetector = m_aData.pCache->getDetector( lDetectors[nDetector] );
1233 sal_Bool bFound = sal_False;
1234 for( sal_Int32 nType=0; nType<nTypeCount; ++nType )
1235 {
1236 aType = m_aData.pCache->getType( lTypes[nType] );
1237 for( ConstStringListIterator pTypeListEntry=aDetector.lTypes.begin(); pTypeListEntry!=aDetector.lTypes.end(); ++pTypeListEntry )
1238 {
1239 if( *pTypeListEntry == aType.sName )
1240 {
1241 bFound = sal_True;
1242 break;
1243 }
1244 }
1245 }
1246 if( bFound == sal_False )
1247 {
1248 sInvalidDetectorsHTML.appendAscii ( "\t<tr><td bgcolor=#ff0000 color=#00ffff>" ); // generate row for invalid detector entry
1249 sInvalidDetectorsHTML.append ( OUString::valueOf( nDetector ) );
1250 sInvalidDetectorsHTML.appendAscii ( "</td><td><a href=\"" );
1251 sInvalidDetectorsHTML.appendAscii ( DETECTORPROPERTIES_HTML );
1252 sInvalidDetectorsHTML.appendAscii ( "#" );
1253 sInvalidDetectorsHTML.append ( aDetector.sName );
1254 sInvalidDetectorsHTML.appendAscii ( "\" target=\"" );
1255 sInvalidDetectorsHTML.appendAscii ( TARGET_PROPERTIES );
1256 sInvalidDetectorsHTML.appendAscii ( "\">" );
1257 sInvalidDetectorsHTML.append ( aDetector.sName );
1258 sInvalidDetectorsHTML.appendAscii ( "\"</a></td></tr>\n" );
1259 }
1260 }
1261 sInvalidDetectorsHTML.appendAscii( "</table>\n" ); // close table
1262 sInvalidDetectorsHTML.appendAscii( "</body>\n</html>\n" ); // close html
1263 impl_writeFile( INVALIDDETECTORS_HTML, U2B(sInvalidDetectorsHTML.makeStringAndClear()) );
1264 }
1265
1266 //*****************************************************************************************************************
impl_generateInvalidLoadersHTML()1267 void CFGView::impl_generateInvalidLoadersHTML()
1268 {
1269 //-------------------------------------------------------------------------------------------------------------
1270 // generate frameset for invalid loaders
1271 OUStringBuffer sInvalidLoadersFramesetHTML( 10000 );
1272
1273 sInvalidLoadersFramesetHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Invalid Loaders\n\t\t</title>\n\t</head>\n" ); // open html
1274 sInvalidLoadersFramesetHTML.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols
1275 sInvalidLoadersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list"
1276 sInvalidLoadersFramesetHTML.appendAscii( TARGET_LIST );
1277 sInvalidLoadersFramesetHTML.appendAscii( "\" src=\"" );
1278 sInvalidLoadersFramesetHTML.appendAscii( INVALIDLOADERS_HTML );
1279 sInvalidLoadersFramesetHTML.appendAscii( "\" title=\"List\">\n" );
1280 sInvalidLoadersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties"
1281 sInvalidLoadersFramesetHTML.appendAscii( TARGET_PROPERTIES );
1282 sInvalidLoadersFramesetHTML.appendAscii( "\" src=\"" );
1283 sInvalidLoadersFramesetHTML.appendAscii( LOADERPROPERTIES_HTML );
1284 sInvalidLoadersFramesetHTML.appendAscii( "\" title=\"Properties\">\n" );
1285 sInvalidLoadersFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset cols
1286 sInvalidLoadersFramesetHTML.appendAscii( "</html>\n" ); // close html
1287
1288 impl_writeFile( FRAMESET_INVALIDLOADERS_HTML, U2B(sInvalidLoadersFramesetHTML.makeStringAndClear()) );
1289
1290 //-------------------------------------------------------------------------------------------------------------
1291 // Search invalid registered detect services!
1292 OUStringBuffer sInvalidLoadersHTML( 10000 );
1293
1294 sInvalidLoadersHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tInvalid Loader Services\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
1295 sInvalidLoadersHTML.appendAscii( "\t\tPlease check follow loader service entries in configuration. They are registered for invalid types!<p>\n" ); // write "Note"
1296 sInvalidLoadersHTML.appendAscii( "\t\t<table border=0>\n" ); // open table
1297 sInvalidLoadersHTML.appendAscii( "\t<tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Loader</strong></td></tr>\n" ); // generate table header
1298
1299 css::uno::Sequence< ::rtl::OUString > lLoaders = m_aData.pCache->getAllLoaderNames();
1300 sal_Int32 nLoaderCount = lLoaders.getLength() ;
1301 css::uno::Sequence< ::rtl::OUString > lTypes = m_aData.pCache->getAllTypeNames() ;
1302 sal_Int32 nTypeCount = lTypes.getLength() ;
1303 FileType aType ;
1304 Loader aLoader ;
1305 for( sal_Int32 nLoader=0; nLoader<nLoaderCount; ++nLoader )
1306 {
1307 aLoader = m_aData.pCache->getLoader( lLoaders[nLoader] );
1308 sal_Bool bFound = sal_False;
1309 for( sal_Int32 nType=0; nType<nTypeCount; ++nType )
1310 {
1311 aType = m_aData.pCache->getType( lTypes[nType] );
1312 for( ConstStringListIterator pTypeListEntry=aLoader.lTypes.begin(); pTypeListEntry!=aLoader.lTypes.end(); ++pTypeListEntry )
1313 {
1314 if( *pTypeListEntry == aType.sName )
1315 {
1316 bFound = sal_True;
1317 break;
1318 }
1319 }
1320 }
1321 if( bFound == sal_False )
1322 {
1323 sInvalidLoadersHTML.appendAscii ( "\t<tr><td bgcolor=#ff0000 color=#00ffff>" ); // generate row for invalid loader entry
1324 sInvalidLoadersHTML.append ( OUString::valueOf( nLoader ) );
1325 sInvalidLoadersHTML.appendAscii ( "</td><td><a href=\"" );
1326 sInvalidLoadersHTML.appendAscii ( LOADERPROPERTIES_HTML );
1327 sInvalidLoadersHTML.appendAscii ( "#" );
1328 sInvalidLoadersHTML.append ( aLoader.sName );
1329 sInvalidLoadersHTML.appendAscii ( "\" target=\"" );
1330 sInvalidLoadersHTML.appendAscii ( TARGET_PROPERTIES );
1331 sInvalidLoadersHTML.appendAscii ( "\">" );
1332 sInvalidLoadersHTML.append ( aLoader.sName );
1333 sInvalidLoadersHTML.appendAscii ( "\"</a></td></tr>\n" );
1334 }
1335 }
1336 sInvalidLoadersHTML.appendAscii( "</table>\n" ); // close table
1337 sInvalidLoadersHTML.appendAscii( "</body>\n</html>\n" ); // close html
1338 impl_writeFile( INVALIDLOADERS_HTML, U2B(sInvalidLoadersHTML.makeStringAndClear()) );
1339 }
1340
1341 //*****************************************************************************************************************
impl_generateFilterFlagsHTML()1342 void CFGView::impl_generateFilterFlagsHTML()
1343 {
1344 //-------------------------------------------------------------------------------------------------------------
1345 // Create view of all filters and his flags.
1346 OUStringBuffer sFilterFlagsHTML( 10000 );
1347
1348 sFilterFlagsHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFilter and Flags\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
1349 sFilterFlagsHTML.appendAscii( "\t\tThis is a list of all filters and his supported flags!<p>\n" ); // write "Note"
1350 sFilterFlagsHTML.appendAscii( "\t\t<table border=0>\n" ); // open table
1351 sFilterFlagsHTML.appendAscii( "\t<tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Loader</strong></td></tr>\n" ); // generate table header
1352
1353 css::uno::Sequence< ::rtl::OUString > lNames = m_aData.pCache->getAllFilterNames();
1354 sal_Int32 nCount = lNames.getLength();
1355 for( sal_Int32 nItem=0; nItem!=nCount; ++nItem )
1356 {
1357 Filter aFilter = m_aData.pCache->getFilter( lNames[nItem] );
1358
1359 sFilterFlagsHTML.appendAscii( "\t<tr><td bgcolor=#ff0000 color=#00ffff>" );
1360 sFilterFlagsHTML.append ( OUString::valueOf( nItem ) );
1361 sFilterFlagsHTML.appendAscii( "</td><td><a href=\"" );
1362 sFilterFlagsHTML.appendAscii( LOADERPROPERTIES_HTML );
1363 sFilterFlagsHTML.appendAscii( "#" );
1364 sFilterFlagsHTML.append ( aFilter.sName );
1365 sFilterFlagsHTML.appendAscii( "\" target=\"" );
1366 sFilterFlagsHTML.appendAscii( TARGET_PROPERTIES );
1367 sFilterFlagsHTML.appendAscii( "\">" );
1368 sFilterFlagsHTML.append ( aFilter.sName );
1369 sFilterFlagsHTML.appendAscii( "\"</a></td><td>" );
1370
1371 if( aFilter.nFlags & FILTERFLAG_IMPORT ) { sFilterFlagsHTML.append( FILTERFLAGNAME_IMPORT ); sFilterFlagsHTML.appendAscii( " | " ); }
1372 if( aFilter.nFlags & FILTERFLAG_EXPORT ) { sFilterFlagsHTML.append( FILTERFLAGNAME_EXPORT ); sFilterFlagsHTML.appendAscii( " | " ); }
1373 if( aFilter.nFlags & FILTERFLAG_TEMPLATE ) { sFilterFlagsHTML.append( FILTERFLAGNAME_TEMPLATE ); sFilterFlagsHTML.appendAscii( " | " ); }
1374 if( aFilter.nFlags & FILTERFLAG_INTERNAL ) { sFilterFlagsHTML.append( FILTERFLAGNAME_INTERNAL ); sFilterFlagsHTML.appendAscii( " | " ); }
1375 if( aFilter.nFlags & FILTERFLAG_TEMPLATEPATH ) { sFilterFlagsHTML.append( FILTERFLAGNAME_TEMPLATEPATH ); sFilterFlagsHTML.appendAscii( " | " ); }
1376 if( aFilter.nFlags & FILTERFLAG_OWN ) { sFilterFlagsHTML.append( FILTERFLAGNAME_OWN ); sFilterFlagsHTML.appendAscii( " | " ); }
1377 if( aFilter.nFlags & FILTERFLAG_ALIEN ) { sFilterFlagsHTML.append( FILTERFLAGNAME_ALIEN ); sFilterFlagsHTML.appendAscii( " | " ); }
1378 if( aFilter.nFlags & FILTERFLAG_USESOPTIONS ) { sFilterFlagsHTML.append( FILTERFLAGNAME_USESOPTIONS ); sFilterFlagsHTML.appendAscii( " | " ); }
1379 if( aFilter.nFlags & FILTERFLAG_DEFAULT ) { sFilterFlagsHTML.append( FILTERFLAGNAME_DEFAULT ); sFilterFlagsHTML.appendAscii( " | " ); }
1380 if( aFilter.nFlags & FILTERFLAG_NOTINFILEDIALOG ) { sFilterFlagsHTML.append( FILTERFLAGNAME_NOTINFILEDIALOG ); sFilterFlagsHTML.appendAscii( " | " ); }
1381 if( aFilter.nFlags & FILTERFLAG_NOTINCHOOSER ) { sFilterFlagsHTML.append( FILTERFLAGNAME_NOTINCHOOSER ); sFilterFlagsHTML.appendAscii( " | " ); }
1382 if( aFilter.nFlags & FILTERFLAG_ASYNCHRON ) { sFilterFlagsHTML.append( FILTERFLAGNAME_ASYNCHRON ); sFilterFlagsHTML.appendAscii( " | " ); }
1383 if( aFilter.nFlags & FILTERFLAG_READONLY ) { sFilterFlagsHTML.append( FILTERFLAGNAME_READONLY ); sFilterFlagsHTML.appendAscii( " | " ); }
1384 if( aFilter.nFlags & FILTERFLAG_NOTINSTALLED ) { sFilterFlagsHTML.append( FILTERFLAGNAME_NOTINSTALLED ); sFilterFlagsHTML.appendAscii( " | " ); }
1385 if( aFilter.nFlags & FILTERFLAG_CONSULTSERVICE ) { sFilterFlagsHTML.append( FILTERFLAGNAME_CONSULTSERVICE ); sFilterFlagsHTML.appendAscii( " | " ); }
1386 if( aFilter.nFlags & FILTERFLAG_3RDPARTYFILTER ) { sFilterFlagsHTML.append( FILTERFLAGNAME_3RDPARTYFILTER ); sFilterFlagsHTML.appendAscii( " | " ); }
1387 if( aFilter.nFlags & FILTERFLAG_PACKED ) { sFilterFlagsHTML.append( FILTERFLAGNAME_PACKED ); sFilterFlagsHTML.appendAscii( " | " ); }
1388 if( aFilter.nFlags & FILTERFLAG_SILENTEXPORT ) { sFilterFlagsHTML.append( FILTERFLAGNAME_SILENTEXPORT ); sFilterFlagsHTML.appendAscii( " | " ); }
1389 if( aFilter.nFlags & FILTERFLAG_BROWSERPREFERED ) { sFilterFlagsHTML.append( FILTERFLAGNAME_BROWSERPREFERED ); sFilterFlagsHTML.appendAscii( " | " ); }
1390 if( aFilter.nFlags & FILTERFLAG_PREFERED ) { sFilterFlagsHTML.append( FILTERFLAGNAME_PREFERED ); }
1391
1392 sFilterFlagsHTML.appendAscii( "</td></tr>\n" );
1393 }
1394 sFilterFlagsHTML.appendAscii( "</table>\n" ); // close table
1395 sFilterFlagsHTML.appendAscii( "</body>\n</html>\n" ); // close html
1396 impl_writeFile( FILTERFLAGS_HTML, U2B(sFilterFlagsHTML.makeStringAndClear()) );
1397 }
1398
1399 //*****************************************************************************************************************
impl_generateDefaultFiltersHTML()1400 void CFGView::impl_generateDefaultFiltersHTML()
1401 {
1402 }
1403
1404 //*****************************************************************************************************************
impl_generateDoubleFilterUINamesHTML()1405 void CFGView::impl_generateDoubleFilterUINamesHTML()
1406 {
1407 //-------------------------------------------------------------------------------------------------------------
1408 // generate frameset for double UINames
1409 OUStringBuffer sFrameSet( 10000 );
1410
1411 sFrameSet.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Search doubl UINames\n\t\t</title>\n\t</head>\n" ); // open html
1412 sFrameSet.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols
1413 sFrameSet.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list"
1414 sFrameSet.appendAscii( TARGET_LIST );
1415 sFrameSet.appendAscii( "\" src=\"" );
1416 sFrameSet.appendAscii( DOUBLEFILTERUINAMES_HTML );
1417 sFrameSet.appendAscii( "\" title=\"Double UINames\">\n" );
1418 sFrameSet.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties"
1419 sFrameSet.appendAscii( TARGET_PROPERTIES );
1420 sFrameSet.appendAscii( "\" src=\"" );
1421 sFrameSet.appendAscii( FILTERPROPERTIES_HTML );
1422 sFrameSet.appendAscii( "\" title=\"Properties\">\n" );
1423 sFrameSet.appendAscii( "\t\t</frameset>\n" ); // close frameset cols
1424 sFrameSet.appendAscii( "</html>\n" ); // close html
1425
1426 impl_writeFile( FRAMESET_DOUBLEFILTERUINAMES_HTML, U2B(sFrameSet.makeStringAndClear()) );
1427
1428 //-------------------------------------------------------------------------------------------------------------
1429 // Search invalid registered detect services!
1430 OUStringBuffer sHTML( 10000 );
1431
1432 sHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tDouble Filter UINames\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html
1433 sHTML.appendAscii( "\t\tPlease check follow filter entries in configuration. Her UINames are registered twice!<p>\n" ); // write "Note"
1434 sHTML.appendAscii( "\t\t<table border=0>\n" ); // open table
1435 sHTML.appendAscii( "\t<tr><td bgcolor=#ff8040><strong>Nr.</strong></td>\n" ); // generate table header
1436 sHTML.appendAscii( "\t\t<td bgcolor=#ff8040><strong>UIName</strong></td>\n" );
1437 sHTML.appendAscii( "\t\t<td bgcolor=#ff8040><strong>Filters</strong></td>\n" );
1438 sHTML.appendAscii( "\t</tr>\n" );
1439
1440 StringHash lUINames ;
1441 css::uno::Sequence< ::rtl::OUString > lFilters = m_aData.pCache->getAllFilterNames();
1442 sal_Int32 nFilterCount = lFilters.getLength() ;
1443 Filter aFilter ;
1444 ::rtl::OUStringBuffer sBuffer ;
1445 ::rtl::OUString sUIName ;
1446
1447 for( sal_Int32 nFilter=0; nFilter<nFilterCount; ++nFilter )
1448 {
1449 aFilter = m_aData.pCache->getFilter( lFilters[nFilter] );
1450 for( ConstStringHashIterator pUIName=aFilter.lUINames.begin(); pUIName!= aFilter.lUINames.end(); ++pUIName )
1451 {
1452 // Build key value by using localized UIName to register filter name
1453 sBuffer.appendAscii( "[" );
1454 sBuffer.append ( pUIName->first );
1455 sBuffer.appendAscii( "] \"" );
1456 sBuffer.append ( pUIName->second );
1457 sBuffer.appendAscii( "\"" );
1458 sUIName = sBuffer.makeStringAndClear();
1459
1460 // insert filter into hash table
1461 sBuffer.append ( lUINames[ sUIName ] );
1462 sBuffer.appendAscii ( "<a href=\"" );
1463 sBuffer.appendAscii ( FILTERPROPERTIES_HTML );
1464 sBuffer.appendAscii ( "#" );
1465 sBuffer.append ( aFilter.sName );
1466 sBuffer.appendAscii ( "\" target=\"" );
1467 sBuffer.appendAscii ( TARGET_PROPERTIES );
1468 sBuffer.appendAscii ( "\">" );
1469 sBuffer.append ( aFilter.sName );
1470 sBuffer.appendAscii ( "\"</a><br>\n" );
1471 lUINames[ sUIName ] = sBuffer.makeStringAndClear();
1472 }
1473 }
1474
1475 nFilter = 1;
1476 for( ConstStringHashIterator pIterator=lUINames.begin(); pIterator!=lUINames.end(); ++pIterator )
1477 {
1478 if( pIterator->second.indexOf( '\n' ) != pIterator->second.lastIndexOf( '\n' ) )
1479 {
1480 sHTML.appendAscii ( "\t<tr><td bgcolor=#ff0000 color=#00ffff valign=top>" ); // generate row for uiname->filter entry
1481 sHTML.append ( OUString::valueOf( nFilter ) );
1482 sHTML.appendAscii ( "</td><td valign=top>" );
1483 sHTML.append ( pIterator->first );
1484 sHTML.appendAscii ( "</td><td bgcolor=#f0f0f0 valign=top>" );
1485 sHTML.append ( pIterator->second );
1486 sHTML.appendAscii ( "</td></tr>\n" );
1487
1488 ++nFilter;
1489 }
1490 }
1491
1492 sHTML.appendAscii( "</table>\n" ); // close table
1493 sHTML.appendAscii( "</body>\n</html>\n" ); // close html
1494 impl_writeFile( DOUBLEFILTERUINAMES_HTML, U2B(sHTML.makeStringAndClear()) );
1495 }
1496
1497 //*****************************************************************************************************************
impl_writeFile(const::rtl::OString & sFile,const::rtl::OString & sContent)1498 void CFGView::impl_writeFile( const ::rtl::OString& sFile, const ::rtl::OString& sContent )
1499 {
1500 ::rtl::OUStringBuffer sFullPath( 1000 );
1501 sFullPath.append ( m_aData.sDirectory );
1502 sFullPath.appendAscii ( "\\" );
1503 sFullPath.appendAscii ( sFile.getStr() );
1504
1505 ::rtl::OUString s = sFullPath.makeStringAndClear();
1506
1507 WRITE_LOGFILE( U2B(s), sContent )
1508 }
1509