1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include "imp_share.hxx"
21 #include <com/sun/star/form/binding/XBindableValue.hpp>
22 #include <com/sun/star/form/binding/XValueBinding.hpp>
23 #include <com/sun/star/form/binding/XListEntrySink.hpp>
24 #include <com/sun/star/beans/NamedValue.hpp>
25 #include <com/sun/star/table/CellAddress.hpp>
26 #include <com/sun/star/table/CellRangeAddress.hpp>
27 #include <com/sun/star/beans/XPropertySet.hpp>
28 #include <com/sun/star/beans/XPropertyState.hpp>
29 #include <com/sun/star/document/XStorageBasedDocument.hpp>
30 #include <com/sun/star/xml/sax/SAXException.hpp>
32 #include <sal/log.hxx>
33 #include <i18nlangtag/languagetag.hxx>
35 using namespace ::com::sun::star
;
36 using namespace ::com::sun::star::uno
;
41 Reference
< xml::input::XElement
> Frame::startChildElement(
42 sal_Int32 nUid
, OUString
const & rLocalName
,
43 Reference
< xml::input::XAttributes
> const & xAttributes
)
45 if ( !m_xContainer
.is() )
46 m_xContainer
.set( m_xImport
->_xDialogModelFactory
->createInstance( "com.sun.star.awt.UnoFrameModel" ), UNO_QUERY
);
48 if (m_xImport
->isEventElement( nUid
, rLocalName
))
50 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
52 else if ( rLocalName
== "bulletinboard" )
54 // Create new DialogImport for this container
55 DialogImport
* pFrameImport
= new DialogImport( *m_xImport
);
56 pFrameImport
->_xDialogModel
= m_xContainer
;
57 return new BulletinBoardElement( rLocalName
, xAttributes
, this, pFrameImport
);
59 else if ( rLocalName
== "title" )
61 getStringAttr( &_label
, "value", xAttributes
, m_xImport
->XMLNS_DIALOGS_UID
);
63 return new ElementBase( m_xImport
->XMLNS_DIALOGS_UID
, rLocalName
, xAttributes
, this, m_xImport
.get() );
67 SAL_INFO("xmlscript.xmldlg","****** ARGGGGG!!!! **********");
68 throw xml::sax::SAXException("expected event element!", Reference
< XInterface
>(), Any() );
72 void Frame::endElement()
74 if ( !m_xContainer
.is() )
75 m_xContainer
.set( m_xImport
->_xDialogModelFactory
->createInstance( "com.sun.star.awt.UnoFrameModel" ), UNO_QUERY
);
76 Reference
< beans::XPropertySet
> xProps( m_xContainer
, UNO_QUERY_THROW
);
77 // m_xImport is what we need to add to ( e.g. the dialog in this case )
78 ControlImportContext
ctx( m_xImport
.get(), xProps
, getControlId( _xAttributes
) );
80 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
82 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
85 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
86 pStyle
->importTextColorStyle( xControlModel
);
87 pStyle
->importTextLineColorStyle( xControlModel
);
88 pStyle
->importFontStyle( xControlModel
);
91 ctx
.importDefaults( 0, 0, _xAttributes
); // inherited from BulletinBoardElement
92 if (!_label
.isEmpty())
94 xControlModel
->setPropertyValue( "Label" , makeAny( _label
) );
96 ctx
.importEvents( _events
);
97 // avoid ring-reference:
98 // vector< event elements > holding event elements holding this (via _pParent)
105 Reference
< xml::input::XElement
> MultiPage::startChildElement(
106 sal_Int32 nUid
, OUString
const & rLocalName
,
107 Reference
< xml::input::XAttributes
> const & xAttributes
)
110 if (m_xImport
->isEventElement( nUid
, rLocalName
))
112 return new EventElement(
113 nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
115 else if ( rLocalName
== "bulletinboard" )
117 // Create new DialogImport for this container
119 DialogImport
* pMultiPageImport
= new DialogImport( *m_xImport
);
120 pMultiPageImport
->_xDialogModel
= m_xContainer
;
121 return new BulletinBoardElement( rLocalName
, xAttributes
, this, pMultiPageImport
);
126 throw xml::sax::SAXException( "expected event element!", Reference
< XInterface
>(), Any() );
130 void MultiPage::endElement()
132 Reference
< beans::XPropertySet
> xProps( m_xContainer
, UNO_QUERY_THROW
);
133 // m_xImport is what we need to add to ( e.g. the dialog in this case )
134 ControlImportContext
ctx( m_xImport
.get(), xProps
, getControlId( _xAttributes
));
136 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
138 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
141 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
142 pStyle
->importTextColorStyle( xControlModel
);
143 pStyle
->importTextLineColorStyle( xControlModel
);
144 pStyle
->importFontStyle( xControlModel
);
145 pStyle
->importBackgroundColorStyle( xControlModel
);
148 ctx
.importDefaults( 0, 0, _xAttributes
); // inherited from BulletinBoardElement
149 ctx
.importLongProperty("MultiPageValue" , "value", _xAttributes
);
150 ctx
.importBooleanProperty( "Decoration", "withtabs", _xAttributes
) ;
151 ctx
.importEvents( _events
);
152 // avoid ring-reference:
153 // vector< event elements > holding event elements holding this (via _pParent)
159 Reference
< xml::input::XElement
> Page::startChildElement(
160 sal_Int32 nUid
, OUString
const & rLocalName
,
161 Reference
< xml::input::XAttributes
> const & xAttributes
)
164 if (m_xImport
->isEventElement( nUid
, rLocalName
))
166 return new EventElement(
167 nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
169 else if ( rLocalName
== "bulletinboard" )
172 DialogImport
* pPageImport
= new DialogImport( *m_xImport
);
173 pPageImport
->_xDialogModel
= m_xContainer
;
174 return new BulletinBoardElement( rLocalName
, xAttributes
, this, pPageImport
);
179 throw xml::sax::SAXException("expected event element!", Reference
< XInterface
>(), Any() );
183 void Page::endElement()
185 Reference
< beans::XPropertySet
> xProps( m_xContainer
, UNO_QUERY_THROW
);
187 ControlImportContext
ctx( m_xImport
.get(), xProps
, getControlId( _xAttributes
));
189 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
191 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
194 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
195 pStyle
->importTextColorStyle( xControlModel
);
196 pStyle
->importTextLineColorStyle( xControlModel
);
197 pStyle
->importFontStyle( xControlModel
);
198 pStyle
->importBackgroundColorStyle( xControlModel
);
201 ctx
.importDefaults( 0, 0, _xAttributes
); // inherited from BulletinBoardElement
202 ctx
.importStringProperty( "Title", "title", _xAttributes
);
203 ctx
.importEvents( _events
);
204 // avoid ring-reference:
205 // vector< event elements > holding event elements holding this (via _pParent)
212 Reference
< xml::input::XElement
> ProgressBarElement::startChildElement(
213 sal_Int32 nUid
, OUString
const & rLocalName
,
214 Reference
< xml::input::XAttributes
> const & xAttributes
)
217 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
219 throw xml::sax::SAXException( "expected event element!", Reference
< XInterface
>(), Any() );
222 return new EventElement(
223 nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
226 void ProgressBarElement::endElement()
228 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlProgressBarModel" );
230 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
233 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
234 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
235 pStyle
->importBackgroundColorStyle( xControlModel
);
236 pStyle
->importBorderStyle( xControlModel
);
237 pStyle
->importFillColorStyle( xControlModel
);
240 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
241 ctx
.importLongProperty( "ProgressValue", "value", _xAttributes
);
242 ctx
.importLongProperty( "ProgressValueMin", "value-min", _xAttributes
);
243 ctx
.importLongProperty( "ProgressValueMax", "value-max", _xAttributes
);
244 ctx
.importEvents( _events
);
245 // avoid ring-reference:
246 // vector< event elements > holding event elements holding this (via _pParent)
253 Reference
< xml::input::XElement
> ScrollBarElement::startChildElement(
254 sal_Int32 nUid
, OUString
const & rLocalName
,
255 Reference
< xml::input::XAttributes
> const & xAttributes
)
258 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
260 throw xml::sax::SAXException("expected event element!", Reference
< XInterface
>(), Any() );
263 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
266 void ScrollBarElement::endElement()
268 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), getControlModelName( "com.sun.star.awt.UnoControlScrollBarModel" , _xAttributes
) );
270 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
273 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
274 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
275 pStyle
->importBackgroundColorStyle( xControlModel
);
276 pStyle
->importBorderStyle( xControlModel
);
279 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
280 ctx
.importOrientationProperty( "Orientation" , "align", _xAttributes
);
281 ctx
.importLongProperty( "BlockIncrement" , "pageincrement" , _xAttributes
);
282 ctx
.importLongProperty( "LineIncrement" , "increment" , _xAttributes
);
283 ctx
.importLongProperty( "ScrollValue" ,"curpos", _xAttributes
);
284 ctx
.importLongProperty( "ScrollValueMax" , "maxpos" , _xAttributes
);
285 ctx
.importLongProperty( "ScrollValueMin","minpos", _xAttributes
);
286 ctx
.importLongProperty( "VisibleSize", "visible-size", _xAttributes
);
287 ctx
.importLongProperty( "RepeatDelay", "repeat", _xAttributes
);
288 ctx
.importBooleanProperty( "Tabstop", "tabstop" , _xAttributes
);
289 ctx
.importBooleanProperty( "LiveScroll", "live-scroll", _xAttributes
);
290 ctx
.importHexLongProperty( "SymbolColor", "symbol-color", _xAttributes
);
292 ctx
.importDataAwareProperty( "linked-cell" , _xAttributes
);
293 ctx
.importEvents( _events
);
294 // avoid ring-reference:
295 // vector< event elements > holding event elements holding this (via _pParent)
302 Reference
< xml::input::XElement
> SpinButtonElement::startChildElement(
303 sal_Int32 nUid
, OUString
const & rLocalName
,
304 Reference
< xml::input::XAttributes
> const & xAttributes
)
307 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
309 throw xml::sax::SAXException("expected event element!", Reference
< XInterface
>(), Any() );
312 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
315 void SpinButtonElement::endElement()
317 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), getControlModelName( "com.sun.star.awt.UnoControlSpinButtonModel", _xAttributes
) );
319 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
322 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
323 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
324 pStyle
->importBackgroundColorStyle( xControlModel
);
325 pStyle
->importBorderStyle( xControlModel
);
328 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
329 ctx
.importOrientationProperty( "Orientation", "align", _xAttributes
);
330 ctx
.importLongProperty("SpinIncrement", "increment", _xAttributes
);
331 ctx
.importLongProperty("SpinValue", "curval" ,_xAttributes
);
332 ctx
.importLongProperty("SpinValueMax", "maxval", _xAttributes
);
333 ctx
.importLongProperty( "SpinValueMin","minval",_xAttributes
);
334 ctx
.importLongProperty( "Repeat", "repeat", _xAttributes
);
335 ctx
.importLongProperty( "RepeatDelay", "repeat-delay",_xAttributes
);
336 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
337 ctx
.importHexLongProperty( "SymbolColor", "symbol-color" , _xAttributes
);
338 ctx
.importDataAwareProperty( "linked-cell" , _xAttributes
);
339 ctx
.importEvents( _events
);
340 // avoid ring-reference:
341 // vector< event elements > holding event elements holding this (via _pParent)
348 Reference
< xml::input::XElement
> FixedLineElement::startChildElement(
349 sal_Int32 nUid
, OUString
const & rLocalName
,
350 Reference
< xml::input::XAttributes
> const & xAttributes
)
353 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
355 throw xml::sax::SAXException("expected event element!", Reference
< XInterface
>(), Any() );
358 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
361 void FixedLineElement::endElement()
363 ControlImportContext
ctx(m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlFixedLineModel" );
365 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
368 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
369 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
370 pStyle
->importTextColorStyle( xControlModel
);
371 pStyle
->importTextLineColorStyle( xControlModel
);
372 pStyle
->importFontStyle( xControlModel
);
375 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
376 ctx
.importStringProperty( "Label", "value", _xAttributes
);
377 ctx
.importOrientationProperty( "Orientation", "align", _xAttributes
);
378 ctx
.importEvents( _events
);
379 // avoid ring-reference:
380 // vector< event elements > holding event elements holding this (via _pParent)
387 Reference
< xml::input::XElement
> PatternFieldElement::startChildElement(
388 sal_Int32 nUid
, OUString
const & rLocalName
,
389 Reference
< xml::input::XAttributes
> const & xAttributes
)
392 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
394 throw xml::sax::SAXException("expected event element!", Reference
< XInterface
>(), Any() );
397 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
400 void PatternFieldElement::endElement()
402 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlPatternFieldModel" );
404 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
407 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
408 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
409 pStyle
->importBackgroundColorStyle( xControlModel
);
410 pStyle
->importTextColorStyle( xControlModel
);
411 pStyle
->importTextLineColorStyle( xControlModel
);
412 pStyle
->importBorderStyle( xControlModel
);
413 pStyle
->importFontStyle( xControlModel
);
416 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
417 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
418 ctx
.importBooleanProperty( "ReadOnly", "readonly" , _xAttributes
);
419 ctx
.importBooleanProperty( "StrictFormat", "strict-format", _xAttributes
);
420 ctx
.importBooleanProperty( "HideInactiveSelection", "hide-inactive-selection", _xAttributes
);
421 ctx
.importStringProperty( "Text", "value", _xAttributes
);
422 ctx
.importShortProperty( "MaxTextLen", "maxlength", _xAttributes
);
423 ctx
.importStringProperty( "EditMask", "edit-mask", _xAttributes
);
424 ctx
.importStringProperty( "LiteralMask", "literal-mask", _xAttributes
);
425 ctx
.importEvents( _events
);
426 // avoid ring-reference:
427 // vector< event elements > holding event elements holding this (via _pParent)
434 Reference
< xml::input::XElement
> FormattedFieldElement::startChildElement(
435 sal_Int32 nUid
, OUString
const & rLocalName
,
436 Reference
< xml::input::XAttributes
> const & xAttributes
)
439 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
441 throw xml::sax::SAXException("expected event element!", Reference
< XInterface
>(), Any() );
444 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
447 void FormattedFieldElement::endElement()
449 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlFormattedFieldModel" );
451 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
454 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
455 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
456 pStyle
->importBackgroundColorStyle( xControlModel
);
457 pStyle
->importTextColorStyle( xControlModel
);
458 pStyle
->importTextLineColorStyle( xControlModel
);
459 pStyle
->importBorderStyle( xControlModel
);
460 pStyle
->importFontStyle( xControlModel
);
463 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
464 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
465 ctx
.importBooleanProperty( "ReadOnly", "readonly" , _xAttributes
);
466 ctx
.importBooleanProperty( "StrictFormat", "strict-format" , _xAttributes
);
467 ctx
.importBooleanProperty( "HideInactiveSelection", "hide-inactive-selection", _xAttributes
);
468 ctx
.importAlignProperty( "Align" , "align" , _xAttributes
);
469 ctx
.importDoubleProperty( "EffectiveMin", "value-min" , _xAttributes
);
470 ctx
.importDoubleProperty( "EffectiveMax", "value-max", _xAttributes
);
471 ctx
.importDoubleProperty( "EffectiveValue", "value", _xAttributes
);
472 ctx
.importStringProperty( "Text", "text", _xAttributes
);
473 ctx
.importShortProperty( "MaxTextLen", "maxlength", _xAttributes
);
474 ctx
.importBooleanProperty( "Spin", "spin", _xAttributes
);
475 if (ctx
.importLongProperty( "RepeatDelay", "repeat", _xAttributes
))
476 ctx
.getControlModel()->setPropertyValue( "Repeat" , makeAny(true) );
478 OUString
sDefault(_xAttributes
->getValueByUidName(m_xImport
->XMLNS_DIALOGS_UID
, "value-default") );
479 if (!sDefault
.isEmpty())
481 double d
= sDefault
.toDouble();
482 if (d
!= 0.0 || sDefault
== "0" || sDefault
== "0.0" )
484 ctx
.getControlModel()->setPropertyValue( "EffectiveDefault", makeAny( d
) );
486 else // treat as string
488 ctx
.getControlModel()->setPropertyValue( "EffectiveDefault", makeAny( sDefault
) );
493 ctx
.getControlModel()->setPropertyValue("FormatsSupplier", makeAny( m_xImport
->getNumberFormatsSupplier() ) );
495 OUString
sFormat( _xAttributes
->getValueByUidName(m_xImport
->XMLNS_DIALOGS_UID
, "format-code" ) );
496 if (!sFormat
.isEmpty())
500 OUString
sLocale( _xAttributes
->getValueByUidName( m_xImport
->XMLNS_DIALOGS_UID
, "format-locale" ) );
501 if (!sLocale
.isEmpty())
504 // Don't know what may have written what we read here, so parse all
505 // old style including the trailing ";Variant" if present.
506 sal_Int32 semi0
= sLocale
.indexOf( ';' );
507 if (semi0
< 0) // no semi at all, try new BCP47 or just language
509 locale
= LanguageTag::convertToLocale( sLocale
, false);
513 sal_Int32 semi1
= sLocale
.indexOf( ';', semi0
+1 );
514 if (semi1
> semi0
) // language;country;variant
516 SAL_WARN( "xmlscript.xmldlg", "format-locale with variant that is ignored: " << sLocale
);
517 locale
.Language
= sLocale
.copy( 0, semi0
);
518 locale
.Country
= sLocale
.copy( semi0
+1, semi1
- semi0
-1 );
519 // Ignore Variant that no one knows what it would be.
521 else // language;country
523 locale
.Language
= sLocale
.copy( 0, semi0
);
524 locale
.Country
= sLocale
.copy( semi0
+1 );
531 Reference
< util::XNumberFormats
> xFormats(
532 m_xImport
->getNumberFormatsSupplier()->getNumberFormats() );
533 sal_Int32 nKey
= xFormats
->queryKey( sFormat
, locale
, true );
536 nKey
= xFormats
->addNew( sFormat
, locale
);
538 ctx
.getControlModel()->setPropertyValue("FormatKey", makeAny( nKey
) );
540 catch (const util::MalformedNumberFormatException
& exc
)
542 SAL_WARN( "xmlscript.xmldlg", "### util::MalformedNumberFormatException occurred!" );
544 throw xml::sax::SAXException( exc
.Message
, Reference
< XInterface
>(), Any() );
547 ctx
.importBooleanProperty("TreatAsNumber", "treat-as-number" , _xAttributes
);
548 ctx
.importBooleanProperty("EnforceFormat", "enforce-format", _xAttributes
);
550 ctx
.importDataAwareProperty( "linked-cell" , _xAttributes
);
551 ctx
.importEvents( _events
);
552 // avoid ring-reference:
553 // vector< event elements > holding event elements holding this (via _pParent)
560 Reference
< xml::input::XElement
> TimeFieldElement::startChildElement(
561 sal_Int32 nUid
, OUString
const & rLocalName
,
562 Reference
< xml::input::XAttributes
> const & xAttributes
)
565 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
567 throw xml::sax::SAXException("expected event element!", Reference
< XInterface
>(), Any() );
570 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
573 void TimeFieldElement::endElement()
575 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlTimeFieldModel" );
577 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
580 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
581 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
582 pStyle
->importBackgroundColorStyle( xControlModel
);
583 pStyle
->importTextColorStyle( xControlModel
);
584 pStyle
->importTextLineColorStyle( xControlModel
);
585 pStyle
->importBorderStyle( xControlModel
);
586 pStyle
->importFontStyle( xControlModel
);
589 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
590 ctx
.importBooleanProperty("Tabstop", "tabstop", _xAttributes
);
591 ctx
.importBooleanProperty("ReadOnly", "readonly", _xAttributes
);
592 ctx
.importBooleanProperty( "StrictFormat", "strict-format", _xAttributes
);
593 ctx
.importBooleanProperty("HideInactiveSelection","hide-inactive-selection", _xAttributes
);
594 ctx
.importTimeFormatProperty( "TimeFormat", "time-format", _xAttributes
);
595 ctx
.importTimeProperty( "Time", "value", _xAttributes
);
596 ctx
.importTimeProperty( "TimeMin", "value-min", _xAttributes
);
597 ctx
.importTimeProperty( "TimeMax", "value-max", _xAttributes
);
598 ctx
.importBooleanProperty( "Spin", "spin", _xAttributes
);
599 if (ctx
.importLongProperty( "RepeatDelay", "repeat", _xAttributes
))
600 ctx
.getControlModel()->setPropertyValue("Repeat", makeAny(true) );
601 ctx
.importStringProperty( "Text", "text" , _xAttributes
);
602 ctx
.importBooleanProperty( "EnforceFormat", "enforce-format" , _xAttributes
);
604 ctx
.importEvents( _events
);
605 // avoid ring-reference:
606 // vector< event elements > holding event elements holding this (via _pParent)
613 Reference
< xml::input::XElement
> NumericFieldElement::startChildElement(
614 sal_Int32 nUid
, OUString
const & rLocalName
,
615 Reference
< xml::input::XAttributes
> const & xAttributes
)
618 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
620 throw xml::sax::SAXException( "expected event element!", Reference
< XInterface
>(), Any() );
623 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
626 void NumericFieldElement::endElement()
628 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlNumericFieldModel" );
630 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
633 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
634 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
635 pStyle
->importBackgroundColorStyle( xControlModel
);
636 pStyle
->importTextColorStyle( xControlModel
);
637 pStyle
->importTextLineColorStyle( xControlModel
);
638 pStyle
->importBorderStyle( xControlModel
);
639 pStyle
->importFontStyle( xControlModel
);
642 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
643 ctx
.importAlignProperty( "Align", "align", _xAttributes
);
644 ctx
.importVerticalAlignProperty( "VerticalAlign", "valign", _xAttributes
);
645 ctx
.importBooleanProperty( "Tabstop","tabstop",_xAttributes
);
646 ctx
.importBooleanProperty( "ReadOnly", "readonly",_xAttributes
);
647 ctx
.importBooleanProperty( "StrictFormat", "strict-format", _xAttributes
);
648 ctx
.importBooleanProperty( "HideInactiveSelection", "hide-inactive-selection", _xAttributes
);
649 ctx
.importShortProperty( "DecimalAccuracy", "decimal-accuracy", _xAttributes
);
650 ctx
.importBooleanProperty( "ShowThousandsSeparator", "thousands-separator", _xAttributes
);
651 ctx
.importDoubleProperty( "Value", "value", _xAttributes
);
652 ctx
.importDoubleProperty( "ValueMin", "value-min", _xAttributes
);
653 ctx
.importDoubleProperty( "ValueMax", "value-max", _xAttributes
);
654 ctx
.importDoubleProperty( "ValueStep", "value-step", _xAttributes
);
655 ctx
.importBooleanProperty( "Spin", "spin", _xAttributes
);
656 if (ctx
.importLongProperty( "RepeatDelay", "repeat", _xAttributes
))
657 ctx
.getControlModel()->setPropertyValue("Repeat", makeAny(true) );
658 ctx
.importBooleanProperty( "EnforceFormat", "enforce-format", _xAttributes
);
659 ctx
.importEvents( _events
);
660 // avoid ring-reference:
661 // vector< event elements > holding event elements holding this (via _pParent)
668 Reference
< xml::input::XElement
> DateFieldElement::startChildElement(
669 sal_Int32 nUid
, OUString
const & rLocalName
,
670 Reference
< xml::input::XAttributes
> const & xAttributes
)
673 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
675 throw xml::sax::SAXException("expected event element!", Reference
< XInterface
>(), Any() );
678 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
681 void DateFieldElement::endElement()
683 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlDateFieldModel" );
685 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
688 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
689 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
690 pStyle
->importBackgroundColorStyle( xControlModel
);
691 pStyle
->importTextColorStyle( xControlModel
);
692 pStyle
->importTextLineColorStyle( xControlModel
);
693 pStyle
->importBorderStyle( xControlModel
);
694 pStyle
->importFontStyle( xControlModel
);
697 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
698 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
699 ctx
.importBooleanProperty( "ReadOnly", "readonly", _xAttributes
);
700 ctx
.importBooleanProperty( "StrictFormat", "strict-format", _xAttributes
);
701 ctx
.importBooleanProperty( "HideInactiveSelection", "hide-inactive-selection", _xAttributes
);
702 ctx
.importDateFormatProperty( "DateFormat", "date-format", _xAttributes
);
703 ctx
.importBooleanProperty( "DateShowCentury", "show-century", _xAttributes
);
704 ctx
.importDateProperty( "Date", "value", _xAttributes
);
705 ctx
.importDateProperty( "DateMin", "value-min", _xAttributes
);
706 ctx
.importDateProperty( "DateMax", "value-max", _xAttributes
);
707 ctx
.importBooleanProperty( "Spin", "spin", _xAttributes
);
708 if (ctx
.importLongProperty( "RepeatDelay", "repeat", _xAttributes
))
709 ctx
.getControlModel()->setPropertyValue( "Repeat", makeAny(true) );
710 ctx
.importBooleanProperty( "Dropdown", "dropdown", _xAttributes
);
711 ctx
.importStringProperty( "Text", "text", _xAttributes
);
712 ctx
.importBooleanProperty( "EnforceFormat", "enforce-format", _xAttributes
);
713 ctx
.importEvents( _events
);
714 // avoid ring-reference:
715 // vector< event elements > holding event elements holding this (via _pParent)
722 Reference
< xml::input::XElement
> CurrencyFieldElement::startChildElement(
723 sal_Int32 nUid
, OUString
const & rLocalName
,
724 Reference
< xml::input::XAttributes
> const & xAttributes
)
727 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
729 throw xml::sax::SAXException( "expected event element!" , Reference
< XInterface
>(), Any() );
732 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
735 void CurrencyFieldElement::endElement()
737 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlCurrencyFieldModel" );
739 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
742 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
743 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
744 pStyle
->importBackgroundColorStyle( xControlModel
);
745 pStyle
->importTextColorStyle( xControlModel
);
746 pStyle
->importTextLineColorStyle( xControlModel
);
747 pStyle
->importBorderStyle( xControlModel
);
748 pStyle
->importFontStyle( xControlModel
);
751 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
752 ctx
.importBooleanProperty("Tabstop", "tabstop", _xAttributes
);
753 ctx
.importBooleanProperty( "ReadOnly", "readonly" , _xAttributes
);
754 ctx
.importBooleanProperty( "StrictFormat", "strict-format", _xAttributes
);
755 ctx
.importBooleanProperty( "HideInactiveSelection", "hide-inactive-selection", _xAttributes
);
756 ctx
.importStringProperty( "CurrencySymbol", "currency-symbol", _xAttributes
);
757 ctx
.importShortProperty( "DecimalAccuracy", "decimal-accuracy", _xAttributes
);
758 ctx
.importBooleanProperty( "ShowThousandsSeparator", "thousands-separator", _xAttributes
);
759 ctx
.importDoubleProperty( "Value", "value", _xAttributes
);
760 ctx
.importDoubleProperty( "ValueMin", "value-min", _xAttributes
);
761 ctx
.importDoubleProperty( "ValueMax", "value-max", _xAttributes
);
762 ctx
.importDoubleProperty( "ValueStep", "value-step", _xAttributes
);
763 ctx
.importBooleanProperty( "Spin", "spin", _xAttributes
);
764 if (ctx
.importLongProperty( "RepeatDelay", "repeat", _xAttributes
))
765 ctx
.getControlModel()->setPropertyValue( "Repeat", makeAny(true) );
766 ctx
.importBooleanProperty( "PrependCurrencySymbol", "prepend-symbol", _xAttributes
);
767 ctx
.importBooleanProperty( "EnforceFormat", "enforce-format", _xAttributes
);
768 ctx
.importEvents( _events
);
769 // avoid ring-reference:
770 // vector< event elements > holding event elements holding this (via _pParent)
777 Reference
< xml::input::XElement
> FileControlElement::startChildElement(
778 sal_Int32 nUid
, OUString
const & rLocalName
,
779 Reference
< xml::input::XAttributes
> const & xAttributes
)
782 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
784 throw xml::sax::SAXException( "expected event element!", Reference
< XInterface
>(), Any() );
787 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
790 void FileControlElement::endElement()
792 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlFileControlModel" );
794 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
797 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
798 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
799 pStyle
->importBackgroundColorStyle( xControlModel
);
800 pStyle
->importTextColorStyle( xControlModel
);
801 pStyle
->importTextLineColorStyle( xControlModel
);
802 pStyle
->importBorderStyle( xControlModel
);
803 pStyle
->importFontStyle( xControlModel
);
806 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
807 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
808 ctx
.importBooleanProperty("HideInactiveSelection","hide-inactive-selection", _xAttributes
);
809 ctx
.importStringProperty( "Text", "value", _xAttributes
);
810 ctx
.importBooleanProperty( "ReadOnly", "readonly", _xAttributes
);
811 ctx
.importEvents( _events
);
812 // avoid ring-reference:
813 // vector< event elements > holding event elements holding this (via _pParent)
820 Reference
< xml::input::XElement
> TreeControlElement::startChildElement(
821 sal_Int32 nUid
, OUString
const & rLocalName
,
822 Reference
< xml::input::XAttributes
> const & xAttributes
)
825 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
827 throw xml::sax::SAXException( "expected event element!", Reference
< XInterface
>(), Any() );
830 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
833 void TreeControlElement::endElement()
835 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.tree.TreeControlModel" );
837 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
840 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
841 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
842 pStyle
->importBackgroundColorStyle( xControlModel
);
843 pStyle
->importBorderStyle( xControlModel
);
846 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
847 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
848 ctx
.importSelectionTypeProperty( "SelectionType", "selectiontype", _xAttributes
);
849 ctx
.importBooleanProperty( "RootDisplayed", "rootdisplayed", _xAttributes
);
850 ctx
.importBooleanProperty( "ShowsHandles", "showshandles", _xAttributes
);
851 ctx
.importBooleanProperty( "ShowsRootHandles", "showsroothandles" ,_xAttributes
);
852 ctx
.importBooleanProperty( "Editable", "editable", _xAttributes
);
853 ctx
.importBooleanProperty( "RowHeight", "readonly", _xAttributes
);
854 ctx
.importBooleanProperty( "InvokesStopNodeEditing", "invokesstopnodeediting", _xAttributes
);
856 ctx
.importEvents( _events
);
857 // avoid ring-reference:
858 // vector< event elements > holding event elements holding this (via _pParent)
865 Reference
< xml::input::XElement
> ImageControlElement::startChildElement(
866 sal_Int32 nUid
, OUString
const & rLocalName
,
867 Reference
< xml::input::XAttributes
> const & xAttributes
)
870 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
872 throw xml::sax::SAXException( "expected event element!" , Reference
< XInterface
>(), Any() );
875 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
878 void ImageControlElement::endElement()
880 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlImageControlModel" );
882 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
885 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
886 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
887 pStyle
->importBackgroundColorStyle( xControlModel
);
888 pStyle
->importBorderStyle( xControlModel
);
891 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
892 ctx
.importBooleanProperty( "ScaleImage", "scale-image", _xAttributes
);
893 ctx
.importImageScaleModeProperty( "ScaleMode" , "scale-mode" , _xAttributes
);
894 ctx
.importGraphicOrImageProperty("src" , _xAttributes
);
895 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
896 ctx
.importEvents( _events
);
897 // avoid ring-reference:
898 // vector< event elements > holding event elements holding this (via _pParent)
905 Reference
< xml::input::XElement
> TextElement::startChildElement(
906 sal_Int32 nUid
, OUString
const & rLocalName
,
907 Reference
< xml::input::XAttributes
> const & xAttributes
)
910 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
912 throw xml::sax::SAXException( "expected event element!", Reference
< XInterface
>(), Any() );
915 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
918 void TextElement::endElement()
920 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlFixedTextModel" );
922 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
925 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
926 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
927 pStyle
->importBackgroundColorStyle( xControlModel
);
928 pStyle
->importTextColorStyle( xControlModel
);
929 pStyle
->importTextLineColorStyle( xControlModel
);
930 pStyle
->importBorderStyle( xControlModel
);
931 pStyle
->importFontStyle( xControlModel
);
934 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
935 ctx
.importStringProperty( "Label", "value", _xAttributes
);
936 ctx
.importAlignProperty( "Align", "align", _xAttributes
);
937 ctx
.importVerticalAlignProperty( "VerticalAlign", "valign", _xAttributes
);
938 ctx
.importBooleanProperty( "MultiLine", "multiline" ,_xAttributes
);
939 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
940 ctx
.importBooleanProperty( "NoLabel", "nolabel", _xAttributes
);
941 ctx
.importEvents( _events
);
942 // avoid ring-reference:
943 // vector< event elements > holding event elements holding this (via _pParent)
950 Reference
< xml::input::XElement
> FixedHyperLinkElement::startChildElement(
951 sal_Int32 nUid
, OUString
const & rLocalName
,
952 Reference
< xml::input::XAttributes
> const & xAttributes
)
955 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
957 throw xml::sax::SAXException( "expected event element!" , Reference
< XInterface
>(), Any() );
960 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
963 void FixedHyperLinkElement::endElement()
965 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlFixedHyperlinkModel" );
967 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
970 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
971 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
972 pStyle
->importBackgroundColorStyle( xControlModel
);
973 pStyle
->importTextColorStyle( xControlModel
);
974 pStyle
->importTextLineColorStyle( xControlModel
);
975 pStyle
->importBorderStyle( xControlModel
);
976 pStyle
->importFontStyle( xControlModel
);
979 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
980 ctx
.importStringProperty( "Label", "value", _xAttributes
);
981 ctx
.importStringProperty( "URL", "url", _xAttributes
);
982 ctx
.importStringProperty( "Description", "description", _xAttributes
);
984 ctx
.importAlignProperty( "Align", "align" ,_xAttributes
);
985 ctx
.importVerticalAlignProperty( "VerticalAlign", "valign", _xAttributes
);
986 ctx
.importBooleanProperty( "MultiLine", "multiline", _xAttributes
);
987 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
988 ctx
.importBooleanProperty( "NoLabel", "nolabel", _xAttributes
);
989 ctx
.importEvents( _events
);
990 // avoid ring-reference:
991 // vector< event elements > holding event elements holding this (via _pParent)
998 Reference
< xml::input::XElement
> TextFieldElement::startChildElement(
999 sal_Int32 nUid
, OUString
const & rLocalName
,
1000 Reference
< xml::input::XAttributes
> const & xAttributes
)
1003 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
1005 throw xml::sax::SAXException( "expected event element!", Reference
< XInterface
>(), Any() );
1008 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
1011 void TextFieldElement::endElement()
1013 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlEditModel" );
1014 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
1016 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
1019 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
1020 pStyle
->importBackgroundColorStyle( xControlModel
);
1021 pStyle
->importTextColorStyle( xControlModel
);
1022 pStyle
->importTextLineColorStyle( xControlModel
);
1023 pStyle
->importBorderStyle( xControlModel
);
1024 pStyle
->importFontStyle( xControlModel
);
1027 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
1028 ctx
.importBooleanProperty("Tabstop", "tabstop", _xAttributes
);
1029 ctx
.importAlignProperty( "Align", "align", _xAttributes
);
1030 ctx
.importVerticalAlignProperty( "VerticalAlign", "valign", _xAttributes
);
1031 ctx
.importBooleanProperty( "HardLineBreaks", "hard-linebreaks", _xAttributes
);
1032 ctx
.importBooleanProperty( "HScroll", "hscroll" ,_xAttributes
);
1033 ctx
.importBooleanProperty( "VScroll", "vscroll", _xAttributes
);
1034 ctx
.importBooleanProperty("HideInactiveSelection", "hide-inactive-selection", _xAttributes
);
1035 ctx
.importShortProperty( "MaxTextLen", "maxlength", _xAttributes
);
1036 ctx
.importBooleanProperty( "MultiLine", "multiline", _xAttributes
);
1037 ctx
.importBooleanProperty( "ReadOnly", "readonly", _xAttributes
);
1038 ctx
.importStringProperty( "Text", "value", _xAttributes
);
1039 ctx
.importLineEndFormatProperty( "LineEndFormat", "lineend-format", _xAttributes
);
1041 if (getStringAttr( &aValue
, "echochar", _xAttributes
, m_xImport
->XMLNS_DIALOGS_UID
) && !aValue
.isEmpty() )
1043 SAL_WARN_IF( aValue
.getLength() != 1, "xmlscript.xmldlg", "### more than one character given for echochar!" );
1044 sal_Int16 nChar
= 0;
1045 if(!aValue
.isEmpty())
1047 nChar
= static_cast<sal_Int16
>(aValue
[ 0 ]);
1049 xControlModel
->setPropertyValue( "EchoChar", makeAny( nChar
) );
1052 ctx
.importEvents( _events
);
1053 // avoid ring-reference:
1054 // vector< event elements > holding event elements holding this (via _pParent)
1061 Reference
< xml::input::XElement
> TitledBoxElement::startChildElement(
1062 sal_Int32 nUid
, OUString
const & rLocalName
,
1063 Reference
< xml::input::XAttributes
> const & xAttributes
)
1066 if (m_xImport
->isEventElement( nUid
, rLocalName
))
1068 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
1070 else if (m_xImport
->XMLNS_DIALOGS_UID
!= nUid
)
1072 throw xml::sax::SAXException( "illegal namespace!", Reference
< XInterface
>(), Any() );
1075 else if ( rLocalName
== "title" )
1077 getStringAttr( &_label
, "value", xAttributes
, m_xImport
->XMLNS_DIALOGS_UID
);
1079 return new ElementBase( m_xImport
->XMLNS_DIALOGS_UID
, rLocalName
, xAttributes
, this, m_xImport
.get() );
1082 else if ( rLocalName
== "radio" )
1084 // don't create radios here, => titledbox must be inserted first due to radio grouping,
1085 // possible predecessors!
1086 Reference
< xml::input::XElement
> xRet(
1087 new RadioElement( rLocalName
, xAttributes
, this, m_xImport
.get() ) );
1088 _radios
.push_back( xRet
);
1093 return BulletinBoardElement::startChildElement( nUid
, rLocalName
, xAttributes
);
1097 void TitledBoxElement::endElement()
1100 ControlImportContext
ctx(m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlGroupBoxModel" );
1101 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
1103 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
1106 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
1107 pStyle
->importTextColorStyle( xControlModel
);
1108 pStyle
->importTextLineColorStyle( xControlModel
);
1109 pStyle
->importFontStyle( xControlModel
);
1112 ctx
.importDefaults( 0, 0, _xAttributes
); // inherited from BulletinBoardElement
1114 if (!_label
.isEmpty())
1116 xControlModel
->setPropertyValue( "Label", makeAny( _label
) );
1119 ctx
.importEvents( _events
);
1120 // avoid ring-reference:
1121 // vector< event elements > holding event elements holding this (via _pParent)
1127 // create radios AFTER group box!
1128 for (Reference
<XElement
>& xRadio
: _radios
)
1130 Reference
< xml::input::XAttributes
> xAttributes( xRadio
->getAttributes() );
1132 ControlImportContext
ctx( m_xImport
.get(), getControlId( xAttributes
), getControlModelName( "com.sun.star.awt.UnoControlRadioButtonModel", xAttributes
) );
1133 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
1135 Reference
< xml::input::XElement
> xStyle( getStyle( xAttributes
) );
1138 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
1139 pStyle
->importBackgroundColorStyle( xControlModel
);
1140 pStyle
->importTextColorStyle( xControlModel
);
1141 pStyle
->importTextLineColorStyle( xControlModel
);
1142 pStyle
->importFontStyle( xControlModel
);
1143 pStyle
->importVisualEffectStyle( xControlModel
);
1146 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, xAttributes
);
1147 ctx
.importBooleanProperty( "Tabstop", "tabstop", xAttributes
);
1148 ctx
.importStringProperty( "Label", "value", xAttributes
);
1149 ctx
.importAlignProperty( "Align", "align", xAttributes
);
1150 ctx
.importVerticalAlignProperty( "VerticalAlign", "valign", xAttributes
);
1151 ctx
.importGraphicOrImageProperty("image-src" , _xAttributes
);
1152 ctx
.importImagePositionProperty( "ImagePosition", "image-position", xAttributes
);
1153 ctx
.importBooleanProperty( "MultiLine", "multiline", xAttributes
);
1154 ctx
.importStringProperty( "GroupName", "group-name", xAttributes
);
1157 sal_Bool bChecked
= false;
1158 if (getBoolAttr( &bChecked
, "checked", xAttributes
, m_xImport
->XMLNS_DIALOGS_UID
) && bChecked
)
1162 xControlModel
->setPropertyValue( "State", makeAny( nVal
) );
1163 ctx
.importDataAwareProperty( "linked-cell" , xAttributes
);
1164 ::std::vector
< Reference
< xml::input::XElement
> > & radioEvents
=
1165 static_cast< RadioElement
* >( xRadio
.get() )->getEvents();
1166 ctx
.importEvents( radioEvents
);
1167 // avoid ring-reference:
1168 // vector< event elements > holding event elements holding this (via _pParent)
1169 radioEvents
.clear();
1173 // avoid ring-reference:
1174 // vector< radio elements > holding radio elements holding this (via _pParent)
1179 Reference
< xml::input::XElement
> RadioElement::startChildElement(
1180 sal_Int32 nUid
, OUString
const & rLocalName
,
1181 Reference
< xml::input::XAttributes
> const & xAttributes
)
1184 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
1186 throw xml::sax::SAXException("expected event element!", Reference
< XInterface
>(), Any() );
1189 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
1193 Reference
< xml::input::XElement
> RadioGroupElement::startChildElement(
1194 sal_Int32 nUid
, OUString
const & rLocalName
,
1195 Reference
< xml::input::XAttributes
> const & xAttributes
)
1197 if (m_xImport
->XMLNS_DIALOGS_UID
!= nUid
)
1199 throw xml::sax::SAXException( "illegal namespace!", Reference
< XInterface
>(), Any() );
1202 else if ( rLocalName
== "radio" )
1204 // don't create radios here, => titledbox must be inserted first due to radio grouping,
1205 // possible predecessors!
1206 Reference
< xml::input::XElement
> xRet(
1207 new RadioElement( rLocalName
, xAttributes
, this, m_xImport
.get() ) );
1208 _radios
.push_back( xRet
);
1213 throw xml::sax::SAXException( "expected radio element!", Reference
< XInterface
>(), Any() );
1216 void RadioGroupElement::endElement()
1218 for (Reference
<XElement
>& xRadio
: _radios
)
1220 Reference
< xml::input::XAttributes
> xAttributes(
1221 xRadio
->getAttributes() );
1223 ControlImportContext
ctx( m_xImport
.get(), getControlId( xAttributes
), getControlModelName( "com.sun.star.awt.UnoControlRadioButtonModel", xAttributes
) );
1224 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
1226 Reference
< xml::input::XElement
> xStyle( getStyle( xAttributes
) );
1229 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
1230 pStyle
->importBackgroundColorStyle( xControlModel
);
1231 pStyle
->importTextColorStyle( xControlModel
);
1232 pStyle
->importTextLineColorStyle( xControlModel
);
1233 pStyle
->importFontStyle( xControlModel
);
1234 pStyle
->importVisualEffectStyle( xControlModel
);
1237 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, xAttributes
);
1238 ctx
.importBooleanProperty("Tabstop", "tabstop", xAttributes
);
1239 ctx
.importStringProperty( "Label", "value", xAttributes
);
1240 ctx
.importAlignProperty( "Align", "align", xAttributes
);
1241 ctx
.importVerticalAlignProperty( "VerticalAlign", "valign", xAttributes
);
1242 ctx
.importGraphicOrImageProperty("image-src" , _xAttributes
);
1243 ctx
.importImagePositionProperty( "ImagePosition", "image-position", xAttributes
);
1244 ctx
.importBooleanProperty( "MultiLine", "multiline", xAttributes
);
1245 ctx
.importStringProperty( "GroupName", "group-name", xAttributes
);
1247 sal_Bool bChecked
= false;
1248 if (getBoolAttr( &bChecked
, "checked", xAttributes
, m_xImport
->XMLNS_DIALOGS_UID
) && bChecked
)
1252 xControlModel
->setPropertyValue( "State", makeAny( nVal
) );
1254 ctx
.importDataAwareProperty( "linked-cell", xAttributes
);
1256 ::std::vector
< Reference
< xml::input::XElement
> > & radioEvents
=
1257 static_cast< RadioElement
* >( xRadio
.get() )->getEvents();
1258 ctx
.importEvents( radioEvents
);
1259 // avoid ring-reference:
1260 // vector< event elements > holding event elements holding this (via _pParent)
1261 radioEvents
.clear();
1265 // avoid ring-reference:
1266 // vector< radio elements > holding radio elements holding this (via _pParent)
1271 Reference
< xml::input::XElement
> MenuPopupElement::startChildElement(
1272 sal_Int32 nUid
, OUString
const & rLocalName
,
1273 Reference
< xml::input::XAttributes
> const & xAttributes
)
1275 if (m_xImport
->XMLNS_DIALOGS_UID
!= nUid
)
1277 throw xml::sax::SAXException( "illegal namespace!", Reference
< XInterface
>(), Any() );
1280 else if ( rLocalName
== "menuitem" )
1282 OUString
aValue( xAttributes
->getValueByUidName( m_xImport
->XMLNS_DIALOGS_UID
,"value" ) );
1283 SAL_WARN_IF( aValue
.isEmpty(), "xmlscript.xmldlg", "### menuitem has no value?" );
1284 if (!aValue
.isEmpty())
1286 _itemValues
.push_back( aValue
);
1288 OUString
aSel( xAttributes
->getValueByUidName( m_xImport
->XMLNS_DIALOGS_UID
, "selected" ) );
1289 if (!aSel
.isEmpty() && aSel
== "true")
1291 _itemSelected
.push_back( static_cast<sal_Int16
>(_itemValues
.size()) -1 );
1294 return new ElementBase( m_xImport
->XMLNS_DIALOGS_UID
, rLocalName
, xAttributes
, this, m_xImport
.get() );
1298 throw xml::sax::SAXException("expected menuitem!" , Reference
< XInterface
>(), Any() );
1301 Sequence
< OUString
> MenuPopupElement::getItemValues()
1303 Sequence
< OUString
> aRet( _itemValues
.size() );
1304 OUString
* pRet
= aRet
.getArray();
1305 for ( size_t nPos
= _itemValues
.size(); nPos
--; )
1307 pRet
[ nPos
] = _itemValues
[ nPos
];
1311 Sequence
< sal_Int16
> MenuPopupElement::getSelectedItems()
1313 Sequence
< sal_Int16
> aRet( _itemSelected
.size() );
1314 sal_Int16
* pRet
= aRet
.getArray();
1315 for ( size_t nPos
= _itemSelected
.size(); nPos
--; )
1317 pRet
[ nPos
] = _itemSelected
[ nPos
];
1323 Reference
< xml::input::XElement
> MenuListElement::startChildElement(
1324 sal_Int32 nUid
, OUString
const & rLocalName
,
1325 Reference
< xml::input::XAttributes
> const & xAttributes
)
1328 if (m_xImport
->isEventElement( nUid
, rLocalName
))
1330 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
1332 else if (m_xImport
->XMLNS_DIALOGS_UID
!= nUid
)
1334 throw xml::sax::SAXException( "illegal namespace!", Reference
< XInterface
>(), Any() );
1337 else if ( rLocalName
== "menupopup" )
1339 _popup
= new MenuPopupElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1344 throw xml::sax::SAXException( "expected event or menupopup element!", Reference
< XInterface
>(), Any() );
1348 void MenuListElement::endElement()
1350 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), getControlModelName( "com.sun.star.awt.UnoControlListBoxModel", _xAttributes
) );
1351 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
1353 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
1356 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
1357 pStyle
->importBackgroundColorStyle( xControlModel
);
1358 pStyle
->importTextColorStyle( xControlModel
);
1359 pStyle
->importTextLineColorStyle( xControlModel
);
1360 pStyle
->importBorderStyle( xControlModel
);
1361 pStyle
->importFontStyle( xControlModel
);
1364 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
1365 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
1366 ctx
.importBooleanProperty( "MultiSelection", "multiselection", _xAttributes
);
1367 ctx
.importBooleanProperty( "ReadOnly", "readonly", _xAttributes
);
1368 ctx
.importBooleanProperty( "Dropdown", "spin", _xAttributes
);
1369 ctx
.importShortProperty( "LineCount", "linecount", _xAttributes
);
1370 ctx
.importAlignProperty( "Align", "align", _xAttributes
);
1371 bool bHasLinkedCell
= ctx
.importDataAwareProperty( "linked-cell" , _xAttributes
);
1372 bool bHasSrcRange
= ctx
.importDataAwareProperty( "source-cell-range" , _xAttributes
);
1375 MenuPopupElement
* p
= static_cast< MenuPopupElement
* >( _popup
.get() );
1376 if ( !bHasSrcRange
)
1377 xControlModel
->setPropertyValue( "StringItemList", makeAny( p
->getItemValues() ) );
1378 if ( !bHasLinkedCell
)
1379 xControlModel
->setPropertyValue( "SelectedItems", makeAny( p
->getSelectedItems() ) );
1382 ctx
.importEvents( _events
);
1383 // avoid ring-reference:
1384 // vector< event elements > holding event elements holding this (via _pParent)
1391 Reference
< xml::input::XElement
> ComboBoxElement::startChildElement(
1392 sal_Int32 nUid
, OUString
const & rLocalName
,
1393 Reference
< xml::input::XAttributes
> const & xAttributes
)
1396 if (m_xImport
->isEventElement( nUid
, rLocalName
))
1398 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
1400 else if (m_xImport
->XMLNS_DIALOGS_UID
!= nUid
)
1402 throw xml::sax::SAXException( "illegal namespace!", Reference
< XInterface
>(), Any() );
1405 else if ( rLocalName
== "menupopup" )
1407 _popup
= new MenuPopupElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1412 throw xml::sax::SAXException( "expected event or menupopup element!", Reference
< XInterface
>(), Any() );
1415 void ComboBoxElement::endElement()
1417 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), getControlModelName( "com.sun.star.awt.UnoControlComboBoxModel", _xAttributes
) );
1418 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
1420 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
1423 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
1424 pStyle
->importBackgroundColorStyle( xControlModel
);
1425 pStyle
->importTextColorStyle( xControlModel
);
1426 pStyle
->importTextLineColorStyle( xControlModel
);
1427 pStyle
->importBorderStyle( xControlModel
);
1428 pStyle
->importFontStyle( xControlModel
);
1431 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
1432 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
1433 ctx
.importBooleanProperty( "ReadOnly", "readonly", _xAttributes
);
1434 ctx
.importBooleanProperty( "Autocomplete", "autocomplete", _xAttributes
);
1435 ctx
.importBooleanProperty( "Dropdown", "spin", _xAttributes
);
1436 ctx
.importBooleanProperty( "HideInactiveSelection", "hide-inactive-selection", _xAttributes
);
1437 ctx
.importShortProperty( "MaxTextLen", "maxlength" ,_xAttributes
);
1438 ctx
.importShortProperty( "LineCount", "linecount" ,_xAttributes
);
1439 ctx
.importStringProperty( "Text", "value", _xAttributes
);
1440 ctx
.importAlignProperty( "Align", "align", _xAttributes
);
1441 ctx
.importDataAwareProperty( "linked-cell" , _xAttributes
);
1442 bool bHasSrcRange
= ctx
.importDataAwareProperty( "source-cell-range" , _xAttributes
);
1443 if (_popup
.is() && !bHasSrcRange
)
1445 MenuPopupElement
* p
= static_cast< MenuPopupElement
* >( _popup
.get() );
1446 xControlModel
->setPropertyValue( "StringItemList", makeAny( p
->getItemValues() ) );
1449 ctx
.importEvents( _events
);
1450 // avoid ring-reference:
1451 // vector< event elements > holding event elements holding this (via _pParent)
1458 Reference
< xml::input::XElement
> CheckBoxElement::startChildElement(
1459 sal_Int32 nUid
, OUString
const & rLocalName
,
1460 Reference
< xml::input::XAttributes
> const & xAttributes
)
1463 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
1465 throw xml::sax::SAXException( "expected event element!", Reference
< XInterface
>(), Any() );
1468 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
1471 void CheckBoxElement::endElement()
1473 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlCheckBoxModel" );
1474 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
1476 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
1479 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
1480 pStyle
->importBackgroundColorStyle( xControlModel
);
1481 pStyle
->importTextColorStyle( xControlModel
);
1482 pStyle
->importTextLineColorStyle( xControlModel
);
1483 pStyle
->importFontStyle( xControlModel
);
1484 pStyle
->importVisualEffectStyle( xControlModel
);
1487 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
1488 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
1489 ctx
.importStringProperty( "Label", "value", _xAttributes
);
1490 ctx
.importAlignProperty( "Align", "align", _xAttributes
);
1491 ctx
.importVerticalAlignProperty( "VerticalAlign", "valign", _xAttributes
);
1492 ctx
.importGraphicOrImageProperty("image-src" , _xAttributes
);
1493 ctx
.importImagePositionProperty( "ImagePosition", "image-position", _xAttributes
);
1494 ctx
.importBooleanProperty( "MultiLine", "multiline", _xAttributes
);
1496 sal_Bool bTriState
= false;
1497 if (getBoolAttr( &bTriState
, "tristate", _xAttributes
, m_xImport
->XMLNS_DIALOGS_UID
))
1499 xControlModel
->setPropertyValue( "TriState", makeAny( bTriState
) );
1501 sal_Bool bChecked
= false;
1502 if (getBoolAttr( &bChecked
, "checked", _xAttributes
, m_xImport
->XMLNS_DIALOGS_UID
))
1504 // has "checked" attribute
1505 sal_Int16 nVal
= (bChecked
? 1 : 0);
1506 xControlModel
->setPropertyValue( "State", makeAny( nVal
) );
1510 sal_Int16 nVal
= (bTriState
? 2 : 0); // if tristate set, but checked omitted => don't know!
1511 xControlModel
->setPropertyValue( "State", makeAny( nVal
) );
1514 ctx
.importEvents( _events
);
1515 // avoid ring-reference:
1516 // vector< event elements > holding event elements holding this (via _pParent)
1523 Reference
< xml::input::XElement
> ButtonElement::startChildElement(
1524 sal_Int32 nUid
, OUString
const & rLocalName
,
1525 Reference
< xml::input::XAttributes
> const & xAttributes
)
1528 if (!m_xImport
->isEventElement( nUid
, rLocalName
))
1530 throw xml::sax::SAXException( "expected event element!", Reference
< XInterface
>(), Any() );
1533 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
1536 void ButtonElement::endElement()
1538 ControlImportContext
ctx( m_xImport
.get(), getControlId( _xAttributes
), "com.sun.star.awt.UnoControlButtonModel" );
1540 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
1543 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
1544 Reference
< beans::XPropertySet
> xControlModel( ctx
.getControlModel() );
1545 pStyle
->importBackgroundColorStyle( xControlModel
);
1546 pStyle
->importTextColorStyle( xControlModel
);
1547 pStyle
->importTextLineColorStyle( xControlModel
);
1548 pStyle
->importFontStyle( xControlModel
);
1551 ctx
.importDefaults( _nBasePosX
, _nBasePosY
, _xAttributes
);
1552 ctx
.importBooleanProperty( "Tabstop", "tabstop", _xAttributes
);
1553 ctx
.importStringProperty( "Label", "value", _xAttributes
);
1554 ctx
.importAlignProperty( "Align", "align", _xAttributes
);
1555 ctx
.importVerticalAlignProperty( "VerticalAlign", "valign", _xAttributes
);
1556 ctx
.importBooleanProperty( "DefaultButton", "default", _xAttributes
);
1557 ctx
.importButtonTypeProperty( "PushButtonType", "button-type", _xAttributes
);
1558 ctx
.importGraphicOrImageProperty("image-src" , _xAttributes
);
1559 ctx
.importImagePositionProperty( "ImagePosition", "image-position", _xAttributes
);
1560 ctx
.importImageAlignProperty( "ImageAlign", "image-align", _xAttributes
);
1561 if (ctx
.importLongProperty( "RepeatDelay", "repeat", _xAttributes
))
1562 ctx
.getControlModel()->setPropertyValue( "Repeat", makeAny(true) );
1563 sal_Int32 toggled
= 0;
1564 if (getLongAttr( &toggled
, "toggled", _xAttributes
, m_xImport
->XMLNS_DIALOGS_UID
) && toggled
== 1)
1565 ctx
.getControlModel()->setPropertyValue( "Toggle" , makeAny(true));
1566 ctx
.importBooleanProperty( "FocusOnClick", "grab-focus", _xAttributes
);
1567 ctx
.importBooleanProperty( "MultiLine", "multiline", _xAttributes
);
1569 sal_Bool bChecked
= false;
1570 if (getBoolAttr( &bChecked
, "checked", _xAttributes
, m_xImport
->XMLNS_DIALOGS_UID
) && bChecked
)
1572 ctx
.getControlModel()->setPropertyValue( "State" , makeAny( sal_Int16(1) ) );
1575 ctx
.importEvents( _events
);
1576 // avoid ring-reference:
1577 // vector< event elements > holding event elements holding this (via _pParent)
1584 Reference
< xml::input::XElement
> BulletinBoardElement::startChildElement(
1585 sal_Int32 nUid
, OUString
const & rLocalName
,
1586 Reference
< xml::input::XAttributes
> const & xAttributes
)
1588 if (m_xImport
->XMLNS_DIALOGS_UID
!= nUid
)
1590 throw xml::sax::SAXException("illegal namespace!", Reference
< XInterface
>(), Any() );
1593 else if ( rLocalName
== "button" )
1595 return new ButtonElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1598 else if ( rLocalName
== "checkbox" )
1600 return new CheckBoxElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1603 else if ( rLocalName
== "combobox" )
1605 return new ComboBoxElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1608 else if ( rLocalName
== "menulist" )
1610 return new MenuListElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1613 else if ( rLocalName
== "radiogroup" )
1615 return new RadioGroupElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1618 else if ( rLocalName
== "titledbox" )
1620 return new TitledBoxElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1623 else if ( rLocalName
== "text" )
1625 return new TextElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1627 else if ( rLocalName
== "linklabel" )
1629 return new FixedHyperLinkElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1632 else if ( rLocalName
== "textfield" )
1634 return new TextFieldElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1637 else if ( rLocalName
== "img" )
1639 return new ImageControlElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1642 else if ( rLocalName
== "filecontrol" )
1644 return new FileControlElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1647 else if ( rLocalName
== "treecontrol" )
1649 return new TreeControlElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1652 else if ( rLocalName
== "currencyfield" )
1654 return new CurrencyFieldElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1657 else if ( rLocalName
== "datefield" )
1659 return new DateFieldElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1662 else if ( rLocalName
== "numericfield" )
1664 return new NumericFieldElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1667 else if ( rLocalName
== "timefield" )
1669 return new TimeFieldElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1672 else if ( rLocalName
== "patternfield" )
1674 return new PatternFieldElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1677 else if ( rLocalName
== "formattedfield" )
1679 return new FormattedFieldElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1682 else if ( rLocalName
== "fixedline" )
1684 return new FixedLineElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1687 else if ( rLocalName
== "scrollbar" )
1689 return new ScrollBarElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1692 else if ( rLocalName
== "spinbutton" )
1694 return new SpinButtonElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1697 else if ( rLocalName
== "progressmeter" )
1699 return new ProgressBarElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1701 else if ( rLocalName
== "multipage" )
1703 return new MultiPage( rLocalName
, xAttributes
, this, m_xImport
.get() );
1705 else if ( rLocalName
== "frame" )
1707 return new Frame( rLocalName
, xAttributes
, this, m_xImport
.get() );
1709 else if ( rLocalName
== "page" )
1711 return new Page( rLocalName
, xAttributes
, this, m_xImport
.get() );
1714 else if ( rLocalName
== "bulletinboard" )
1716 return new BulletinBoardElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1720 throw xml::sax::SAXException( "expected styles, bulletinboard or bulletinboard element, not: " + rLocalName
, Reference
< XInterface
>(), Any() );
1724 BulletinBoardElement::BulletinBoardElement(
1725 OUString
const & rLocalName
,
1726 Reference
< xml::input::XAttributes
> const & xAttributes
,
1727 ElementBase
* pParent
, DialogImport
* pImport
)
1728 : ControlElement( rLocalName
, xAttributes
, pParent
, pImport
)
1730 OUString
aValue( _xAttributes
->getValueByUidName( m_xImport
->XMLNS_DIALOGS_UID
, "left" ) );
1731 if (!aValue
.isEmpty())
1733 _nBasePosX
+= toInt32( aValue
);
1735 aValue
= _xAttributes
->getValueByUidName( m_xImport
->XMLNS_DIALOGS_UID
, "top" );
1736 if (!aValue
.isEmpty())
1738 _nBasePosY
+= toInt32( aValue
);
1743 Reference
< xml::input::XElement
> StyleElement::startChildElement(
1744 sal_Int32
/*nUid*/, OUString
const & /*rLocalName*/,
1745 Reference
< xml::input::XAttributes
> const & /*xAttributes*/ )
1747 throw xml::sax::SAXException( "unexpected sub elements of style!", Reference
< XInterface
>(), Any() );
1750 void StyleElement::endElement()
1752 OUString
aStyleId( _xAttributes
->getValueByUidName( m_xImport
->XMLNS_DIALOGS_UID
, "style-id" ) );
1753 if (aStyleId
.isEmpty())
1755 throw xml::sax::SAXException( "missing style-id attribute!", Reference
< XInterface
>(), Any() );
1758 m_xImport
->addStyle( aStyleId
, this );
1762 Reference
< xml::input::XElement
> StylesElement::startChildElement(
1763 sal_Int32 nUid
, OUString
const & rLocalName
,
1764 Reference
< xml::input::XAttributes
> const & xAttributes
)
1766 if (m_xImport
->XMLNS_DIALOGS_UID
!= nUid
)
1768 throw xml::sax::SAXException( "illegal namespace!", Reference
< XInterface
>(), Any() );
1771 else if ( rLocalName
== "style" )
1773 return new StyleElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1777 throw xml::sax::SAXException( "expected style element!", Reference
< XInterface
>(), Any() );
1782 Reference
< xml::input::XElement
> WindowElement::startChildElement(
1783 sal_Int32 nUid
, OUString
const & rLocalName
,
1784 Reference
< xml::input::XAttributes
> const & xAttributes
)
1787 if (m_xImport
->isEventElement( nUid
, rLocalName
))
1789 return new EventElement( nUid
, rLocalName
, xAttributes
, this, m_xImport
.get() );
1791 else if (m_xImport
->XMLNS_DIALOGS_UID
!= nUid
)
1793 throw xml::sax::SAXException( "illegal namespace!", Reference
< XInterface
>(), Any() );
1796 else if ( rLocalName
== "styles" )
1798 return new StylesElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1801 else if ( rLocalName
== "bulletinboard" )
1803 return new BulletinBoardElement( rLocalName
, xAttributes
, this, m_xImport
.get() );
1807 throw xml::sax::SAXException( "expected styles or bulletinboard element!", Reference
< XInterface
>(), Any() );
1811 void WindowElement::endElement()
1813 Reference
< beans::XPropertySet
> xProps(
1814 m_xImport
->_xDialogModel
, UNO_QUERY_THROW
);
1815 ImportContext
ctx( m_xImport
.get(), xProps
, getControlId( _xAttributes
) );
1817 Reference
< xml::input::XElement
> xStyle( getStyle( _xAttributes
) );
1820 StyleElement
* pStyle
= static_cast< StyleElement
* >( xStyle
.get () );
1821 pStyle
->importBackgroundColorStyle( xProps
);
1822 pStyle
->importTextColorStyle( xProps
);
1823 pStyle
->importTextLineColorStyle( xProps
);
1824 pStyle
->importFontStyle( xProps
);
1827 ctx
.importDefaults( 0, 0, _xAttributes
, false );
1828 ctx
.importBooleanProperty( "Closeable", "closeable", _xAttributes
);
1829 ctx
.importBooleanProperty( "Moveable", "moveable", _xAttributes
);
1830 ctx
.importBooleanProperty("Sizeable", "resizeable", _xAttributes
);
1831 ctx
.importStringProperty("Title", "title", _xAttributes
);
1832 ctx
.importBooleanProperty("Decoration", "withtitlebar", _xAttributes
);
1833 ctx
.importGraphicOrImageProperty("image-src" , _xAttributes
);
1834 ctx
.importScollableSettings( _xAttributes
);
1835 ctx
.importEvents( _events
);
1836 // avoid ring-reference:
1837 // vector< event elements > holding event elements holding this (via _pParent)
1843 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */