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_xmlscript.hxx"
26 #include "imp_share.hxx"
27
28 #include <com/sun/star/beans/XPropertySet.hpp>
29 #include <com/sun/star/beans/XPropertyState.hpp>
30
31
32 using namespace ::com::sun::star;
33 using namespace ::com::sun::star::uno;
34 using ::rtl::OUString;
35
36 namespace xmlscript
37 {
38
39 // progessmeter
40 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)41 Reference< xml::input::XElement > ProgressBarElement::startChildElement(
42 sal_Int32 nUid, OUString const & rLocalName,
43 Reference< xml::input::XAttributes > const & xAttributes )
44 throw (xml::sax::SAXException, RuntimeException)
45 {
46 // event
47 if (_pImport->isEventElement( nUid, rLocalName ))
48 {
49 return new EventElement(
50 nUid, rLocalName, xAttributes, this, _pImport );
51 }
52 else
53 {
54 throw xml::sax::SAXException(
55 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
56 Reference< XInterface >(), Any() );
57 }
58 }
59 //__________________________________________________________________________________________________
endElement()60 void ProgressBarElement::endElement()
61 throw (xml::sax::SAXException, RuntimeException)
62 {
63 ControlImportContext ctx(
64 _pImport, getControlId( _xAttributes ),
65 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlProgressBarModel") ) );
66
67 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
68 if (xStyle.is())
69 {
70 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
71 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
72 pStyle->importBackgroundColorStyle( xControlModel );
73 pStyle->importBorderStyle( xControlModel );
74 pStyle->importFillColorStyle( xControlModel );
75 }
76
77 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
78 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ProgressValue") ),
79 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
80 _xAttributes );
81 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ProgressValueMin") ),
82 OUString( RTL_CONSTASCII_USTRINGPARAM("value-min") ),
83 _xAttributes );
84 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ProgressValueMax") ),
85 OUString( RTL_CONSTASCII_USTRINGPARAM("value-max") ),
86 _xAttributes );
87 ctx.importEvents( _events );
88 // avoid ring-reference:
89 // vector< event elements > holding event elements holding this (via _pParent)
90 _events.clear();
91 }
92
93 //##################################################################################################
94
95 // scrollbar
96 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)97 Reference< xml::input::XElement > ScrollBarElement::startChildElement(
98 sal_Int32 nUid, OUString const & rLocalName,
99 Reference< xml::input::XAttributes > const & xAttributes )
100 throw (xml::sax::SAXException, RuntimeException)
101 {
102 // event
103 if (_pImport->isEventElement( nUid, rLocalName ))
104 {
105 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
106 }
107 else
108 {
109 throw xml::sax::SAXException(
110 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
111 Reference< XInterface >(), Any() );
112 }
113 }
114 //__________________________________________________________________________________________________
endElement()115 void ScrollBarElement::endElement()
116 throw (xml::sax::SAXException, RuntimeException)
117 {
118 ControlImportContext ctx(
119 _pImport, getControlId( _xAttributes ),
120 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlScrollBarModel") ) );
121
122 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
123 if (xStyle.is())
124 {
125 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
126 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
127 pStyle->importBackgroundColorStyle( xControlModel );
128 pStyle->importBorderStyle( xControlModel );
129 }
130
131 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
132 ctx.importOrientationProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Orientation") ),
133 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
134 _xAttributes );
135 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("BlockIncrement") ),
136 OUString( RTL_CONSTASCII_USTRINGPARAM("pageincrement") ),
137 _xAttributes );
138 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("LineIncrement") ),
139 OUString( RTL_CONSTASCII_USTRINGPARAM("increment") ),
140 _xAttributes );
141 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ScrollValue") ),
142 OUString( RTL_CONSTASCII_USTRINGPARAM("curpos") ),
143 _xAttributes );
144 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ScrollValueMax") ),
145 OUString( RTL_CONSTASCII_USTRINGPARAM("maxpos") ),
146 _xAttributes );
147 ctx.importLongProperty( OUSTR("ScrollValueMin"), OUSTR("minpos"),
148 _xAttributes );
149 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("VisibleSize") ),
150 OUString( RTL_CONSTASCII_USTRINGPARAM("visible-size") ),
151 _xAttributes );
152 ctx.importLongProperty( OUSTR("RepeatDelay"), OUSTR("repeat"),
153 _xAttributes );
154 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
155 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
156 _xAttributes );
157 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("LiveScroll") ),
158 OUString( RTL_CONSTASCII_USTRINGPARAM("live-scroll") ),
159 _xAttributes );
160 ctx.importHexLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("SymbolColor") ),
161 OUString( RTL_CONSTASCII_USTRINGPARAM("symbol-color") ),
162 _xAttributes );
163
164 ctx.importEvents( _events );
165 // avoid ring-reference:
166 // vector< event elements > holding event elements holding this (via _pParent)
167 _events.clear();
168 }
169
170 //##################################################################################################
171
172 // fixedline
173 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)174 Reference< xml::input::XElement > FixedLineElement::startChildElement(
175 sal_Int32 nUid, OUString const & rLocalName,
176 Reference< xml::input::XAttributes > const & xAttributes )
177 throw (xml::sax::SAXException, RuntimeException)
178 {
179 // event
180 if (_pImport->isEventElement( nUid, rLocalName ))
181 {
182 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
183 }
184 else
185 {
186 throw xml::sax::SAXException(
187 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
188 Reference< XInterface >(), Any() );
189 }
190 }
191 //__________________________________________________________________________________________________
endElement()192 void FixedLineElement::endElement()
193 throw (xml::sax::SAXException, RuntimeException)
194 {
195 ControlImportContext ctx(
196 _pImport, getControlId( _xAttributes ),
197 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFixedLineModel") ) );
198
199 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
200 if (xStyle.is())
201 {
202 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
203 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
204 pStyle->importTextColorStyle( xControlModel );
205 pStyle->importTextLineColorStyle( xControlModel );
206 pStyle->importFontStyle( xControlModel );
207 }
208
209 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
210 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
211 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
212 _xAttributes );
213 ctx.importOrientationProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Orientation") ),
214 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
215 _xAttributes );
216 ctx.importEvents( _events );
217 // avoid ring-reference:
218 // vector< event elements > holding event elements holding this (via _pParent)
219 _events.clear();
220 }
221
222 //##################################################################################################
223
224 // patternfield
225 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)226 Reference< xml::input::XElement > PatternFieldElement::startChildElement(
227 sal_Int32 nUid, OUString const & rLocalName,
228 Reference< xml::input::XAttributes > const & xAttributes )
229 throw (xml::sax::SAXException, RuntimeException)
230 {
231 // event
232 if (_pImport->isEventElement( nUid, rLocalName ))
233 {
234 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
235 }
236 else
237 {
238 throw xml::sax::SAXException(
239 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
240 Reference< XInterface >(), Any() );
241 }
242 }
243 //__________________________________________________________________________________________________
endElement()244 void PatternFieldElement::endElement()
245 throw (xml::sax::SAXException, RuntimeException)
246 {
247 ControlImportContext ctx(
248 _pImport, getControlId( _xAttributes ),
249 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlPatternFieldModel") ) );
250
251 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
252 if (xStyle.is())
253 {
254 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
255 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
256 pStyle->importBackgroundColorStyle( xControlModel );
257 pStyle->importTextColorStyle( xControlModel );
258 pStyle->importTextLineColorStyle( xControlModel );
259 pStyle->importBorderStyle( xControlModel );
260 pStyle->importFontStyle( xControlModel );
261 }
262
263 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
264 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
265 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
266 _xAttributes );
267 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
268 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
269 _xAttributes );
270 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
271 OUString( RTL_CONSTASCII_USTRINGPARAM("strict-format") ),
272 _xAttributes );
273 ctx.importBooleanProperty(
274 OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
275 _xAttributes );
276 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ),
277 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
278 _xAttributes );
279 ctx.importShortProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MaxTextLen") ),
280 OUString( RTL_CONSTASCII_USTRINGPARAM("maxlength") ),
281 _xAttributes );
282 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("EditMask") ),
283 OUString( RTL_CONSTASCII_USTRINGPARAM("edit-mask") ),
284 _xAttributes );
285 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("LiteralMask") ),
286 OUString( RTL_CONSTASCII_USTRINGPARAM("literal-mask") ),
287 _xAttributes );
288 ctx.importEvents( _events );
289 // avoid ring-reference:
290 // vector< event elements > holding event elements holding this (via _pParent)
291 _events.clear();
292 }
293
294 //##################################################################################################
295
296 // formattedfield
297 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)298 Reference< xml::input::XElement > FormattedFieldElement::startChildElement(
299 sal_Int32 nUid, OUString const & rLocalName,
300 Reference< xml::input::XAttributes > const & xAttributes )
301 throw (xml::sax::SAXException, RuntimeException)
302 {
303 // event
304 if (_pImport->isEventElement( nUid, rLocalName ))
305 {
306 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
307 }
308 else
309 {
310 throw xml::sax::SAXException(
311 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
312 Reference< XInterface >(), Any() );
313 }
314 }
315 //__________________________________________________________________________________________________
endElement()316 void FormattedFieldElement::endElement()
317 throw (xml::sax::SAXException, RuntimeException)
318 {
319 ControlImportContext ctx(
320 _pImport, getControlId( _xAttributes ),
321 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFormattedFieldModel") ) );
322
323 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
324 if (xStyle.is())
325 {
326 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
327 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
328 pStyle->importBackgroundColorStyle( xControlModel );
329 pStyle->importTextColorStyle( xControlModel );
330 pStyle->importTextLineColorStyle( xControlModel );
331 pStyle->importBorderStyle( xControlModel );
332 pStyle->importFontStyle( xControlModel );
333 }
334
335 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
336 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
337 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
338 _xAttributes );
339 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
340 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
341 _xAttributes );
342 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
343 OUString( RTL_CONSTASCII_USTRINGPARAM("strict-format") ),
344 _xAttributes );
345 ctx.importBooleanProperty(
346 OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
347 _xAttributes );
348 ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
349 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
350 _xAttributes );
351 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("EffectiveMin") ),
352 OUString( RTL_CONSTASCII_USTRINGPARAM("value-min") ),
353 _xAttributes );
354 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("EffectiveMax") ),
355 OUString( RTL_CONSTASCII_USTRINGPARAM("value-max") ),
356 _xAttributes );
357 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("EffectiveValue") ),
358 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
359 _xAttributes );
360 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ),
361 OUString( RTL_CONSTASCII_USTRINGPARAM("text") ),
362 _xAttributes );
363 ctx.importShortProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MaxTextLen") ),
364 OUString( RTL_CONSTASCII_USTRINGPARAM("maxlength") ),
365 _xAttributes );
366 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Spin") ),
367 OUString( RTL_CONSTASCII_USTRINGPARAM("spin") ),
368 _xAttributes );
369 if (ctx.importLongProperty( OUSTR("RepeatDelay"), OUSTR("repeat"),
370 _xAttributes ))
371 ctx.getControlModel()->setPropertyValue(
372 OUSTR("Repeat"), makeAny(true) );
373
374 OUString sDefault(
375 _xAttributes->getValueByUidName(
376 _pImport->XMLNS_DIALOGS_UID,
377 OUString( RTL_CONSTASCII_USTRINGPARAM("value-default") ) ) );
378 if (sDefault.getLength())
379 {
380 double d = sDefault.toDouble();
381 if (d != 0.0 ||
382 sDefault.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("0") ) ||
383 sDefault.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("0.0") ))
384 {
385 ctx.getControlModel()->setPropertyValue(
386 OUString( RTL_CONSTASCII_USTRINGPARAM("EffectiveDefault") ),
387 makeAny( d ) );
388 }
389 else // treat as string
390 {
391 ctx.getControlModel()->setPropertyValue(
392 OUString( RTL_CONSTASCII_USTRINGPARAM("EffectiveDefault") ),
393 makeAny( sDefault ) );
394 }
395 }
396
397 // format spec
398 ctx.getControlModel()->setPropertyValue(
399 OUString( RTL_CONSTASCII_USTRINGPARAM("FormatsSupplier") ),
400 makeAny( _pImport->getNumberFormatsSupplier() ) );
401
402 OUString sFormat(
403 _xAttributes->getValueByUidName(
404 _pImport->XMLNS_DIALOGS_UID,
405 OUString( RTL_CONSTASCII_USTRINGPARAM("format-code") ) ) );
406 if (sFormat.getLength())
407 {
408 lang::Locale locale;
409
410 OUString sLocale(
411 _xAttributes->getValueByUidName(
412 _pImport->XMLNS_DIALOGS_UID,
413 OUString( RTL_CONSTASCII_USTRINGPARAM("format-locale") ) ) );
414 if (sLocale.getLength())
415 {
416 // split locale
417 sal_Int32 semi0 = sLocale.indexOf( ';' );
418 if (semi0 < 0) // no semi at all, just try language
419 {
420 locale.Language = sLocale;
421 }
422 else
423 {
424 sal_Int32 semi1 = sLocale.indexOf( ';', semi0 +1 );
425 if (semi1 > semi0) // language;country;variant
426 {
427 locale.Language = sLocale.copy( 0, semi0 );
428 locale.Country = sLocale.copy( semi0 +1, semi1 - semi0 -1 );
429 locale.Variant = sLocale.copy( semi1 +1 );
430 }
431 else // try language;country
432 {
433 locale.Language = sLocale.copy( 0, semi0 );
434 locale.Country = sLocale.copy( semi0 +1 );
435 }
436 }
437 }
438
439 try
440 {
441 Reference< util::XNumberFormats > xFormats(
442 _pImport->getNumberFormatsSupplier()->getNumberFormats() );
443 sal_Int32 nKey = xFormats->queryKey( sFormat, locale, sal_True );
444 if (-1 == nKey)
445 {
446 nKey = xFormats->addNew( sFormat, locale );
447 }
448 ctx.getControlModel()->setPropertyValue(
449 OUString( RTL_CONSTASCII_USTRINGPARAM("FormatKey") ), makeAny( nKey ) );
450 }
451 catch (util::MalformedNumberFormatException & exc)
452 {
453 OSL_ENSURE( 0, "### util::MalformedNumberFormatException occurred!" );
454 // rethrow
455 throw xml::sax::SAXException( exc.Message, Reference< XInterface >(), Any() );
456 }
457 }
458 ctx.importBooleanProperty(
459 OUString( RTL_CONSTASCII_USTRINGPARAM("TreatAsNumber") ),
460 OUString( RTL_CONSTASCII_USTRINGPARAM("treat-as-number") ),
461 _xAttributes );
462 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("EnforceFormat") ),
463 OUString( RTL_CONSTASCII_USTRINGPARAM("enforce-format") ),
464 _xAttributes );
465
466 ctx.importEvents( _events );
467 // avoid ring-reference:
468 // vector< event elements > holding event elements holding this (via _pParent)
469 _events.clear();
470 }
471
472 //##################################################################################################
473
474 // timefield
475 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)476 Reference< xml::input::XElement > TimeFieldElement::startChildElement(
477 sal_Int32 nUid, OUString const & rLocalName,
478 Reference< xml::input::XAttributes > const & xAttributes )
479 throw (xml::sax::SAXException, RuntimeException)
480 {
481 // event
482 if (_pImport->isEventElement( nUid, rLocalName ))
483 {
484 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
485 }
486 else
487 {
488 throw xml::sax::SAXException(
489 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
490 Reference< XInterface >(), Any() );
491 }
492 }
493 //__________________________________________________________________________________________________
endElement()494 void TimeFieldElement::endElement()
495 throw (xml::sax::SAXException, RuntimeException)
496 {
497 ControlImportContext ctx(
498 _pImport, getControlId( _xAttributes ),
499 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlTimeFieldModel") ) );
500
501 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
502 if (xStyle.is())
503 {
504 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
505 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
506 pStyle->importBackgroundColorStyle( xControlModel );
507 pStyle->importTextColorStyle( xControlModel );
508 pStyle->importTextLineColorStyle( xControlModel );
509 pStyle->importBorderStyle( xControlModel );
510 pStyle->importFontStyle( xControlModel );
511 }
512
513 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
514 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
515 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
516 _xAttributes );
517 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
518 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
519 _xAttributes );
520 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
521 OUString( RTL_CONSTASCII_USTRINGPARAM("strict-format") ),
522 _xAttributes );
523 ctx.importBooleanProperty(
524 OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
525 _xAttributes );
526 ctx.importTimeFormatProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("TimeFormat") ),
527 OUString( RTL_CONSTASCII_USTRINGPARAM("time-format") ),
528 _xAttributes );
529 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Time") ),
530 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
531 _xAttributes );
532 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("TimeMin") ),
533 OUString( RTL_CONSTASCII_USTRINGPARAM("value-min") ),
534 _xAttributes );
535 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("TimeMax") ),
536 OUString( RTL_CONSTASCII_USTRINGPARAM("value-max") ),
537 _xAttributes );
538 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Spin") ),
539 OUString( RTL_CONSTASCII_USTRINGPARAM("spin") ),
540 _xAttributes );
541 if (ctx.importLongProperty( OUSTR("RepeatDelay"), OUSTR("repeat"),
542 _xAttributes ))
543 ctx.getControlModel()->setPropertyValue(
544 OUSTR("Repeat"), makeAny(true) );
545 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ),
546 OUString( RTL_CONSTASCII_USTRINGPARAM("text") ),
547 _xAttributes );
548 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("EnforceFormat") ),
549 OUString( RTL_CONSTASCII_USTRINGPARAM("enforce-format") ),
550 _xAttributes );
551
552 ctx.importEvents( _events );
553 // avoid ring-reference:
554 // vector< event elements > holding event elements holding this (via _pParent)
555 _events.clear();
556 }
557
558 //##################################################################################################
559
560 // numericfield
561 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)562 Reference< xml::input::XElement > NumericFieldElement::startChildElement(
563 sal_Int32 nUid, OUString const & rLocalName,
564 Reference< xml::input::XAttributes > const & xAttributes )
565 throw (xml::sax::SAXException, RuntimeException)
566 {
567 // event
568 if (_pImport->isEventElement( nUid, rLocalName ))
569 {
570 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
571 }
572 else
573 {
574 throw xml::sax::SAXException(
575 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
576 Reference< XInterface >(), Any() );
577 }
578 }
579 //__________________________________________________________________________________________________
endElement()580 void NumericFieldElement::endElement()
581 throw (xml::sax::SAXException, RuntimeException)
582 {
583 ControlImportContext ctx(
584 _pImport, getControlId( _xAttributes ),
585 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlNumericFieldModel") ) );
586
587 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
588 if (xStyle.is())
589 {
590 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
591 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
592 pStyle->importBackgroundColorStyle( xControlModel );
593 pStyle->importTextColorStyle( xControlModel );
594 pStyle->importTextLineColorStyle( xControlModel );
595 pStyle->importBorderStyle( xControlModel );
596 pStyle->importFontStyle( xControlModel );
597 }
598
599 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
600 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
601 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
602 _xAttributes );
603 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
604 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
605 _xAttributes );
606 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
607 OUString( RTL_CONSTASCII_USTRINGPARAM("strict-format") ),
608 _xAttributes );
609 ctx.importBooleanProperty(
610 OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
611 _xAttributes );
612 ctx.importShortProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("DecimalAccuracy") ),
613 OUString( RTL_CONSTASCII_USTRINGPARAM("decimal-accuracy") ),
614 _xAttributes );
615 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ShowThousandsSeparator") ),
616 OUString( RTL_CONSTASCII_USTRINGPARAM("thousands-separator") ),
617 _xAttributes );
618 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Value") ),
619 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
620 _xAttributes );
621 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ValueMin") ),
622 OUString( RTL_CONSTASCII_USTRINGPARAM("value-min") ),
623 _xAttributes );
624 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ValueMax") ),
625 OUString( RTL_CONSTASCII_USTRINGPARAM("value-max") ),
626 _xAttributes );
627 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ValueStep") ),
628 OUString( RTL_CONSTASCII_USTRINGPARAM("value-step") ),
629 _xAttributes );
630 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Spin") ),
631 OUString( RTL_CONSTASCII_USTRINGPARAM("spin") ),
632 _xAttributes );
633 if (ctx.importLongProperty( OUSTR("RepeatDelay"), OUSTR("repeat"),
634 _xAttributes ))
635 ctx.getControlModel()->setPropertyValue(
636 OUSTR("Repeat"), makeAny(true) );
637 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("EnforceFormat") ),
638 OUString( RTL_CONSTASCII_USTRINGPARAM("enforce-format") ),
639 _xAttributes );
640 ctx.importEvents( _events );
641 // avoid ring-reference:
642 // vector< event elements > holding event elements holding this (via _pParent)
643 _events.clear();
644 }
645
646 //##################################################################################################
647
648 // datefield
649 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)650 Reference< xml::input::XElement > DateFieldElement::startChildElement(
651 sal_Int32 nUid, OUString const & rLocalName,
652 Reference< xml::input::XAttributes > const & xAttributes )
653 throw (xml::sax::SAXException, RuntimeException)
654 {
655 // event
656 if (_pImport->isEventElement( nUid, rLocalName ))
657 {
658 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
659 }
660 else
661 {
662 throw xml::sax::SAXException(
663 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
664 Reference< XInterface >(), Any() );
665 }
666 }
667 //__________________________________________________________________________________________________
endElement()668 void DateFieldElement::endElement()
669 throw (xml::sax::SAXException, RuntimeException)
670 {
671 ControlImportContext ctx(
672 _pImport, getControlId( _xAttributes ),
673 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlDateFieldModel") ) );
674
675 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
676 if (xStyle.is())
677 {
678 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
679 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
680 pStyle->importBackgroundColorStyle( xControlModel );
681 pStyle->importTextColorStyle( xControlModel );
682 pStyle->importTextLineColorStyle( xControlModel );
683 pStyle->importBorderStyle( xControlModel );
684 pStyle->importFontStyle( xControlModel );
685 }
686
687 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
688 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
689 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
690 _xAttributes );
691 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
692 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
693 _xAttributes );
694 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
695 OUString( RTL_CONSTASCII_USTRINGPARAM("strict-format") ),
696 _xAttributes );
697 ctx.importBooleanProperty(
698 OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
699 _xAttributes );
700 ctx.importDateFormatProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("DateFormat") ),
701 OUString( RTL_CONSTASCII_USTRINGPARAM("date-format") ),
702 _xAttributes );
703 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("DateShowCentury") ),
704 OUString( RTL_CONSTASCII_USTRINGPARAM("show-century") ),
705 _xAttributes );
706 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Date") ),
707 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
708 _xAttributes );
709 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("DateMin") ),
710 OUString( RTL_CONSTASCII_USTRINGPARAM("value-min") ),
711 _xAttributes );
712 ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("DateMax") ),
713 OUString( RTL_CONSTASCII_USTRINGPARAM("value-max") ),
714 _xAttributes );
715 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Spin") ),
716 OUString( RTL_CONSTASCII_USTRINGPARAM("spin") ),
717 _xAttributes );
718 if (ctx.importLongProperty( OUSTR("RepeatDelay"), OUSTR("repeat"),
719 _xAttributes ))
720 ctx.getControlModel()->setPropertyValue(
721 OUSTR("Repeat"), makeAny(true) );
722 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Dropdown") ),
723 OUString( RTL_CONSTASCII_USTRINGPARAM("dropdown") ),
724 _xAttributes );
725 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ),
726 OUString( RTL_CONSTASCII_USTRINGPARAM("text") ),
727 _xAttributes );
728 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("EnforceFormat") ),
729 OUString( RTL_CONSTASCII_USTRINGPARAM("enforce-format") ),
730 _xAttributes );
731 ctx.importEvents( _events );
732 // avoid ring-reference:
733 // vector< event elements > holding event elements holding this (via _pParent)
734 _events.clear();
735 }
736
737 //##################################################################################################
738
739 // currencyfield
740 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)741 Reference< xml::input::XElement > CurrencyFieldElement::startChildElement(
742 sal_Int32 nUid, OUString const & rLocalName,
743 Reference< xml::input::XAttributes > const & xAttributes )
744 throw (xml::sax::SAXException, RuntimeException)
745 {
746 // event
747 if (_pImport->isEventElement( nUid, rLocalName ))
748 {
749 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
750 }
751 else
752 {
753 throw xml::sax::SAXException(
754 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
755 Reference< XInterface >(), Any() );
756 }
757 }
758 //__________________________________________________________________________________________________
endElement()759 void CurrencyFieldElement::endElement()
760 throw (xml::sax::SAXException, RuntimeException)
761 {
762 ControlImportContext ctx(
763 _pImport, getControlId( _xAttributes ),
764 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlCurrencyFieldModel") ) );
765
766 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
767 if (xStyle.is())
768 {
769 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
770 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
771 pStyle->importBackgroundColorStyle( xControlModel );
772 pStyle->importTextColorStyle( xControlModel );
773 pStyle->importTextLineColorStyle( xControlModel );
774 pStyle->importBorderStyle( xControlModel );
775 pStyle->importFontStyle( xControlModel );
776 }
777
778 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
779 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
780 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
781 _xAttributes );
782 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
783 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
784 _xAttributes );
785 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
786 OUString( RTL_CONSTASCII_USTRINGPARAM("strict-format") ),
787 _xAttributes );
788 ctx.importBooleanProperty(
789 OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
790 _xAttributes );
791 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("CurrencySymbol") ),
792 OUString( RTL_CONSTASCII_USTRINGPARAM("currency-symbol") ),
793 _xAttributes );
794 ctx.importShortProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("DecimalAccuracy") ),
795 OUString( RTL_CONSTASCII_USTRINGPARAM("decimal-accuracy") ),
796 _xAttributes );
797 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ShowThousandsSeparator") ),
798 OUString( RTL_CONSTASCII_USTRINGPARAM("thousands-separator") ),
799 _xAttributes );
800 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Value") ),
801 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
802 _xAttributes );
803 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ValueMin") ),
804 OUString( RTL_CONSTASCII_USTRINGPARAM("value-min") ),
805 _xAttributes );
806 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ValueMax") ),
807 OUString( RTL_CONSTASCII_USTRINGPARAM("value-max") ),
808 _xAttributes );
809 ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ValueStep") ),
810 OUString( RTL_CONSTASCII_USTRINGPARAM("value-step") ),
811 _xAttributes );
812 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Spin") ),
813 OUString( RTL_CONSTASCII_USTRINGPARAM("spin") ),
814 _xAttributes );
815 if (ctx.importLongProperty( OUSTR("RepeatDelay"), OUSTR("repeat"),
816 _xAttributes ))
817 ctx.getControlModel()->setPropertyValue(
818 OUSTR("Repeat"), makeAny(true) );
819 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("PrependCurrencySymbol") ),
820 OUString( RTL_CONSTASCII_USTRINGPARAM("prepend-symbol") ),
821 _xAttributes );
822 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("EnforceFormat") ),
823 OUString( RTL_CONSTASCII_USTRINGPARAM("enforce-format") ),
824 _xAttributes );
825 ctx.importEvents( _events );
826 // avoid ring-reference:
827 // vector< event elements > holding event elements holding this (via _pParent)
828 _events.clear();
829 }
830
831 //##################################################################################################
832
833 // filecontrol
834 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)835 Reference< xml::input::XElement > FileControlElement::startChildElement(
836 sal_Int32 nUid, OUString const & rLocalName,
837 Reference< xml::input::XAttributes > const & xAttributes )
838 throw (xml::sax::SAXException, RuntimeException)
839 {
840 // event
841 if (_pImport->isEventElement( nUid, rLocalName ))
842 {
843 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
844 }
845 else
846 {
847 throw xml::sax::SAXException(
848 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
849 Reference< XInterface >(), Any() );
850 }
851 }
852 //__________________________________________________________________________________________________
endElement()853 void FileControlElement::endElement()
854 throw (xml::sax::SAXException, RuntimeException)
855 {
856 ControlImportContext ctx(
857 _pImport, getControlId( _xAttributes ),
858 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFileControlModel") ) );
859
860 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
861 if (xStyle.is())
862 {
863 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
864 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
865 pStyle->importBackgroundColorStyle( xControlModel );
866 pStyle->importTextColorStyle( xControlModel );
867 pStyle->importTextLineColorStyle( xControlModel );
868 pStyle->importBorderStyle( xControlModel );
869 pStyle->importFontStyle( xControlModel );
870 }
871
872 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
873 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
874 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
875 _xAttributes );
876 ctx.importBooleanProperty(
877 OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
878 _xAttributes );
879 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ),
880 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
881 _xAttributes );
882 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
883 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
884 _xAttributes );
885 ctx.importEvents( _events );
886 // avoid ring-reference:
887 // vector< event elements > holding event elements holding this (via _pParent)
888 _events.clear();
889 }
890 //##################################################################################################
891
892 // treecontrol
893 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)894 Reference< xml::input::XElement > TreeControlElement::startChildElement(
895 sal_Int32 nUid, OUString const & rLocalName,
896 Reference< xml::input::XAttributes > const & xAttributes )
897 throw (xml::sax::SAXException, RuntimeException)
898 {
899 // event
900 if (_pImport->isEventElement( nUid, rLocalName ))
901 {
902 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
903 }
904 else
905 {
906 throw xml::sax::SAXException(
907 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
908 Reference< XInterface >(), Any() );
909 }
910 }
911 //__________________________________________________________________________________________________
endElement()912 void TreeControlElement::endElement()
913 throw (xml::sax::SAXException, RuntimeException)
914 {
915 ControlImportContext ctx(
916 _pImport, getControlId( _xAttributes ),
917 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.tree.TreeControlModel") ) );
918
919 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
920 if (xStyle.is())
921 {
922 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
923 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
924 pStyle->importBackgroundColorStyle( xControlModel );
925 pStyle->importBorderStyle( xControlModel );
926 }
927
928 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
929 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
930 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
931 _xAttributes );
932 ctx.importSelectionTypeProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("SelectionType") ),
933 OUString( RTL_CONSTASCII_USTRINGPARAM("selectiontype") ),
934 _xAttributes );
935 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("RootDisplayed") ),
936 OUString( RTL_CONSTASCII_USTRINGPARAM("rootdisplayed") ),
937 _xAttributes );
938 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ShowsHandles") ),
939 OUString( RTL_CONSTASCII_USTRINGPARAM("showshandles") ),
940 _xAttributes );
941 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ShowsRootHandles") ),
942 OUString( RTL_CONSTASCII_USTRINGPARAM("showsroothandles") ),
943 _xAttributes );
944 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Editable") ),
945 OUString( RTL_CONSTASCII_USTRINGPARAM("editable") ),
946 _xAttributes );
947 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("RowHeight") ),
948 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
949 _xAttributes );
950 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("InvokesStopNodeEditing") ),
951 OUString( RTL_CONSTASCII_USTRINGPARAM("invokesstopnodeediting") ),
952 _xAttributes );
953
954 ctx.importEvents( _events );
955 // avoid ring-reference:
956 // vector< event elements > holding event elements holding this (via _pParent)
957 _events.clear();
958 }
959
960 //##################################################################################################
961
962 // imagecontrol
963 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)964 Reference< xml::input::XElement > ImageControlElement::startChildElement(
965 sal_Int32 nUid, OUString const & rLocalName,
966 Reference< xml::input::XAttributes > const & xAttributes )
967 throw (xml::sax::SAXException, RuntimeException)
968 {
969 // event
970 if (_pImport->isEventElement( nUid, rLocalName ))
971 {
972 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
973 }
974 else
975 {
976 throw xml::sax::SAXException(
977 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
978 Reference< XInterface >(), Any() );
979 }
980 }
981 //__________________________________________________________________________________________________
endElement()982 void ImageControlElement::endElement()
983 throw (xml::sax::SAXException, RuntimeException)
984 {
985 ControlImportContext ctx(
986 _pImport, getControlId( _xAttributes ),
987 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlImageControlModel") ) );
988
989 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
990 if (xStyle.is())
991 {
992 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
993 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
994 pStyle->importBackgroundColorStyle( xControlModel );
995 pStyle->importBorderStyle( xControlModel );
996 }
997
998 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
999 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleImage") ),
1000 OUString( RTL_CONSTASCII_USTRINGPARAM("scale-image") ),
1001 _xAttributes );
1002 ctx.importImageScaleModeProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleMode") ),
1003 OUString( RTL_CONSTASCII_USTRINGPARAM("scale-mode") ),
1004 _xAttributes );
1005 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImageURL") ),
1006 OUString( RTL_CONSTASCII_USTRINGPARAM("src") ),
1007 _xAttributes );
1008 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
1009 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
1010 _xAttributes );
1011 ctx.importEvents( _events );
1012 // avoid ring-reference:
1013 // vector< event elements > holding event elements holding this (via _pParent)
1014 _events.clear();
1015 }
1016
1017 //##################################################################################################
1018
1019 // textfield
1020 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1021 Reference< xml::input::XElement > TextElement::startChildElement(
1022 sal_Int32 nUid, OUString const & rLocalName,
1023 Reference< xml::input::XAttributes > const & xAttributes )
1024 throw (xml::sax::SAXException, RuntimeException)
1025 {
1026 // event
1027 if (_pImport->isEventElement( nUid, rLocalName ))
1028 {
1029 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
1030 }
1031 else
1032 {
1033 throw xml::sax::SAXException(
1034 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
1035 Reference< XInterface >(), Any() );
1036 }
1037 }
1038 //__________________________________________________________________________________________________
endElement()1039 void TextElement::endElement()
1040 throw (xml::sax::SAXException, RuntimeException)
1041 {
1042 ControlImportContext ctx(
1043 _pImport, getControlId( _xAttributes ),
1044 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFixedTextModel") ) );
1045
1046 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
1047 if (xStyle.is())
1048 {
1049 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
1050 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
1051 pStyle->importBackgroundColorStyle( xControlModel );
1052 pStyle->importTextColorStyle( xControlModel );
1053 pStyle->importTextLineColorStyle( xControlModel );
1054 pStyle->importBorderStyle( xControlModel );
1055 pStyle->importFontStyle( xControlModel );
1056 }
1057
1058 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
1059 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
1060 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
1061 _xAttributes );
1062 ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
1063 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
1064 _xAttributes );
1065 ctx.importVerticalAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("VerticalAlign") ),
1066 OUString( RTL_CONSTASCII_USTRINGPARAM("valign") ),
1067 _xAttributes );
1068 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
1069 OUString( RTL_CONSTASCII_USTRINGPARAM("multiline") ),
1070 _xAttributes );
1071 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
1072 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
1073 _xAttributes );
1074 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("NoLabel") ),
1075 OUString( RTL_CONSTASCII_USTRINGPARAM("nolabel") ),
1076 _xAttributes );
1077 ctx.importEvents( _events );
1078 // avoid ring-reference:
1079 // vector< event elements > holding event elements holding this (via _pParent)
1080 _events.clear();
1081 }
1082
1083 //##################################################################################################
1084 // FixedHyperLink
1085 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1086 Reference< xml::input::XElement > FixedHyperLinkElement::startChildElement(
1087 sal_Int32 nUid, OUString const & rLocalName,
1088 Reference< xml::input::XAttributes > const & xAttributes )
1089 throw (xml::sax::SAXException, RuntimeException)
1090 {
1091 // event
1092 if (_pImport->isEventElement( nUid, rLocalName ))
1093 {
1094 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
1095 }
1096 else
1097 {
1098 throw xml::sax::SAXException(
1099 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
1100 Reference< XInterface >(), Any() );
1101 }
1102 }
1103 //__________________________________________________________________________________________________
endElement()1104 void FixedHyperLinkElement::endElement()
1105 throw (xml::sax::SAXException, RuntimeException)
1106 {
1107 ControlImportContext ctx(
1108 _pImport, getControlId( _xAttributes ),
1109 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFixedHyperlinkModel") ) );
1110
1111 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
1112 if (xStyle.is())
1113 {
1114 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
1115 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
1116 pStyle->importBackgroundColorStyle( xControlModel );
1117 pStyle->importTextColorStyle( xControlModel );
1118 pStyle->importTextLineColorStyle( xControlModel );
1119 pStyle->importBorderStyle( xControlModel );
1120 pStyle->importFontStyle( xControlModel );
1121 }
1122
1123 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
1124 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
1125 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
1126 _xAttributes );
1127 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("URL") ),
1128 OUString( RTL_CONSTASCII_USTRINGPARAM("url") ),
1129 _xAttributes );
1130 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Description") ),
1131 OUString( RTL_CONSTASCII_USTRINGPARAM("description") ),
1132 _xAttributes );
1133
1134 ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
1135 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
1136 _xAttributes );
1137 ctx.importVerticalAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("VerticalAlign") ),
1138 OUString( RTL_CONSTASCII_USTRINGPARAM("valign") ),
1139 _xAttributes );
1140 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
1141 OUString( RTL_CONSTASCII_USTRINGPARAM("multiline") ),
1142 _xAttributes );
1143 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
1144 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
1145 _xAttributes );
1146 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("NoLabel") ),
1147 OUString( RTL_CONSTASCII_USTRINGPARAM("nolabel") ),
1148 _xAttributes );
1149 ctx.importEvents( _events );
1150 // avoid ring-reference:
1151 // vector< event elements > holding event elements holding this (via _pParent)
1152 _events.clear();
1153 }
1154
1155 //##################################################################################################
1156
1157 // edit
1158 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1159 Reference< xml::input::XElement > TextFieldElement::startChildElement(
1160 sal_Int32 nUid, OUString const & rLocalName,
1161 Reference< xml::input::XAttributes > const & xAttributes )
1162 throw (xml::sax::SAXException, RuntimeException)
1163 {
1164 // event
1165 if (_pImport->isEventElement( nUid, rLocalName ))
1166 {
1167 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
1168 }
1169 else
1170 {
1171 throw xml::sax::SAXException(
1172 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
1173 Reference< XInterface >(), Any() );
1174 }
1175 }
1176 //__________________________________________________________________________________________________
endElement()1177 void TextFieldElement::endElement()
1178 throw (xml::sax::SAXException, RuntimeException)
1179 {
1180 ControlImportContext ctx(
1181 _pImport, getControlId( _xAttributes ),
1182 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlEditModel") ) );
1183 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
1184
1185 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
1186 if (xStyle.is())
1187 {
1188 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
1189 pStyle->importBackgroundColorStyle( xControlModel );
1190 pStyle->importTextColorStyle( xControlModel );
1191 pStyle->importTextLineColorStyle( xControlModel );
1192 pStyle->importBorderStyle( xControlModel );
1193 pStyle->importFontStyle( xControlModel );
1194 }
1195
1196 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
1197 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
1198 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
1199 _xAttributes );
1200 ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
1201 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
1202 _xAttributes );
1203 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("HardLineBreaks") ),
1204 OUString( RTL_CONSTASCII_USTRINGPARAM("hard-linebreaks") ),
1205 _xAttributes );
1206 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("HScroll") ),
1207 OUString( RTL_CONSTASCII_USTRINGPARAM("hscroll") ),
1208 _xAttributes );
1209 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("VScroll") ),
1210 OUString( RTL_CONSTASCII_USTRINGPARAM("vscroll") ),
1211 _xAttributes );
1212 ctx.importBooleanProperty(
1213 OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
1214 _xAttributes );
1215 ctx.importShortProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MaxTextLen") ),
1216 OUString( RTL_CONSTASCII_USTRINGPARAM("maxlength") ),
1217 _xAttributes );
1218 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
1219 OUString( RTL_CONSTASCII_USTRINGPARAM("multiline") ),
1220 _xAttributes );
1221 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
1222 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
1223 _xAttributes );
1224 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ),
1225 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
1226 _xAttributes );
1227 ctx.importLineEndFormatProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("LineEndFormat") ),
1228 OUString( RTL_CONSTASCII_USTRINGPARAM("lineend-format") ),
1229 _xAttributes );
1230 OUString aValue;
1231 if (getStringAttr( &aValue,
1232 OUString( RTL_CONSTASCII_USTRINGPARAM("echochar") ),
1233 _xAttributes,
1234 _pImport->XMLNS_DIALOGS_UID ) &&
1235 aValue.getLength() > 0)
1236 {
1237 OSL_ENSURE( aValue.getLength() == 1, "### more than one character given for echochar!" );
1238 sal_Int16 nChar = (sal_Int16)aValue[ 0 ];
1239 xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("EchoChar") ),
1240 makeAny( nChar ) );
1241 }
1242
1243 ctx.importEvents( _events );
1244 // avoid ring-reference:
1245 // vector< event elements > holding event elements holding this (via _pParent)
1246 _events.clear();
1247 }
1248
1249 //##################################################################################################
1250
1251 // titledbox
1252 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1253 Reference< xml::input::XElement > TitledBoxElement::startChildElement(
1254 sal_Int32 nUid, OUString const & rLocalName,
1255 Reference< xml::input::XAttributes > const & xAttributes )
1256 throw (xml::sax::SAXException, RuntimeException)
1257 {
1258 // event
1259 if (_pImport->isEventElement( nUid, rLocalName ))
1260 {
1261 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
1262 }
1263 else if (_pImport->XMLNS_DIALOGS_UID != nUid)
1264 {
1265 throw xml::sax::SAXException(
1266 OUString( RTL_CONSTASCII_USTRINGPARAM("illegal namespace!") ),
1267 Reference< XInterface >(), Any() );
1268 }
1269 // title
1270 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("title") ))
1271 {
1272 getStringAttr( &_label,
1273 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
1274 xAttributes,
1275 _pImport->XMLNS_DIALOGS_UID );
1276
1277 return new ElementBase(
1278 _pImport->XMLNS_DIALOGS_UID,
1279 rLocalName, xAttributes, this, _pImport );
1280 }
1281 // radio
1282 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("radio") ))
1283 {
1284 // dont create radios here, => titledbox must be inserted first due to radio grouping,
1285 // possible predecessors!
1286 Reference< xml::input::XElement > xRet(
1287 new RadioElement( rLocalName, xAttributes, this, _pImport ) );
1288 _radios.push_back( xRet );
1289 return xRet;
1290 }
1291 // event
1292 else if (_pImport->isEventElement( nUid, rLocalName ))
1293 {
1294 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
1295 }
1296 else
1297 {
1298 return BulletinBoardElement::startChildElement( nUid, rLocalName, xAttributes );
1299 }
1300 }
1301 //__________________________________________________________________________________________________
endElement()1302 void TitledBoxElement::endElement()
1303 throw (xml::sax::SAXException, RuntimeException)
1304 {
1305 {
1306 ControlImportContext ctx(
1307 _pImport, getControlId( _xAttributes ),
1308 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlGroupBoxModel") ) );
1309 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
1310
1311 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
1312 if (xStyle.is())
1313 {
1314 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
1315 pStyle->importTextColorStyle( xControlModel );
1316 pStyle->importTextLineColorStyle( xControlModel );
1317 pStyle->importFontStyle( xControlModel );
1318 }
1319
1320 ctx.importDefaults( 0, 0, _xAttributes ); // inherited from BulletinBoardElement
1321
1322 if (_label.getLength())
1323 {
1324 xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
1325 makeAny( _label ) );
1326 }
1327
1328 ctx.importEvents( _events );
1329 // avoid ring-reference:
1330 // vector< event elements > holding event elements holding this (via _pParent)
1331 _events.clear();
1332 }
1333
1334 // create radios AFTER group box!
1335 for ( size_t nPos = 0; nPos < _radios.size(); ++nPos )
1336 {
1337 Reference< xml::input::XElement > xRadio( _radios[ nPos ] );
1338 Reference< xml::input::XAttributes > xAttributes(
1339 xRadio->getAttributes() );
1340
1341 ControlImportContext ctx(
1342 _pImport, getControlId( xAttributes ),
1343 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlRadioButtonModel") ) );
1344 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
1345
1346 Reference< xml::input::XElement > xStyle( getStyle( xAttributes ) );
1347 if (xStyle.is())
1348 {
1349 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
1350 pStyle->importBackgroundColorStyle( xControlModel );
1351 pStyle->importTextColorStyle( xControlModel );
1352 pStyle->importTextLineColorStyle( xControlModel );
1353 pStyle->importFontStyle( xControlModel );
1354 pStyle->importVisualEffectStyle( xControlModel );
1355 }
1356
1357 ctx.importDefaults( _nBasePosX, _nBasePosY, xAttributes );
1358 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
1359 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
1360 xAttributes );
1361 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
1362 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
1363 xAttributes );
1364 ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
1365 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
1366 xAttributes );
1367 ctx.importVerticalAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("VerticalAlign") ),
1368 OUString( RTL_CONSTASCII_USTRINGPARAM("valign") ),
1369 xAttributes );
1370 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImageURL") ),
1371 OUString( RTL_CONSTASCII_USTRINGPARAM("image-src") ),
1372 xAttributes );
1373 ctx.importImagePositionProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImagePosition") ),
1374 OUString( RTL_CONSTASCII_USTRINGPARAM("image-position") ),
1375 xAttributes );
1376 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
1377 OUString( RTL_CONSTASCII_USTRINGPARAM("multiline") ),
1378 xAttributes );
1379
1380 sal_Int16 nVal = 0;
1381 sal_Bool bChecked = sal_False;
1382 if (getBoolAttr( &bChecked,
1383 OUString( RTL_CONSTASCII_USTRINGPARAM("checked") ),
1384 xAttributes,
1385 _pImport->XMLNS_DIALOGS_UID ) &&
1386 bChecked)
1387 {
1388 nVal = 1;
1389 }
1390 xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("State") ),
1391 makeAny( nVal ) );
1392
1393 ::std::vector< Reference< xml::input::XElement > > * radioEvents =
1394 static_cast< RadioElement * >( xRadio.get() )->getEvents();
1395 ctx.importEvents( *radioEvents );
1396 // avoid ring-reference:
1397 // vector< event elements > holding event elements holding this (via _pParent)
1398 radioEvents->clear();
1399 }
1400 // avoid ring-reference:
1401 // vector< radio elements > holding radio elements holding this (via _pParent)
1402 _radios.clear();
1403 }
1404
1405 //##################################################################################################
1406
1407 // radio
1408 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1409 Reference< xml::input::XElement > RadioElement::startChildElement(
1410 sal_Int32 nUid, OUString const & rLocalName,
1411 Reference< xml::input::XAttributes > const & xAttributes )
1412 throw (xml::sax::SAXException, RuntimeException)
1413 {
1414 // event
1415 if (_pImport->isEventElement( nUid, rLocalName ))
1416 {
1417 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
1418 }
1419 else
1420 {
1421 throw xml::sax::SAXException(
1422 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
1423 Reference< XInterface >(), Any() );
1424 }
1425 }
1426
1427 //##################################################################################################
1428
1429 // radiogroup
1430 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1431 Reference< xml::input::XElement > RadioGroupElement::startChildElement(
1432 sal_Int32 nUid, OUString const & rLocalName,
1433 Reference< xml::input::XAttributes > const & xAttributes )
1434 throw (xml::sax::SAXException, RuntimeException)
1435 {
1436 if (_pImport->XMLNS_DIALOGS_UID != nUid)
1437 {
1438 throw xml::sax::SAXException(
1439 OUString( RTL_CONSTASCII_USTRINGPARAM("illegal namespace!") ),
1440 Reference< XInterface >(), Any() );
1441 }
1442 // radio
1443 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("radio") ))
1444 {
1445 // dont create radios here, => titledbox must be inserted first due to radio grouping,
1446 // possible predecessors!
1447 Reference< xml::input::XElement > xRet(
1448 new RadioElement( rLocalName, xAttributes, this, _pImport ) );
1449 _radios.push_back( xRet );
1450 return xRet;
1451 }
1452 else
1453 {
1454 throw xml::sax::SAXException(
1455 OUString( RTL_CONSTASCII_USTRINGPARAM("expected radio element!") ),
1456 Reference< XInterface >(), Any() );
1457 }
1458 }
1459 //__________________________________________________________________________________________________
endElement()1460 void RadioGroupElement::endElement()
1461 throw (xml::sax::SAXException, RuntimeException)
1462 {
1463 for ( size_t nPos = 0; nPos < _radios.size(); ++nPos )
1464 {
1465 Reference< xml::input::XElement > xRadio( _radios[ nPos ] );
1466 Reference< xml::input::XAttributes > xAttributes(
1467 xRadio->getAttributes() );
1468
1469 ControlImportContext ctx(
1470 _pImport, getControlId( xAttributes ),
1471 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlRadioButtonModel") ) );
1472 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
1473
1474 Reference< xml::input::XElement > xStyle( getStyle( xAttributes ) );
1475 if (xStyle.is())
1476 {
1477 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
1478 pStyle->importBackgroundColorStyle( xControlModel );
1479 pStyle->importTextColorStyle( xControlModel );
1480 pStyle->importTextLineColorStyle( xControlModel );
1481 pStyle->importFontStyle( xControlModel );
1482 pStyle->importVisualEffectStyle( xControlModel );
1483 }
1484
1485 ctx.importDefaults( _nBasePosX, _nBasePosY, xAttributes );
1486 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
1487 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
1488 xAttributes );
1489 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
1490 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
1491 xAttributes );
1492 ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
1493 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
1494 xAttributes );
1495 ctx.importVerticalAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("VerticalAlign") ),
1496 OUString( RTL_CONSTASCII_USTRINGPARAM("valign") ),
1497 xAttributes );
1498 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImageURL") ),
1499 OUString( RTL_CONSTASCII_USTRINGPARAM("image-src") ),
1500 xAttributes );
1501 ctx.importImagePositionProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImagePosition") ),
1502 OUString( RTL_CONSTASCII_USTRINGPARAM("image-position") ),
1503 xAttributes );
1504 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
1505 OUString( RTL_CONSTASCII_USTRINGPARAM("multiline") ),
1506 xAttributes );
1507 sal_Int16 nVal = 0;
1508 sal_Bool bChecked = sal_False;
1509 if (getBoolAttr( &bChecked,
1510 OUString( RTL_CONSTASCII_USTRINGPARAM("checked") ),
1511 xAttributes,
1512 _pImport->XMLNS_DIALOGS_UID ) &&
1513 bChecked)
1514 {
1515 nVal = 1;
1516 }
1517 xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("State") ),
1518 makeAny( nVal ) );
1519
1520 ::std::vector< Reference< xml::input::XElement > > * radioEvents =
1521 static_cast< RadioElement * >( xRadio.get() )->getEvents();
1522 ctx.importEvents( *radioEvents );
1523 // avoid ring-reference:
1524 // vector< event elements > holding event elements holding this (via _pParent)
1525 radioEvents->clear();
1526 }
1527 // avoid ring-reference:
1528 // vector< radio elements > holding radio elements holding this (via _pParent)
1529 _radios.clear();
1530 }
1531
1532 //##################################################################################################
1533
1534 // menupopup
1535 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1536 Reference< xml::input::XElement > MenuPopupElement::startChildElement(
1537 sal_Int32 nUid, OUString const & rLocalName,
1538 Reference< xml::input::XAttributes > const & xAttributes )
1539 throw (xml::sax::SAXException, RuntimeException)
1540 {
1541 if (_pImport->XMLNS_DIALOGS_UID != nUid)
1542 {
1543 throw xml::sax::SAXException(
1544 OUString( RTL_CONSTASCII_USTRINGPARAM("illegal namespace!") ),
1545 Reference< XInterface >(), Any() );
1546 }
1547 // menuitem
1548 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("menuitem") ))
1549 {
1550 OUString aValue(
1551 xAttributes->getValueByUidName(
1552 _pImport->XMLNS_DIALOGS_UID,
1553 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ) ) );
1554 OSL_ENSURE( aValue.getLength(), "### menuitem has no value?" );
1555 if (aValue.getLength())
1556 {
1557 _itemValues.push_back( aValue );
1558
1559 OUString aSel(
1560 xAttributes->getValueByUidName(
1561 _pImport->XMLNS_DIALOGS_UID,
1562 OUString( RTL_CONSTASCII_USTRINGPARAM("selected") ) ) );
1563 if (aSel.getLength() && aSel.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("true") ))
1564 {
1565 _itemSelected.push_back(
1566 static_cast<sal_Int16>(_itemValues.size()) -1 );
1567 }
1568 }
1569 return new ElementBase(
1570 _pImport->XMLNS_DIALOGS_UID,
1571 rLocalName, xAttributes, this, _pImport );
1572 }
1573 else
1574 {
1575 throw xml::sax::SAXException(
1576 OUString( RTL_CONSTASCII_USTRINGPARAM("expected menuitem!") ),
1577 Reference< XInterface >(), Any() );
1578 }
1579 }
1580 //__________________________________________________________________________________________________
getItemValues()1581 Sequence< OUString > MenuPopupElement::getItemValues()
1582 {
1583 Sequence< OUString > aRet( _itemValues.size() );
1584 OUString * pRet = aRet.getArray();
1585 for ( size_t nPos = _itemValues.size(); nPos--; )
1586 {
1587 pRet[ nPos ] = _itemValues[ nPos ];
1588 }
1589 return aRet;
1590 }
1591 //__________________________________________________________________________________________________
getSelectedItems()1592 Sequence< sal_Int16 > MenuPopupElement::getSelectedItems()
1593 {
1594 Sequence< sal_Int16 > aRet( _itemSelected.size() );
1595 sal_Int16 * pRet = aRet.getArray();
1596 for ( size_t nPos = _itemSelected.size(); nPos--; )
1597 {
1598 pRet[ nPos ] = _itemSelected[ nPos ];
1599 }
1600 return aRet;
1601 }
1602
1603 //##################################################################################################
1604
1605 // menulist
1606 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1607 Reference< xml::input::XElement > MenuListElement::startChildElement(
1608 sal_Int32 nUid, OUString const & rLocalName,
1609 Reference< xml::input::XAttributes > const & xAttributes )
1610 throw (xml::sax::SAXException, RuntimeException)
1611 {
1612 // event
1613 if (_pImport->isEventElement( nUid, rLocalName ))
1614 {
1615 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
1616 }
1617 else if (_pImport->XMLNS_DIALOGS_UID != nUid)
1618 {
1619 throw xml::sax::SAXException(
1620 OUString( RTL_CONSTASCII_USTRINGPARAM("illegal namespace!") ),
1621 Reference< XInterface >(), Any() );
1622 }
1623 // menupopup
1624 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("menupopup") ))
1625 {
1626 _popup = new MenuPopupElement( rLocalName, xAttributes, this, _pImport );
1627 return _popup;
1628 }
1629 else
1630 {
1631 throw xml::sax::SAXException(
1632 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event or menupopup element!") ),
1633 Reference< XInterface >(), Any() );
1634 }
1635 }
1636 //__________________________________________________________________________________________________
endElement()1637 void MenuListElement::endElement()
1638 throw (xml::sax::SAXException, RuntimeException)
1639 {
1640 ControlImportContext ctx(
1641 _pImport, getControlId( _xAttributes ),
1642 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlListBoxModel") ) );
1643 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
1644
1645 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
1646 if (xStyle.is())
1647 {
1648 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
1649 pStyle->importBackgroundColorStyle( xControlModel );
1650 pStyle->importTextColorStyle( xControlModel );
1651 pStyle->importTextLineColorStyle( xControlModel );
1652 pStyle->importBorderStyle( xControlModel );
1653 pStyle->importFontStyle( xControlModel );
1654 }
1655
1656 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
1657 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
1658 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
1659 _xAttributes );
1660 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiSelection") ),
1661 OUString( RTL_CONSTASCII_USTRINGPARAM("multiselection") ),
1662 _xAttributes );
1663 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
1664 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
1665 _xAttributes );
1666 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Dropdown") ),
1667 OUString( RTL_CONSTASCII_USTRINGPARAM("spin") ),
1668 _xAttributes );
1669 ctx.importShortProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("LineCount") ),
1670 OUString( RTL_CONSTASCII_USTRINGPARAM("linecount") ),
1671 _xAttributes );
1672 ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
1673 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
1674 _xAttributes );
1675
1676 if (_popup.is())
1677 {
1678 MenuPopupElement * p = static_cast< MenuPopupElement * >( _popup.get() );
1679 xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("StringItemList") ),
1680 makeAny( p->getItemValues() ) );
1681 xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("SelectedItems") ),
1682 makeAny( p->getSelectedItems() ) );
1683 }
1684 ctx.importEvents( _events );
1685 // avoid ring-reference:
1686 // vector< event elements > holding event elements holding this (via _pParent)
1687 _events.clear();
1688 }
1689
1690 //##################################################################################################
1691
1692 // combobox
1693 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1694 Reference< xml::input::XElement > ComboBoxElement::startChildElement(
1695 sal_Int32 nUid, OUString const & rLocalName,
1696 Reference< xml::input::XAttributes > const & xAttributes )
1697 throw (xml::sax::SAXException, RuntimeException)
1698 {
1699 // event
1700 if (_pImport->isEventElement( nUid, rLocalName ))
1701 {
1702 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
1703 }
1704 else if (_pImport->XMLNS_DIALOGS_UID != nUid)
1705 {
1706 throw xml::sax::SAXException(
1707 OUString( RTL_CONSTASCII_USTRINGPARAM("illegal namespace!") ),
1708 Reference< XInterface >(), Any() );
1709 }
1710 // menupopup
1711 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("menupopup") ))
1712 {
1713 _popup = new MenuPopupElement( rLocalName, xAttributes, this, _pImport );
1714 return _popup;
1715 }
1716 else
1717 {
1718 throw xml::sax::SAXException(
1719 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event or menupopup element!") ),
1720 Reference< XInterface >(), Any() );
1721 }
1722 }
1723 //__________________________________________________________________________________________________
endElement()1724 void ComboBoxElement::endElement()
1725 throw (xml::sax::SAXException, RuntimeException)
1726 {
1727 ControlImportContext ctx(
1728 _pImport, getControlId( _xAttributes ),
1729 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlComboBoxModel") ) );
1730 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
1731
1732 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
1733 if (xStyle.is())
1734 {
1735 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
1736 pStyle->importBackgroundColorStyle( xControlModel );
1737 pStyle->importTextColorStyle( xControlModel );
1738 pStyle->importTextLineColorStyle( xControlModel );
1739 pStyle->importBorderStyle( xControlModel );
1740 pStyle->importFontStyle( xControlModel );
1741 }
1742
1743 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
1744 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
1745 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
1746 _xAttributes );
1747 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
1748 OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
1749 _xAttributes );
1750 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Autocomplete") ),
1751 OUString( RTL_CONSTASCII_USTRINGPARAM("autocomplete") ),
1752 _xAttributes );
1753 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Dropdown") ),
1754 OUString( RTL_CONSTASCII_USTRINGPARAM("spin") ),
1755 _xAttributes );
1756 ctx.importBooleanProperty(
1757 OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
1758 _xAttributes );
1759 ctx.importShortProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MaxTextLen") ),
1760 OUString( RTL_CONSTASCII_USTRINGPARAM("maxlength") ),
1761 _xAttributes );
1762 ctx.importShortProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("LineCount") ),
1763 OUString( RTL_CONSTASCII_USTRINGPARAM("linecount") ),
1764 _xAttributes );
1765 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ),
1766 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
1767 _xAttributes );
1768 ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
1769 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
1770 _xAttributes );
1771
1772 if (_popup.is())
1773 {
1774 MenuPopupElement * p = static_cast< MenuPopupElement * >( _popup.get() );
1775 xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("StringItemList") ),
1776 makeAny( p->getItemValues() ) );
1777 }
1778
1779 ctx.importEvents( _events );
1780 // avoid ring-reference:
1781 // vector< event elements > holding event elements holding this (via _pParent)
1782 _events.clear();
1783 }
1784
1785 //##################################################################################################
1786
1787 // checkbox
1788 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1789 Reference< xml::input::XElement > CheckBoxElement::startChildElement(
1790 sal_Int32 nUid, OUString const & rLocalName,
1791 Reference< xml::input::XAttributes > const & xAttributes )
1792 throw (xml::sax::SAXException, RuntimeException)
1793 {
1794 // event
1795 if (_pImport->isEventElement( nUid, rLocalName ))
1796 {
1797 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
1798 }
1799 else
1800 {
1801 throw xml::sax::SAXException(
1802 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
1803 Reference< XInterface >(), Any() );
1804 }
1805 }
1806 //__________________________________________________________________________________________________
endElement()1807 void CheckBoxElement::endElement()
1808 throw (xml::sax::SAXException, RuntimeException)
1809 {
1810 ControlImportContext ctx(
1811 _pImport, getControlId( _xAttributes ),
1812 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlCheckBoxModel") ) );
1813 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
1814
1815 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
1816 if (xStyle.is())
1817 {
1818 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
1819 pStyle->importBackgroundColorStyle( xControlModel );
1820 pStyle->importTextColorStyle( xControlModel );
1821 pStyle->importTextLineColorStyle( xControlModel );
1822 pStyle->importFontStyle( xControlModel );
1823 pStyle->importVisualEffectStyle( xControlModel );
1824 }
1825
1826 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
1827 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
1828 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
1829 _xAttributes );
1830 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
1831 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
1832 _xAttributes );
1833 ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
1834 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
1835 _xAttributes );
1836 ctx.importVerticalAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("VerticalAlign") ),
1837 OUString( RTL_CONSTASCII_USTRINGPARAM("valign") ),
1838 _xAttributes );
1839 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImageURL") ),
1840 OUString( RTL_CONSTASCII_USTRINGPARAM("image-src") ),
1841 _xAttributes );
1842 ctx.importImagePositionProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImagePosition") ),
1843 OUString( RTL_CONSTASCII_USTRINGPARAM("image-position") ),
1844 _xAttributes );
1845 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
1846 OUString( RTL_CONSTASCII_USTRINGPARAM("multiline") ),
1847 _xAttributes );
1848
1849
1850 sal_Bool bTriState = sal_False;
1851 if (getBoolAttr( &bTriState,
1852 OUString( RTL_CONSTASCII_USTRINGPARAM("tristate") ),
1853 _xAttributes,
1854 _pImport->XMLNS_DIALOGS_UID ))
1855 {
1856 xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("TriState") ),
1857 makeAny( bTriState ) );
1858 }
1859 sal_Bool bChecked = sal_False;
1860 if (getBoolAttr( &bChecked,
1861 OUString( RTL_CONSTASCII_USTRINGPARAM("checked") ),
1862 _xAttributes,
1863 _pImport->XMLNS_DIALOGS_UID ))
1864 {
1865 // has "checked" attribute
1866 sal_Int16 nVal = (bChecked ? 1 : 0);
1867 xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("State") ),
1868 makeAny( nVal ) );
1869 }
1870 else
1871 {
1872 sal_Int16 nVal = (bTriState ? 2 : 0); // if tristate set, but checked omitted => dont know!
1873 xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("State") ),
1874 makeAny( nVal ) );
1875 }
1876
1877 ctx.importEvents( _events );
1878 // avoid ring-reference:
1879 // vector< event elements > holding event elements holding this (via _pParent)
1880 _events.clear();
1881 }
1882
1883 //##################################################################################################
1884
1885 // button
1886 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1887 Reference< xml::input::XElement > ButtonElement::startChildElement(
1888 sal_Int32 nUid, OUString const & rLocalName,
1889 Reference< xml::input::XAttributes > const & xAttributes )
1890 throw (xml::sax::SAXException, RuntimeException)
1891 {
1892 // event
1893 if (_pImport->isEventElement( nUid, rLocalName ))
1894 {
1895 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
1896 }
1897 else
1898 {
1899 throw xml::sax::SAXException(
1900 OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
1901 Reference< XInterface >(), Any() );
1902 }
1903 }
1904 //__________________________________________________________________________________________________
endElement()1905 void ButtonElement::endElement()
1906 throw (xml::sax::SAXException, RuntimeException)
1907 {
1908 ControlImportContext ctx(
1909 _pImport, getControlId( _xAttributes ),
1910 OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlButtonModel") ) );
1911
1912 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
1913 if (xStyle.is())
1914 {
1915 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
1916 Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
1917 pStyle->importBackgroundColorStyle( xControlModel );
1918 pStyle->importTextColorStyle( xControlModel );
1919 pStyle->importTextLineColorStyle( xControlModel );
1920 pStyle->importFontStyle( xControlModel );
1921 }
1922
1923 ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
1924 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
1925 OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
1926 _xAttributes );
1927 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
1928 OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
1929 _xAttributes );
1930 ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
1931 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
1932 _xAttributes );
1933 ctx.importVerticalAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("VerticalAlign") ),
1934 OUString( RTL_CONSTASCII_USTRINGPARAM("valign") ),
1935 _xAttributes );
1936 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("DefaultButton") ),
1937 OUString( RTL_CONSTASCII_USTRINGPARAM("default") ),
1938 _xAttributes );
1939 ctx.importButtonTypeProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("PushButtonType") ),
1940 OUString( RTL_CONSTASCII_USTRINGPARAM("button-type") ),
1941 _xAttributes );
1942 ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImageURL") ),
1943 OUString( RTL_CONSTASCII_USTRINGPARAM("image-src") ),
1944 _xAttributes );
1945 ctx.importImagePositionProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImagePosition") ),
1946 OUString( RTL_CONSTASCII_USTRINGPARAM("image-position") ),
1947 _xAttributes );
1948 ctx.importImageAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImageAlign") ),
1949 OUString( RTL_CONSTASCII_USTRINGPARAM("image-align") ),
1950 _xAttributes );
1951 if (ctx.importLongProperty( OUSTR("RepeatDelay"), OUSTR("repeat"),
1952 _xAttributes ))
1953 ctx.getControlModel()->setPropertyValue(
1954 OUSTR("Repeat"), makeAny(true) );
1955 sal_Int32 toggled = 0;
1956 if (getLongAttr( &toggled, OUSTR("toggled"), _xAttributes,
1957 _pImport->XMLNS_DIALOGS_UID ) && toggled == 1)
1958 ctx.getControlModel()->setPropertyValue(OUSTR("Toggle"), makeAny(true));
1959 ctx.importBooleanProperty( OUSTR("FocusOnClick"), OUSTR("grab-focus"),
1960 _xAttributes );
1961 ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
1962 OUString( RTL_CONSTASCII_USTRINGPARAM("multiline") ),
1963 _xAttributes );
1964 // State
1965 sal_Bool bChecked = sal_False;
1966 if (getBoolAttr(
1967 &bChecked,
1968 OUString( RTL_CONSTASCII_USTRINGPARAM("checked") ),
1969 _xAttributes,
1970 _pImport->XMLNS_DIALOGS_UID ) &&
1971 bChecked)
1972 {
1973 sal_Int16 nVal = 1;
1974 ctx.getControlModel()->setPropertyValue(
1975 OUString( RTL_CONSTASCII_USTRINGPARAM("State") ), makeAny( nVal ) );
1976 }
1977
1978 ctx.importEvents( _events );
1979 // avoid ring-reference:
1980 // vector< event elements > holding event elements holding this (via _pParent)
1981 _events.clear();
1982 }
1983
1984 //##################################################################################################
1985
1986 // bulletinboard
1987 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)1988 Reference< xml::input::XElement > BulletinBoardElement::startChildElement(
1989 sal_Int32 nUid, OUString const & rLocalName,
1990 Reference< xml::input::XAttributes > const & xAttributes )
1991 throw (xml::sax::SAXException, RuntimeException)
1992 {
1993 if (_pImport->XMLNS_DIALOGS_UID != nUid)
1994 {
1995 throw xml::sax::SAXException(
1996 OUString( RTL_CONSTASCII_USTRINGPARAM("illegal namespace!") ),
1997 Reference< XInterface >(), Any() );
1998 }
1999 // button
2000 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("button") ))
2001 {
2002 return new ButtonElement( rLocalName, xAttributes, this, _pImport );
2003 }
2004 // checkbox
2005 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("checkbox") ))
2006 {
2007 return new CheckBoxElement( rLocalName, xAttributes, this, _pImport );
2008 }
2009 // combobox
2010 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("combobox") ))
2011 {
2012 return new ComboBoxElement( rLocalName, xAttributes, this, _pImport );
2013 }
2014 // listbox
2015 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("menulist") ))
2016 {
2017 return new MenuListElement( rLocalName, xAttributes, this, _pImport );
2018 }
2019 // radiogroup
2020 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("radiogroup") ))
2021 {
2022 return new RadioGroupElement( rLocalName, xAttributes, this, _pImport );
2023 }
2024 // titledbox
2025 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("titledbox") ))
2026 {
2027 return new TitledBoxElement( rLocalName, xAttributes, this, _pImport );
2028 }
2029 // text
2030 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("text") ))
2031 {
2032 return new TextElement( rLocalName, xAttributes, this, _pImport );
2033 }
2034 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("linklabel") ))
2035 {
2036 return new FixedHyperLinkElement( rLocalName, xAttributes, this, _pImport );
2037 }
2038 // textfield
2039 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("textfield") ))
2040 {
2041 return new TextFieldElement( rLocalName, xAttributes, this, _pImport );
2042 }
2043 // img
2044 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("img") ))
2045 {
2046 return new ImageControlElement( rLocalName, xAttributes, this, _pImport );
2047 }
2048 // filecontrol
2049 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("filecontrol") ))
2050 {
2051 return new FileControlElement( rLocalName, xAttributes, this, _pImport );
2052 }
2053 // treecontrol
2054 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("treecontrol") ))
2055 {
2056 return new TreeControlElement( rLocalName, xAttributes, this, _pImport );
2057 }
2058 // currencyfield
2059 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("currencyfield") ))
2060 {
2061 return new CurrencyFieldElement( rLocalName, xAttributes, this, _pImport );
2062 }
2063 // datefield
2064 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("datefield") ))
2065 {
2066 return new DateFieldElement( rLocalName, xAttributes, this, _pImport );
2067 }
2068 // datefield
2069 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("numericfield") ))
2070 {
2071 return new NumericFieldElement( rLocalName, xAttributes, this, _pImport );
2072 }
2073 // timefield
2074 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("timefield") ))
2075 {
2076 return new TimeFieldElement( rLocalName, xAttributes, this, _pImport );
2077 }
2078 // patternfield
2079 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("patternfield") ))
2080 {
2081 return new PatternFieldElement( rLocalName, xAttributes, this, _pImport );
2082 }
2083 // formattedfield
2084 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("formattedfield") ))
2085 {
2086 return new FormattedFieldElement( rLocalName, xAttributes, this, _pImport );
2087 }
2088 // fixedline
2089 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("fixedline") ))
2090 {
2091 return new FixedLineElement( rLocalName, xAttributes, this, _pImport );
2092 }
2093 // scrollbar
2094 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("scrollbar") ))
2095 {
2096 return new ScrollBarElement( rLocalName, xAttributes, this, _pImport );
2097 }
2098 // progressmeter
2099 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("progressmeter") ))
2100 {
2101 return new ProgressBarElement( rLocalName, xAttributes, this, _pImport );
2102 }
2103 // bulletinboard
2104 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("bulletinboard") ))
2105 {
2106 return new BulletinBoardElement( rLocalName, xAttributes, this, _pImport );
2107 }
2108 else
2109 {
2110 throw xml::sax::SAXException(
2111 OUString( RTL_CONSTASCII_USTRINGPARAM("expected styles, bulletinboard or bulletinboard element, not: ") ) + rLocalName,
2112 Reference< XInterface >(), Any() );
2113 }
2114 }
2115 //__________________________________________________________________________________________________
BulletinBoardElement(OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)2116 BulletinBoardElement::BulletinBoardElement(
2117 OUString const & rLocalName,
2118 Reference< xml::input::XAttributes > const & xAttributes,
2119 ElementBase * pParent, DialogImport * pImport )
2120 SAL_THROW( () )
2121 : ControlElement( rLocalName, xAttributes, pParent, pImport )
2122 {
2123 OUString aValue(
2124 _xAttributes->getValueByUidName(
2125 _pImport->XMLNS_DIALOGS_UID,
2126 OUString( RTL_CONSTASCII_USTRINGPARAM("left") ) ) );
2127 if (aValue.getLength())
2128 {
2129 _nBasePosX += toInt32( aValue );
2130 }
2131 aValue = _xAttributes->getValueByUidName(
2132 _pImport->XMLNS_DIALOGS_UID,
2133 OUString( RTL_CONSTASCII_USTRINGPARAM("top") ) );
2134 if (aValue.getLength())
2135 {
2136 _nBasePosY += toInt32( aValue );
2137 }
2138 }
2139
2140 //##################################################################################################
2141
2142 // style
2143 //__________________________________________________________________________________________________
startChildElement(sal_Int32,OUString const &,Reference<xml::input::XAttributes> const &)2144 Reference< xml::input::XElement > StyleElement::startChildElement(
2145 sal_Int32 /*nUid*/, OUString const & /*rLocalName*/,
2146 Reference< xml::input::XAttributes > const & /*xAttributes*/ )
2147 throw (xml::sax::SAXException, RuntimeException)
2148 {
2149 throw xml::sax::SAXException(
2150 OUString( RTL_CONSTASCII_USTRINGPARAM("unexpected sub elements of style!") ),
2151 Reference< XInterface >(), Any() );
2152 }
2153 //__________________________________________________________________________________________________
endElement()2154 void StyleElement::endElement()
2155 throw (xml::sax::SAXException, RuntimeException)
2156 {
2157 Reference< xml::input::XAttributes > xStyle;
2158 OUString aStyleId(
2159 _xAttributes->getValueByUidName(
2160 _pImport->XMLNS_DIALOGS_UID,
2161 OUString( RTL_CONSTASCII_USTRINGPARAM("style-id") ) ) );
2162 if (aStyleId.getLength())
2163 {
2164 _pImport->addStyle( aStyleId, this );
2165 }
2166 else
2167 {
2168 throw xml::sax::SAXException(
2169 OUString( RTL_CONSTASCII_USTRINGPARAM("missing style-id attribute!") ),
2170 Reference< XInterface >(), Any() );
2171 }
2172 }
2173
2174 //##################################################################################################
2175
2176 // styles
2177 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)2178 Reference< xml::input::XElement > StylesElement::startChildElement(
2179 sal_Int32 nUid, OUString const & rLocalName,
2180 Reference< xml::input::XAttributes > const & xAttributes )
2181 throw (xml::sax::SAXException, RuntimeException)
2182 {
2183 if (_pImport->XMLNS_DIALOGS_UID != nUid)
2184 {
2185 throw xml::sax::SAXException(
2186 OUString( RTL_CONSTASCII_USTRINGPARAM("illegal namespace!") ),
2187 Reference< XInterface >(), Any() );
2188 }
2189 // style
2190 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("style") ))
2191 {
2192 return new StyleElement( rLocalName, xAttributes, this, _pImport );
2193 }
2194 else
2195 {
2196 throw xml::sax::SAXException(
2197 OUString( RTL_CONSTASCII_USTRINGPARAM("expected style element!") ),
2198 Reference< XInterface >(), Any() );
2199 }
2200 }
2201
2202 //##################################################################################################
2203
2204 // window
2205 //__________________________________________________________________________________________________
startChildElement(sal_Int32 nUid,OUString const & rLocalName,Reference<xml::input::XAttributes> const & xAttributes)2206 Reference< xml::input::XElement > WindowElement::startChildElement(
2207 sal_Int32 nUid, OUString const & rLocalName,
2208 Reference< xml::input::XAttributes > const & xAttributes )
2209 throw (xml::sax::SAXException, RuntimeException)
2210 {
2211 // event
2212 if (_pImport->isEventElement( nUid, rLocalName ))
2213 {
2214 return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
2215 }
2216 else if (_pImport->XMLNS_DIALOGS_UID != nUid)
2217 {
2218 throw xml::sax::SAXException(
2219 OUString( RTL_CONSTASCII_USTRINGPARAM("illegal namespace!") ),
2220 Reference< XInterface >(), Any() );
2221 }
2222 // styles
2223 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("styles") ))
2224 {
2225 return new StylesElement( rLocalName, xAttributes, this, _pImport );
2226 }
2227 // bulletinboard
2228 else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("bulletinboard") ))
2229 {
2230 return new BulletinBoardElement( rLocalName, xAttributes, this, _pImport );
2231 }
2232 else
2233 {
2234 throw xml::sax::SAXException(
2235 OUString( RTL_CONSTASCII_USTRINGPARAM("expected styles ot bulletinboard element!") ),
2236 Reference< XInterface >(), Any() );
2237 }
2238 }
2239 //__________________________________________________________________________________________________
endElement()2240 void WindowElement::endElement()
2241 throw (xml::sax::SAXException, RuntimeException)
2242 {
2243 Reference< beans::XPropertySet > xProps(
2244 _pImport->_xDialogModel, UNO_QUERY_THROW );
2245 ImportContext ctx( _pImport, xProps, getControlId( _xAttributes ) );
2246
2247 Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
2248 if (xStyle.is())
2249 {
2250 StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
2251 pStyle->importBackgroundColorStyle( xProps );
2252 pStyle->importTextColorStyle( xProps );
2253 pStyle->importTextLineColorStyle( xProps );
2254 pStyle->importFontStyle( xProps );
2255 }
2256
2257 ctx.importDefaults( 0, 0, _xAttributes, false );
2258 ctx.importBooleanProperty(
2259 OUString( RTL_CONSTASCII_USTRINGPARAM("Closeable") ),
2260 OUString( RTL_CONSTASCII_USTRINGPARAM("closeable") ),
2261 _xAttributes );
2262 ctx.importBooleanProperty(
2263 OUString( RTL_CONSTASCII_USTRINGPARAM("Moveable") ),
2264 OUString( RTL_CONSTASCII_USTRINGPARAM("moveable") ),
2265 _xAttributes );
2266 ctx.importBooleanProperty(
2267 OUString( RTL_CONSTASCII_USTRINGPARAM("Sizeable") ),
2268 OUString( RTL_CONSTASCII_USTRINGPARAM("resizeable") ),
2269 _xAttributes );
2270 ctx.importStringProperty(
2271 OUString( RTL_CONSTASCII_USTRINGPARAM("Title") ),
2272 OUString( RTL_CONSTASCII_USTRINGPARAM("title") ),
2273 _xAttributes );
2274 ctx.importBooleanProperty(
2275 OUString( RTL_CONSTASCII_USTRINGPARAM("Decoration") ),
2276 OUString( RTL_CONSTASCII_USTRINGPARAM("withtitlebar") ),
2277 _xAttributes );
2278 ctx.importStringProperty(
2279 OUString( RTL_CONSTASCII_USTRINGPARAM("ImageURL") ),
2280 OUString( RTL_CONSTASCII_USTRINGPARAM("image-src") ),
2281 _xAttributes );
2282 ctx.importEvents( _events );
2283 // avoid ring-reference:
2284 // vector< event elements > holding event elements holding this (via _pParent)
2285 _events.clear();
2286 }
2287
2288 }
2289