diff options
author | Sascha Ballach <sab@openoffice.org> | 2000-11-10 16:52:59 +0000 |
---|---|---|
committer | Sascha Ballach <sab@openoffice.org> | 2000-11-10 16:52:59 +0000 |
commit | 9756a8a1273eb04195c33acbf5d27a4bdf95b15d (patch) | |
tree | 8eb3015a7f8e1721c88a817e29802c924b5d7d1d /sc/source/filter/xml/xmlcoli.cxx | |
parent | 4e656a4a78372f0eb370912f060d861e72ec90e0 (diff) |
use one XSpreadsheet instead of create on every case a new one
Diffstat (limited to 'sc/source/filter/xml/xmlcoli.cxx')
-rw-r--r-- | sc/source/filter/xml/xmlcoli.cxx | 122 |
1 files changed, 48 insertions, 74 deletions
diff --git a/sc/source/filter/xml/xmlcoli.cxx b/sc/source/filter/xml/xmlcoli.cxx index fc02691b867a..2096af6565f2 100644 --- a/sc/source/filter/xml/xmlcoli.cxx +++ b/sc/source/filter/xml/xmlcoli.cxx @@ -2,9 +2,9 @@ * * $RCSfile: xmlcoli.cxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: dr $ $Date: 2000-11-03 16:34:36 $ + * last change: $Author: sab $ $Date: 2000-11-10 17:52:59 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -187,56 +187,43 @@ SvXMLImportContext *ScXMLTableColContext::CreateChildContext( USHORT nPrefix, void ScXMLTableColContext::EndElement() { ScXMLImport& rXMLImport = GetScImport(); - sal_Int16 nSheet = rXMLImport.GetTables().GetCurrentSheet(); + //sal_Int16 nSheet = rXMLImport.GetTables().GetCurrentSheet(); sal_Int32 nCurrentColumn = rXMLImport.GetTables().GetCurrentColumn(); - uno::Reference <sheet::XSpreadsheetDocument> xSheetsDocument (rXMLImport.GetModel(), uno::UNO_QUERY); - if(xSheetsDocument.is()) + uno::Reference<sheet::XSpreadsheet> xSheet = rXMLImport.GetTables().GetCurrentXSheet(); + if(xSheet.is()) { - uno::Reference<sheet::XSpreadsheets> xSheets = xSheetsDocument->getSheets(); - if (xSheets.is()) + uno::Reference<table::XColumnRowRange> xColumnRowRange (xSheet, uno::UNO_QUERY); + if (xColumnRowRange.is()) { - uno::Reference<container::XIndexAccess> xIndex(xSheets, uno::UNO_QUERY); - if (xIndex.is()) + uno::Reference<table::XTableColumns> xTableColumns = xColumnRowRange->getColumns(); + if (xTableColumns.is()) { - uno::Any aSheet = xIndex->getByIndex(nSheet); - uno::Reference<sheet::XSpreadsheet> xSheet; - if(aSheet >>= xSheet) + for (sal_Int32 i = 0; i < nColCount; i++) { - uno::Reference<table::XColumnRowRange> xColumnRowRange (xSheet, uno::UNO_QUERY); - if (xColumnRowRange.is()) + uno::Any aColumn = xTableColumns->getByIndex(i + nCurrentColumn); + uno::Reference<table::XCellRange> xTableColumn; + if (aColumn >>= xTableColumn) { - uno::Reference<table::XTableColumns> xTableColumns = xColumnRowRange->getColumns(); - if (xTableColumns.is()) + uno::Reference <beans::XPropertySet> xColumnProperties(xTableColumn, uno::UNO_QUERY); + if (xColumnProperties.is()) { - for (sal_Int32 i = 0; i < nColCount; i++) + XMLTableStylesContext *pStyles = (XMLTableStylesContext *)&rXMLImport.GetAutoStyles(); + XMLTableStyleContext* pStyle = (XMLTableStyleContext *)pStyles->FindStyleChildContext( + XML_STYLE_FAMILY_TABLE_COLUMN, sStyleName, sal_True); + if (pStyle) { - uno::Any aColumn = xTableColumns->getByIndex(i + nCurrentColumn); - uno::Reference<table::XCellRange> xTableColumn; - if (aColumn >>= xTableColumn) - { - uno::Reference <beans::XPropertySet> xColumnProperties(xTableColumn, uno::UNO_QUERY); - if (xColumnProperties.is()) - { - XMLTableStylesContext *pStyles = (XMLTableStylesContext *)&rXMLImport.GetAutoStyles(); - XMLTableStyleContext* pStyle = (XMLTableStyleContext *)pStyles->FindStyleChildContext( - XML_STYLE_FAMILY_TABLE_COLUMN, sStyleName, sal_True); - if (pStyle) - { - pStyle->FillPropertySet(xColumnProperties); - } - uno::Any aAny = xColumnProperties->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_CELLVIS))); - if (sVisibility.compareToAscii(sXML_visible) == 0) - { - sal_Bool bValue = sal_True; - aAny <<= bValue; - } - else - { - sal_Bool bValue = sal_False; - aAny <<= bValue; - } - } - } + pStyle->FillPropertySet(xColumnProperties); + } + uno::Any aAny = xColumnProperties->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_CELLVIS))); + if (sVisibility.compareToAscii(sXML_visible) == 0) + { + sal_Bool bValue = sal_True; + aAny <<= bValue; + } + else + { + sal_Bool bValue = sal_False; + aAny <<= bValue; } } } @@ -333,45 +320,31 @@ SvXMLImportContext *ScXMLTableColsContext::CreateChildContext( USHORT nPrefix, void ScXMLTableColsContext::EndElement() { ScXMLImport& rXMLImport = GetScImport(); - sal_Int16 nSheet = rXMLImport.GetTables().GetCurrentSheet(); if (bHeader) { nHeaderEndCol = rXMLImport.GetTables().GetCurrentColumn(); nHeaderEndCol--; if (nHeaderStartCol <= nHeaderEndCol) { - uno::Reference <sheet::XSpreadsheetDocument> xSheetsDocument (rXMLImport.GetModel(), uno::UNO_QUERY); - if(xSheetsDocument.is()) + uno::Reference<sheet::XSpreadsheet> xSheet = rXMLImport.GetTables().GetCurrentXSheet(); + if(xSheet.is()) { - uno::Reference<sheet::XSpreadsheets> xSheets = xSheetsDocument->getSheets(); - if (xSheets.is()) + uno::Reference <sheet::XPrintAreas> xPrintAreas (xSheet, uno::UNO_QUERY); + if (xPrintAreas.is()) { - uno::Reference<container::XIndexAccess> xIndex(xSheets, uno::UNO_QUERY); - if (xIndex.is()) + if (!xPrintAreas->getPrintTitleColumns()) { - uno::Any aSheet = xIndex->getByIndex(nSheet); - uno::Reference<sheet::XSpreadsheet> xSheet; - if(aSheet >>= xSheet) - { - uno::Reference <sheet::XPrintAreas> xPrintAreas (xSheet, uno::UNO_QUERY); - if (xPrintAreas.is()) - { - if (!xPrintAreas->getPrintTitleColumns()) - { - xPrintAreas->setPrintTitleColumns(sal_True); - table::CellRangeAddress aColumnHeaderRange; - aColumnHeaderRange.StartColumn = nHeaderStartCol; - aColumnHeaderRange.EndColumn = nHeaderEndCol; - xPrintAreas->setTitleColumns(aColumnHeaderRange); - } - else - { - table::CellRangeAddress aColumnHeaderRange = xPrintAreas->getTitleColumns(); - aColumnHeaderRange.EndColumn = nHeaderEndCol; - xPrintAreas->setTitleColumns(aColumnHeaderRange); - } - } - } + xPrintAreas->setPrintTitleColumns(sal_True); + table::CellRangeAddress aColumnHeaderRange; + aColumnHeaderRange.StartColumn = nHeaderStartCol; + aColumnHeaderRange.EndColumn = nHeaderEndCol; + xPrintAreas->setTitleColumns(aColumnHeaderRange); + } + else + { + table::CellRangeAddress aColumnHeaderRange = xPrintAreas->getTitleColumns(); + aColumnHeaderRange.EndColumn = nHeaderEndCol; + xPrintAreas->setTitleColumns(aColumnHeaderRange); } } } @@ -379,6 +352,7 @@ void ScXMLTableColsContext::EndElement() } else if (bGroup) { + sal_Int16 nSheet = rXMLImport.GetTables().GetCurrentSheet(); nGroupEndCol = rXMLImport.GetTables().GetCurrentColumn(); nGroupEndCol--; if (nGroupStartCol <= nGroupEndCol) |