diff options
Diffstat (limited to 'xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx')
-rw-r--r-- | xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx b/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx index d73182609010..0a2a2f45b992 100644 --- a/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx +++ b/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx @@ -1701,6 +1701,11 @@ Reference< xml::input::XElement > BulletinBoardElement::startChildElement( { return new ProgressBarElement( rLocalName, xAttributes, this, m_xImport.get() ); } + // table + else if (rLocalName == "table") + { + return new GridControlElement( rLocalName, xAttributes, this, m_xImport.get() ); + } else if ( rLocalName == "multipage" ) { return new MultiPage( rLocalName, xAttributes, this, m_xImport.get() ); @@ -1841,6 +1846,60 @@ void WindowElement::endElement() _events.clear(); } +// table +Reference< xml::input::XElement > GridControlElement::startChildElement( + sal_Int32 nUid, OUString const & rLocalName, + Reference< xml::input::XAttributes > const & xAttributes ) +{ + // event + if (m_xImport->isEventElement( nUid, rLocalName )) + { + return new EventElement( nUid, rLocalName, xAttributes, this, m_xImport.get() ); + } + else + { + throw xml::sax::SAXException( "expected event element!", Reference< XInterface >(), Any() ); + } +} + +void GridControlElement::endElement() +{ + ControlImportContext ctx( m_xImport.get(), getControlId( _xAttributes ), "com.sun.star.awt.grid.UnoControlGridModel"); + Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() ); + Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) ); + if (xStyle.is()) + { + StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () ); + pStyle->importBackgroundColorStyle( xControlModel ); + pStyle->importBorderStyle( xControlModel ); + pStyle->importTextColorStyle( xControlModel ); + pStyle->importTextLineColorStyle( xControlModel ); + pStyle->importFontStyle( xControlModel ); + } + ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes ); + ctx.importBooleanProperty( "Tabstop", "tabstop", _xAttributes ); + ctx.importVerticalAlignProperty( "VerticalAlign", "valign", _xAttributes ); + ctx.importSelectionTypeProperty( "SelectionModel", "selectiontype", _xAttributes ); + ctx.importBooleanProperty( "ShowColumnHeader", "showcolumnheader", _xAttributes ); + ctx.importBooleanProperty( "ShowRowHeader", "showrowheader", _xAttributes ); + ctx.importHexLongProperty( "GridLineColor", "gridline-color", _xAttributes ); + ctx.importBooleanProperty( "UseGridLines", "usegridlines", _xAttributes ); + ctx.importHexLongProperty( "HeaderBackgroundColor", "headerbackground-color", _xAttributes ); + ctx.importHexLongProperty( "HeaderTextColor", "headertext-color", _xAttributes ); + ctx.importHexLongProperty( "ActiveSelectionBackgroundColor", "activeselectionbackground-color", _xAttributes ); + ctx.importHexLongProperty( "ActiveSelectionTextColor", "activeselectiontext-color", _xAttributes ); + ctx.importHexLongProperty( "InactiveSelectionBackgroundColor", "inactiveselectionbackground-color", _xAttributes ); + ctx.importHexLongProperty( "InactiveSelectionTextColor", "inactiveselectiontext-color", _xAttributes ); + ctx.importEvents( _events ); + // avoid ring-reference: + // vector< event elements > holding event elements holding this (via _pParent) + _events.clear(); + + ctx.finish(); +} + +//################################################################################################## + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |