Author: cmarcum Date: Sat Feb 20 14:04:17 2016 New Revision: 1731404 URL: http://svn.apache.org/viewvc?rev=1731404&view=rev Log: #i126770# added getStyleFamiliesSupplier, getCellStylePropertySet
Modified: openoffice/devtools/guno-extension/trunk/src/main/groovy/org/openoffice/guno/SpreadsheetExtension.groovy Modified: openoffice/devtools/guno-extension/trunk/src/main/groovy/org/openoffice/guno/SpreadsheetExtension.groovy URL: http://svn.apache.org/viewvc/openoffice/devtools/guno-extension/trunk/src/main/groovy/org/openoffice/guno/SpreadsheetExtension.groovy?rev=1731404&r1=1731403&r2=1731404&view=diff ============================================================================== --- openoffice/devtools/guno-extension/trunk/src/main/groovy/org/openoffice/guno/SpreadsheetExtension.groovy (original) +++ openoffice/devtools/guno-extension/trunk/src/main/groovy/org/openoffice/guno/SpreadsheetExtension.groovy Sat Feb 20 14:04:17 2016 @@ -23,9 +23,12 @@ package org.openoffice.guno import com.sun.star.beans.XPropertySet +import com.sun.star.container.ElementExistException import com.sun.star.container.XEnumeration import com.sun.star.container.XEnumerationAccess import com.sun.star.container.XIndexAccess +import com.sun.star.container.XNameAccess +import com.sun.star.container.XNameContainer import com.sun.star.frame.XComponentLoader import com.sun.star.lang.XComponent import com.sun.star.lang.XMultiServiceFactory @@ -37,11 +40,13 @@ import com.sun.star.sheet.XSheetCellRang import com.sun.star.sheet.XSpreadsheet import com.sun.star.sheet.XSpreadsheetDocument import com.sun.star.sheet.XSpreadsheets +import com.sun.star.style.XStyleFamiliesSupplier import com.sun.star.table.CellAddress import com.sun.star.table.CellVertJustify import com.sun.star.table.XCell import com.sun.star.uno.UnoRuntime import com.sun.star.uno.XComponentContext +import com.sun.star.uno.XInterface /** @@ -126,8 +131,9 @@ class SpreadsheetExtension { } catch (Exception e) { System.err.println(" Exception " + e) e.printStackTrace(System.err) - return xSpreadsheet + } + return xSpreadsheet } @@ -189,7 +195,7 @@ class SpreadsheetExtension { /** Returns the value of the property. @param prop The name of the property to get. - @return Object value of a type detemined by the property. */ + @return Object value of a type determined by the property. */ static Object getPropertyValue(final XCell self, String prop) { XPropertySet xCellProps = UnoRuntime.queryInterface( XPropertySet.class, self) @@ -224,6 +230,58 @@ class SpreadsheetExtension { return result } + /** Returns the style families supplier + @return XStyleFamiliesSupplier the style families supplier of the spreadsheet document */ + static XStyleFamiliesSupplier getStyleFamiliesSupplier(final XSpreadsheetDocument self) { + XStyleFamiliesSupplier result = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, self) + return result + } + + /** Returns the property set of the cell style if it exists. If not the the cell style is + * created and it's property set is returned. + * @param cellStyle the name of the cell style to return the property set of. + * @return XPropertySet the property set of the cell style */ + static XPropertySet getCellStylePropertySet(final XSpreadsheetDocument self, String cellStyle) { + + try { + XStyleFamiliesSupplier xSFS = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, self) + XNameAccess xSF = xSFS.getStyleFamilies() + // get the cell styles + XNameAccess xCS = UnoRuntime.queryInterface(XNameAccess.class, xSF.getByName("CellStyles")) + + // see if cellStyle exists + if (xCS.hasByName(cellStyle)) { + // get the property set + Object oCS = xCS.getByName(cellStyle) + + XPropertySet result = UnoRuntime.queryInterface(XPropertySet.class, oCS); + return result + + } else { + // add cell style and return property set + // get the service factory + XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, self) + // get the name container + XNameContainer oStyleFamilyNameContainer = UnoRuntime.queryInterface(XNameContainer.class, xCS) + // create the interface + XInterface oInt1 = oDocMSF.createInstance("com.sun.star.style.CellStyle") + + // insert style + oStyleFamilyNameContainer.insertByName(cellStyle, oInt1) + + // get the property set + XPropertySet result = UnoRuntime.queryInterface(XPropertySet.class, oInt1); + return result + } + + } catch (all) { + System.err.println("Error: caught exception in getCellStylePropertySet()!\nException Message = " + + all.getMessage()) + all.printStackTrace() + } + + } + }