poi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From n...@apache.org
Subject svn commit: r1677369 - /poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java
Date Sun, 03 May 2015 07:56:40 GMT
Author: nick
Date: Sun May  3 07:56:40 2015
New Revision: 1677369

URL: http://svn.apache.org/r1677369
Log:
Fix inconsistent indents

Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java?rev=1677369&r1=1677368&r2=1677369&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java Sun May  3 07:56:40
2015
@@ -62,73 +62,73 @@ import org.openxmlformats.schemas.spread
  * Table of styles shared across all sheets in a workbook.
  */
 public class StylesTable extends POIXMLDocumentPart {
-	private final Map<Integer, String> numberFormats = new HashMap<Integer,String>();
-	private final boolean[] usedNumberFormats = new boolean[SpreadsheetVersion.EXCEL2007.getMaxCellStyles()];
-	private final List<XSSFFont> fonts = new ArrayList<XSSFFont>();
-	private final List<XSSFCellFill> fills = new ArrayList<XSSFCellFill>();
-	private final List<XSSFCellBorder> borders = new ArrayList<XSSFCellBorder>();
-	private final List<CTXf> styleXfs = new ArrayList<CTXf>();
-	private final List<CTXf> xfs = new ArrayList<CTXf>();
-
-	private final List<CTDxf> dxfs = new ArrayList<CTDxf>();
-
-	/**
-	 * The first style id available for use as a custom style
-	 */
-	public static final int FIRST_CUSTOM_STYLE_ID = BuiltinFormats.FIRST_USER_DEFINED_FORMAT_INDEX
+ 1;
-	private static final int MAXIMUM_STYLE_ID = SpreadsheetVersion.EXCEL2007.getMaxCellStyles();
-
-	private StyleSheetDocument doc;
-	private ThemesTable theme;
-
-	/**
-	 * Create a new, empty StylesTable
-	 */
-	public StylesTable() {
-		super();
-		doc = StyleSheetDocument.Factory.newInstance();
-		doc.addNewStyleSheet();
-		// Initialization required in order to make the document readable by MSExcel
-		initialize();
-	}
-
-	public StylesTable(PackagePart part, PackageRelationship rel) throws IOException {
-		super(part, rel);
-		readFrom(part.getInputStream());
-	}
+    private final Map<Integer, String> numberFormats = new HashMap<Integer,String>();
+    private final boolean[] usedNumberFormats = new boolean[SpreadsheetVersion.EXCEL2007.getMaxCellStyles()];
+    private final List<XSSFFont> fonts = new ArrayList<XSSFFont>();
+    private final List<XSSFCellFill> fills = new ArrayList<XSSFCellFill>();
+    private final List<XSSFCellBorder> borders = new ArrayList<XSSFCellBorder>();
+    private final List<CTXf> styleXfs = new ArrayList<CTXf>();
+    private final List<CTXf> xfs = new ArrayList<CTXf>();
+
+    private final List<CTDxf> dxfs = new ArrayList<CTDxf>();
+
+    /**
+     * The first style id available for use as a custom style
+     */
+    public static final int FIRST_CUSTOM_STYLE_ID = BuiltinFormats.FIRST_USER_DEFINED_FORMAT_INDEX
+ 1;
+    private static final int MAXIMUM_STYLE_ID = SpreadsheetVersion.EXCEL2007.getMaxCellStyles();
+
+    private StyleSheetDocument doc;
+    private ThemesTable theme;
+
+    /**
+     * Create a new, empty StylesTable
+     */
+    public StylesTable() {
+        super();
+        doc = StyleSheetDocument.Factory.newInstance();
+        doc.addNewStyleSheet();
+        // Initialization required in order to make the document readable by MSExcel
+        initialize();
+    }
+
+    public StylesTable(PackagePart part, PackageRelationship rel) throws IOException {
+        super(part, rel);
+        readFrom(part.getInputStream());
+    }
 
-	public ThemesTable getTheme() {
+    public ThemesTable getTheme() {
         return theme;
     }
 
     public void setTheme(ThemesTable theme) {
         this.theme = theme;
-        
+
         // Pass the themes table along to things which need to 
         //  know about it, but have already been created by now
         for(XSSFFont font : fonts) {
-           font.setThemesTable(theme);
+            font.setThemesTable(theme);
         }
         for(XSSFCellBorder border : borders) {
-           border.setThemesTable(theme);
+            border.setThemesTable(theme);
         }
     }
 
-	/**
-	 * Read this shared styles table from an XML file.
-	 *
-	 * @param is The input stream containing the XML document.
-	 * @throws IOException if an error occurs while reading.
-	 */
+    /**
+     * Read this shared styles table from an XML file.
+     *
+     * @param is The input stream containing the XML document.
+     * @throws IOException if an error occurs while reading.
+     */
     @SuppressWarnings("deprecation") //YK: getXYZArray() array accessors are deprecated in
xmlbeans with JDK 1.5 support
-	protected void readFrom(InputStream is) throws IOException {
-		try {
-			doc = StyleSheetDocument.Factory.parse(is);
+    protected void readFrom(InputStream is) throws IOException {
+        try {
+            doc = StyleSheetDocument.Factory.parse(is);
 
             CTStylesheet styleSheet = doc.getStyleSheet();
 
             // Grab all the different bits we care about
-			CTNumFmts ctfmts = styleSheet.getNumFmts();
+            CTNumFmts ctfmts = styleSheet.getNumFmts();
             if( ctfmts != null){
                 for (CTNumFmt nfmt : ctfmts.getNumFmtArray()) {
                     int formatId = (int)nfmt.getNumFmtId();
@@ -139,14 +139,14 @@ public class StylesTable extends POIXMLD
 
             CTFonts ctfonts = styleSheet.getFonts();
             if(ctfonts != null){
-				int idx = 0;
-				for (CTFont font : ctfonts.getFontArray()) {
-				   // Create the font and save it. Themes Table supplied later
-					XSSFFont f = new XSSFFont(font, idx);
-					fonts.add(f);
-					idx++;
-				}
-			}
+                int idx = 0;
+                for (CTFont font : ctfonts.getFontArray()) {
+                    // Create the font and save it. Themes Table supplied later
+                    XSSFFont f = new XSSFFont(font, idx);
+                    fonts.add(f);
+                    idx++;
+                }
+            }
             CTFills ctfills = styleSheet.getFills();
             if(ctfills != null){
                 for (CTFill fill : ctfills.getFillArray()) {
@@ -168,408 +168,407 @@ public class StylesTable extends POIXMLD
             if(cellStyleXfs != null) styleXfs.addAll(Arrays.asList(cellStyleXfs.getXfArray()));
 
             CTDxfs styleDxfs = styleSheet.getDxfs();
-			if(styleDxfs != null) dxfs.addAll(Arrays.asList(styleDxfs.getDxfArray()));
+            if(styleDxfs != null) dxfs.addAll(Arrays.asList(styleDxfs.getDxfArray()));
+
+        } catch (XmlException e) {
+            throw new IOException(e.getLocalizedMessage());
+        }
+    }
 
-		} catch (XmlException e) {
-			throw new IOException(e.getLocalizedMessage());
-		}
-	}
-
-	// ===========================================================
-	//  Start of style related getters and setters
-	// ===========================================================
-
-	public String getNumberFormatAt(int idx) {
-		return numberFormats.get(idx);
-	}
-
-	public int putNumberFormat(String fmt) {
-		if (numberFormats.containsValue(fmt)) {
-			// Find the key, and return that
-			for (Entry<Integer,String> numFmt : numberFormats.entrySet()) {
-				if(numFmt.getValue().equals(fmt)) {
-					return numFmt.getKey();
-				}
-			}
-			throw new IllegalStateException("Found the format, but couldn't figure out where - should
never happen!");
-		}
-
-		// Find a spare key, and add that
-		for (int i=FIRST_CUSTOM_STYLE_ID; i<usedNumberFormats.length; i++) {
-		    if (!usedNumberFormats[i]) {
+    // ===========================================================
+    //  Start of style related getters and setters
+    // ===========================================================
+
+    public String getNumberFormatAt(int idx) {
+        return numberFormats.get(idx);
+    }
+
+    public int putNumberFormat(String fmt) {
+        if (numberFormats.containsValue(fmt)) {
+            // Find the key, and return that
+            for (Entry<Integer,String> numFmt : numberFormats.entrySet()) {
+                if(numFmt.getValue().equals(fmt)) {
+                    return numFmt.getKey();
+                }
+            }
+            throw new IllegalStateException("Found the format, but couldn't figure out where
- should never happen!");
+        }
+
+        // Find a spare key, and add that
+        for (int i=FIRST_CUSTOM_STYLE_ID; i<usedNumberFormats.length; i++) {
+            if (!usedNumberFormats[i]) {
                 usedNumberFormats[i] = true;
-		        numberFormats.put(i, fmt);
-		        return i;
-		    }
-		}
-		throw new IllegalStateException("The maximum number of Data Formats was exceeded. " +
-              "You can define up to " + usedNumberFormats.length + " formats in a .xlsx Workbook");
-	}
-
-	public XSSFFont getFontAt(int idx) {
-		return fonts.get(idx);
-	}
-
-	/**
-	 * Records the given font in the font table.
-	 * Will re-use an existing font index if this
-	 *  font matches another, EXCEPT if forced
-	 *  registration is requested.
-	 * This allows people to create several fonts
-	 *  then customise them later.
-	 * Note - End Users probably want to call
-	 *  {@link XSSFFont#registerTo(StylesTable)}
-	 */
-	public int putFont(XSSFFont font, boolean forceRegistration) {
-		int idx = -1;
-		if(!forceRegistration) {
-			idx = fonts.indexOf(font);
-		}
-
-		if (idx != -1) {
-			return idx;
-		}
-		
-		idx = fonts.size();
-		fonts.add(font);
-		return idx;
-	}
-	public int putFont(XSSFFont font) {
-		return putFont(font, false);
-	}
-
-	public XSSFCellStyle getStyleAt(int idx) {
-		int styleXfId = 0;
-
-		// 0 is the empty default
-		if(xfs.get(idx).getXfId() > 0) {
-			styleXfId = (int) xfs.get(idx).getXfId();
-		}
-
-		return new XSSFCellStyle(idx, styleXfId, this, theme);
-	}
-	public int putStyle(XSSFCellStyle style) {
-		CTXf mainXF = style.getCoreXf();
-
-		if(! xfs.contains(mainXF)) {
-			xfs.add(mainXF);
-		}
-		return xfs.indexOf(mainXF);
-	}
-
-	public XSSFCellBorder getBorderAt(int idx) {
-		return borders.get(idx);
-	}
-
-	public int putBorder(XSSFCellBorder border) {
-		int idx = borders.indexOf(border);
-		if (idx != -1) {
-			return idx;
-		}
-		borders.add(border);
-		border.setThemesTable(theme);
-		return borders.size() - 1;
-	}
-
-	public XSSFCellFill getFillAt(int idx) {
-		return fills.get(idx);
-	}
-
-	public List<XSSFCellBorder> getBorders(){
-		return borders;
-	}
-
-	public List<XSSFCellFill> getFills(){
-		return fills;
-	}
-
-	public List<XSSFFont> getFonts(){
-		return fonts;
-	}
-
-	public Map<Integer, String> getNumberFormats(){
-		return numberFormats;
-	}
-
-	public int putFill(XSSFCellFill fill) {
-		int idx = fills.indexOf(fill);
-		if (idx != -1) {
-			return idx;
-		}
-		fills.add(fill);
-		return fills.size() - 1;
-	}
-
-	public CTXf getCellXfAt(int idx) {
-		return xfs.get(idx);
-	}
-	public int putCellXf(CTXf cellXf) {
-		xfs.add(cellXf);
-		return xfs.size();
-	}
-   public void replaceCellXfAt(int idx, CTXf cellXf) {
-      xfs.set(idx, cellXf);
-   }
-
-	public CTXf getCellStyleXfAt(int idx) {
-		return idx < styleXfs.size() ? styleXfs.get(idx) : null;
-	}
-	public int putCellStyleXf(CTXf cellStyleXf) {
-		styleXfs.add(cellStyleXf);
-		return styleXfs.size();
-	}
-	public void replaceCellStyleXfAt(int idx, CTXf cellStyleXf) {
-	   styleXfs.set(idx, cellStyleXf);
-	}
-	
-	/**
-	 * get the size of cell styles
-	 */
-	public int getNumCellStyles(){
+                numberFormats.put(i, fmt);
+                return i;
+            }
+        }
+        throw new IllegalStateException("The maximum number of Data Formats was exceeded.
" +
+                "You can define up to " + usedNumberFormats.length + " formats in a .xlsx
Workbook");
+    }
+
+    public XSSFFont getFontAt(int idx) {
+        return fonts.get(idx);
+    }
+
+    /**
+     * Records the given font in the font table.
+     * Will re-use an existing font index if this
+     *  font matches another, EXCEPT if forced
+     *  registration is requested.
+     * This allows people to create several fonts
+     *  then customise them later.
+     * Note - End Users probably want to call
+     *  {@link XSSFFont#registerTo(StylesTable)}
+     */
+    public int putFont(XSSFFont font, boolean forceRegistration) {
+        int idx = -1;
+        if(!forceRegistration) {
+            idx = fonts.indexOf(font);
+        }
+
+        if (idx != -1) {
+            return idx;
+        }
+
+        idx = fonts.size();
+        fonts.add(font);
+        return idx;
+    }
+    public int putFont(XSSFFont font) {
+        return putFont(font, false);
+    }
+
+    public XSSFCellStyle getStyleAt(int idx) {
+        int styleXfId = 0;
+
+        // 0 is the empty default
+        if(xfs.get(idx).getXfId() > 0) {
+            styleXfId = (int) xfs.get(idx).getXfId();
+        }
+
+        return new XSSFCellStyle(idx, styleXfId, this, theme);
+    }
+    public int putStyle(XSSFCellStyle style) {
+        CTXf mainXF = style.getCoreXf();
+
+        if(! xfs.contains(mainXF)) {
+            xfs.add(mainXF);
+        }
+        return xfs.indexOf(mainXF);
+    }
+
+    public XSSFCellBorder getBorderAt(int idx) {
+        return borders.get(idx);
+    }
+
+    public int putBorder(XSSFCellBorder border) {
+        int idx = borders.indexOf(border);
+        if (idx != -1) {
+            return idx;
+        }
+        borders.add(border);
+        border.setThemesTable(theme);
+        return borders.size() - 1;
+    }
+
+    public XSSFCellFill getFillAt(int idx) {
+        return fills.get(idx);
+    }
+
+    public List<XSSFCellBorder> getBorders(){
+        return borders;
+    }
+
+    public List<XSSFCellFill> getFills(){
+        return fills;
+    }
+
+    public List<XSSFFont> getFonts(){
+        return fonts;
+    }
+
+    public Map<Integer, String> getNumberFormats(){
+        return numberFormats;
+    }
+
+    public int putFill(XSSFCellFill fill) {
+        int idx = fills.indexOf(fill);
+        if (idx != -1) {
+            return idx;
+        }
+        fills.add(fill);
+        return fills.size() - 1;
+    }
+
+    public CTXf getCellXfAt(int idx) {
+        return xfs.get(idx);
+    }
+    public int putCellXf(CTXf cellXf) {
+        xfs.add(cellXf);
+        return xfs.size();
+    }
+    public void replaceCellXfAt(int idx, CTXf cellXf) {
+        xfs.set(idx, cellXf);
+    }
+
+    public CTXf getCellStyleXfAt(int idx) {
+        return idx < styleXfs.size() ? styleXfs.get(idx) : null;
+    }
+    public int putCellStyleXf(CTXf cellStyleXf) {
+        styleXfs.add(cellStyleXf);
+        return styleXfs.size();
+    }
+    public void replaceCellStyleXfAt(int idx, CTXf cellStyleXf) {
+        styleXfs.set(idx, cellStyleXf);
+    }
+
+    /**
+     * get the size of cell styles
+     */
+    public int getNumCellStyles(){
         // Each cell style has a unique xfs entry
         // Several might share the same styleXfs entry
         return xfs.size();
-	}
+    }
 
-	/**
-	 * For unit testing only
-	 */
-	public int _getNumberFormatSize() {
-		return numberFormats.size();
-	}
-
-	/**
-	 * For unit testing only
-	 */
-	public int _getXfsSize() {
-		return xfs.size();
-	}
-	/**
-	 * For unit testing only
-	 */
-	public int _getStyleXfsSize() {
-		return styleXfs.size();
-	}
-	/**
-	 * For unit testing only!
-	 */
-	public CTStylesheet getCTStylesheet() {
-		return doc.getStyleSheet();
-	}
+    /**
+     * For unit testing only
+     */
+    public int _getNumberFormatSize() {
+        return numberFormats.size();
+    }
+
+    /**
+     * For unit testing only
+     */
+    public int _getXfsSize() {
+        return xfs.size();
+    }
+    /**
+     * For unit testing only
+     */
+    public int _getStyleXfsSize() {
+        return styleXfs.size();
+    }
+    /**
+     * For unit testing only!
+     */
+    public CTStylesheet getCTStylesheet() {
+        return doc.getStyleSheet();
+    }
     public int _getDXfsSize() {
         return dxfs.size();
     }
 
 
-	/**
-	 * Write this table out as XML.
-	 *
-	 * @param out The stream to write to.
-	 * @throws IOException if an error occurs while writing.
-	 */
-	public void writeTo(OutputStream out) throws IOException {
-		XmlOptions options = new XmlOptions(DEFAULT_XML_OPTIONS);
-
-		// Work on the current one
-		// Need to do this, as we don't handle
-		//  all the possible entries yet
-		CTStylesheet styleSheet = doc.getStyleSheet();
-
-		// Formats
-		CTNumFmts formats = CTNumFmts.Factory.newInstance();
-		formats.setCount(numberFormats.size());
-		for (Entry<Integer, String> fmt : numberFormats.entrySet()) {
-			CTNumFmt ctFmt = formats.addNewNumFmt();
-			ctFmt.setNumFmtId(fmt.getKey());
-			ctFmt.setFormatCode(fmt.getValue());
-		}
-		styleSheet.setNumFmts(formats);
-
-		int idx;
-		// Fonts
-		CTFonts ctFonts = styleSheet.getFonts();
-		if (ctFonts == null) {
-			ctFonts = CTFonts.Factory.newInstance();
-		}
-		ctFonts.setCount(fonts.size());
-		CTFont[] ctfnt = new CTFont[fonts.size()];
-		idx = 0;
-		for(XSSFFont f : fonts) ctfnt[idx++] = f.getCTFont();
-		ctFonts.setFontArray(ctfnt);
-		styleSheet.setFonts(ctFonts);
-
-		// Fills
-		CTFills ctFills = styleSheet.getFills();
-		if (ctFills == null) {
-			ctFills = CTFills.Factory.newInstance();
-		}
-		ctFills.setCount(fills.size());
-		CTFill[] ctf = new CTFill[fills.size()];
-		idx = 0;
-		for(XSSFCellFill f : fills) ctf[idx++] = f.getCTFill();
-		ctFills.setFillArray(ctf);
-		styleSheet.setFills(ctFills);
-
-		// Borders
-		CTBorders ctBorders = styleSheet.getBorders();
-		if (ctBorders == null) {
-			ctBorders = CTBorders.Factory.newInstance();
-		}
-		ctBorders.setCount(borders.size());
-		CTBorder[] ctb = new CTBorder[borders.size()];
-		idx = 0;
-		for(XSSFCellBorder b : borders) ctb[idx++] = b.getCTBorder();
-		ctBorders.setBorderArray(ctb);
-		styleSheet.setBorders(ctBorders);
-
-		// Xfs
-		if(xfs.size() > 0) {
-			CTCellXfs ctXfs = styleSheet.getCellXfs();
-			if (ctXfs == null) {
-				ctXfs = CTCellXfs.Factory.newInstance();
-			}
-			ctXfs.setCount(xfs.size());
-			ctXfs.setXfArray(
-					xfs.toArray(new CTXf[xfs.size()])
-			);
-			styleSheet.setCellXfs(ctXfs);
-		}
-
-		// Style xfs
-		if(styleXfs.size() > 0) {
-			CTCellStyleXfs ctSXfs = styleSheet.getCellStyleXfs();
-			if (ctSXfs == null) {
-				ctSXfs = CTCellStyleXfs.Factory.newInstance();
-			}
-			ctSXfs.setCount(styleXfs.size());
-			ctSXfs.setXfArray(
-					styleXfs.toArray(new CTXf[styleXfs.size()])
-			);
-			styleSheet.setCellStyleXfs(ctSXfs);
-		}
-
-		// Style dxfs
-		if(dxfs.size() > 0) {
-			CTDxfs ctDxfs = styleSheet.getDxfs();
-			if (ctDxfs == null) {
-				ctDxfs = CTDxfs.Factory.newInstance();
-			}
-			ctDxfs.setCount(dxfs.size());
-			ctDxfs.setDxfArray(dxfs.toArray(new CTDxf[dxfs.size()])
-			);
-			styleSheet.setDxfs(ctDxfs);
-		}
-
-		// Save
-		doc.save(out, options);
-	}
-
-	@Override
-	protected void commit() throws IOException {
-		PackagePart part = getPackagePart();
-		OutputStream out = part.getOutputStream();
-		writeTo(out);
-		out.close();
-	}
-
-	private void initialize() {
-		//CTFont ctFont = createDefaultFont();
-		XSSFFont xssfFont = createDefaultFont();
-		fonts.add(xssfFont);
-
-		CTFill[] ctFill = createDefaultFills();
-		fills.add(new XSSFCellFill(ctFill[0]));
-		fills.add(new XSSFCellFill(ctFill[1]));
-
-		CTBorder ctBorder = createDefaultBorder();
-		borders.add(new XSSFCellBorder(ctBorder));
-
-		CTXf styleXf = createDefaultXf();
-		styleXfs.add(styleXf);
-		CTXf xf = createDefaultXf();
-		xf.setXfId(0);
-		xfs.add(xf);
-	}
-
-	private static CTXf createDefaultXf() {
-		CTXf ctXf = CTXf.Factory.newInstance();
-		ctXf.setNumFmtId(0);
-		ctXf.setFontId(0);
-		ctXf.setFillId(0);
-		ctXf.setBorderId(0);
-		return ctXf;
-	}
-	private static CTBorder createDefaultBorder() {
-		CTBorder ctBorder = CTBorder.Factory.newInstance();
-		ctBorder.addNewBottom();
-		ctBorder.addNewTop();
-		ctBorder.addNewLeft();
-		ctBorder.addNewRight();
-		ctBorder.addNewDiagonal();
-		return ctBorder;
-	}
-
-
-	private static CTFill[] createDefaultFills() {
-		CTFill[] ctFill = new CTFill[]{CTFill.Factory.newInstance(),CTFill.Factory.newInstance()};
-		ctFill[0].addNewPatternFill().setPatternType(STPatternType.NONE);
-		ctFill[1].addNewPatternFill().setPatternType(STPatternType.DARK_GRAY);
-		return ctFill;
-	}
-
-	private static XSSFFont createDefaultFont() {
-		CTFont ctFont = CTFont.Factory.newInstance();
-		XSSFFont xssfFont=new XSSFFont(ctFont, 0);
-		xssfFont.setFontHeightInPoints(XSSFFont.DEFAULT_FONT_SIZE);
-		xssfFont.setColor(XSSFFont.DEFAULT_FONT_COLOR);//setTheme
-		xssfFont.setFontName(XSSFFont.DEFAULT_FONT_NAME);
-		xssfFont.setFamily(FontFamily.SWISS);
-		xssfFont.setScheme(FontScheme.MINOR);
-		return xssfFont;
-	}
-
-	public CTDxf getDxfAt(int idx) {
-		return dxfs.get(idx);
-	}
-
-	public int putDxf(CTDxf dxf) {
-		this.dxfs.add(dxf);
-		return this.dxfs.size();
-	}
+    /**
+     * Write this table out as XML.
+     *
+     * @param out The stream to write to.
+     * @throws IOException if an error occurs while writing.
+     */
+    public void writeTo(OutputStream out) throws IOException {
+        XmlOptions options = new XmlOptions(DEFAULT_XML_OPTIONS);
+
+        // Work on the current one
+        // Need to do this, as we don't handle
+        //  all the possible entries yet
+        CTStylesheet styleSheet = doc.getStyleSheet();
+
+        // Formats
+        CTNumFmts formats = CTNumFmts.Factory.newInstance();
+        formats.setCount(numberFormats.size());
+        for (Entry<Integer, String> fmt : numberFormats.entrySet()) {
+            CTNumFmt ctFmt = formats.addNewNumFmt();
+            ctFmt.setNumFmtId(fmt.getKey());
+            ctFmt.setFormatCode(fmt.getValue());
+        }
+        styleSheet.setNumFmts(formats);
+
+        int idx;
+        // Fonts
+        CTFonts ctFonts = styleSheet.getFonts();
+        if (ctFonts == null) {
+            ctFonts = CTFonts.Factory.newInstance();
+        }
+        ctFonts.setCount(fonts.size());
+        CTFont[] ctfnt = new CTFont[fonts.size()];
+        idx = 0;
+        for(XSSFFont f : fonts) ctfnt[idx++] = f.getCTFont();
+        ctFonts.setFontArray(ctfnt);
+        styleSheet.setFonts(ctFonts);
+
+        // Fills
+        CTFills ctFills = styleSheet.getFills();
+        if (ctFills == null) {
+            ctFills = CTFills.Factory.newInstance();
+        }
+        ctFills.setCount(fills.size());
+        CTFill[] ctf = new CTFill[fills.size()];
+        idx = 0;
+        for(XSSFCellFill f : fills) ctf[idx++] = f.getCTFill();
+        ctFills.setFillArray(ctf);
+        styleSheet.setFills(ctFills);
+
+        // Borders
+        CTBorders ctBorders = styleSheet.getBorders();
+        if (ctBorders == null) {
+            ctBorders = CTBorders.Factory.newInstance();
+        }
+        ctBorders.setCount(borders.size());
+        CTBorder[] ctb = new CTBorder[borders.size()];
+        idx = 0;
+        for(XSSFCellBorder b : borders) ctb[idx++] = b.getCTBorder();
+        ctBorders.setBorderArray(ctb);
+        styleSheet.setBorders(ctBorders);
+
+        // Xfs
+        if(xfs.size() > 0) {
+            CTCellXfs ctXfs = styleSheet.getCellXfs();
+            if (ctXfs == null) {
+                ctXfs = CTCellXfs.Factory.newInstance();
+            }
+            ctXfs.setCount(xfs.size());
+            ctXfs.setXfArray(
+                    xfs.toArray(new CTXf[xfs.size()])
+            );
+            styleSheet.setCellXfs(ctXfs);
+        }
+
+        // Style xfs
+        if(styleXfs.size() > 0) {
+            CTCellStyleXfs ctSXfs = styleSheet.getCellStyleXfs();
+            if (ctSXfs == null) {
+                ctSXfs = CTCellStyleXfs.Factory.newInstance();
+            }
+            ctSXfs.setCount(styleXfs.size());
+            ctSXfs.setXfArray(
+                    styleXfs.toArray(new CTXf[styleXfs.size()])
+            );
+            styleSheet.setCellStyleXfs(ctSXfs);
+        }
+
+        // Style dxfs
+        if(dxfs.size() > 0) {
+            CTDxfs ctDxfs = styleSheet.getDxfs();
+            if (ctDxfs == null) {
+                ctDxfs = CTDxfs.Factory.newInstance();
+            }
+            ctDxfs.setCount(dxfs.size());
+            ctDxfs.setDxfArray(dxfs.toArray(new CTDxf[dxfs.size()]));
+            styleSheet.setDxfs(ctDxfs);
+        }
+
+        // Save
+        doc.save(out, options);
+    }
+
+    @Override
+    protected void commit() throws IOException {
+        PackagePart part = getPackagePart();
+        OutputStream out = part.getOutputStream();
+        writeTo(out);
+        out.close();
+    }
+
+    private void initialize() {
+        //CTFont ctFont = createDefaultFont();
+        XSSFFont xssfFont = createDefaultFont();
+        fonts.add(xssfFont);
+
+        CTFill[] ctFill = createDefaultFills();
+        fills.add(new XSSFCellFill(ctFill[0]));
+        fills.add(new XSSFCellFill(ctFill[1]));
+
+        CTBorder ctBorder = createDefaultBorder();
+        borders.add(new XSSFCellBorder(ctBorder));
+
+        CTXf styleXf = createDefaultXf();
+        styleXfs.add(styleXf);
+        CTXf xf = createDefaultXf();
+        xf.setXfId(0);
+        xfs.add(xf);
+    }
 
-	public XSSFCellStyle createCellStyle() {
+    private static CTXf createDefaultXf() {
+        CTXf ctXf = CTXf.Factory.newInstance();
+        ctXf.setNumFmtId(0);
+        ctXf.setFontId(0);
+        ctXf.setFillId(0);
+        ctXf.setBorderId(0);
+        return ctXf;
+    }
+    private static CTBorder createDefaultBorder() {
+        CTBorder ctBorder = CTBorder.Factory.newInstance();
+        ctBorder.addNewBottom();
+        ctBorder.addNewTop();
+        ctBorder.addNewLeft();
+        ctBorder.addNewRight();
+        ctBorder.addNewDiagonal();
+        return ctBorder;
+    }
+
+
+    private static CTFill[] createDefaultFills() {
+        CTFill[] ctFill = new CTFill[]{CTFill.Factory.newInstance(),CTFill.Factory.newInstance()};
+        ctFill[0].addNewPatternFill().setPatternType(STPatternType.NONE);
+        ctFill[1].addNewPatternFill().setPatternType(STPatternType.DARK_GRAY);
+        return ctFill;
+    }
+
+    private static XSSFFont createDefaultFont() {
+        CTFont ctFont = CTFont.Factory.newInstance();
+        XSSFFont xssfFont=new XSSFFont(ctFont, 0);
+        xssfFont.setFontHeightInPoints(XSSFFont.DEFAULT_FONT_SIZE);
+        xssfFont.setColor(XSSFFont.DEFAULT_FONT_COLOR);//setTheme
+        xssfFont.setFontName(XSSFFont.DEFAULT_FONT_NAME);
+        xssfFont.setFamily(FontFamily.SWISS);
+        xssfFont.setScheme(FontScheme.MINOR);
+        return xssfFont;
+    }
+
+    public CTDxf getDxfAt(int idx) {
+        return dxfs.get(idx);
+    }
+
+    public int putDxf(CTDxf dxf) {
+        this.dxfs.add(dxf);
+        return this.dxfs.size();
+    }
+
+    public XSSFCellStyle createCellStyle() {
         int xfSize = styleXfs.size();
         if (xfSize > MAXIMUM_STYLE_ID)
             throw new IllegalStateException("The maximum number of Cell Styles was exceeded.
" +
                       "You can define up to " + MAXIMUM_STYLE_ID + " style in a .xlsx Workbook");
-        
-		CTXf xf = CTXf.Factory.newInstance();
-		xf.setNumFmtId(0);
-		xf.setFontId(0);
-		xf.setFillId(0);
-		xf.setBorderId(0);
-		xf.setXfId(0);
-		int indexXf = putCellXf(xf);
-		return new XSSFCellStyle(indexXf - 1, xfSize - 1, this, theme);
-	}
-
-	/**
-	 * Finds a font that matches the one with the supplied attributes
-	 */
-	public XSSFFont findFont(short boldWeight, short color, short fontHeight, String name, boolean
italic, boolean strikeout, short typeOffset, byte underline) {
-		for (XSSFFont font : fonts) {
-			if (	(font.getBoldweight() == boldWeight)
-					&& font.getColor() == color
-					&& font.getFontHeight() == fontHeight
-					&& font.getFontName().equals(name)
-					&& font.getItalic() == italic
-					&& font.getStrikeout() == strikeout
-					&& font.getTypeOffset() == typeOffset
-					&& font.getUnderline() == underline)
-			{
-				return font;
-			}
-		}
-		return null;
-	}
+
+        CTXf xf = CTXf.Factory.newInstance();
+        xf.setNumFmtId(0);
+        xf.setFontId(0);
+        xf.setFillId(0);
+        xf.setBorderId(0);
+        xf.setXfId(0);
+        int indexXf = putCellXf(xf);
+        return new XSSFCellStyle(indexXf - 1, xfSize - 1, this, theme);
+    }
+
+    /**
+     * Finds a font that matches the one with the supplied attributes
+     */
+    public XSSFFont findFont(short boldWeight, short color, short fontHeight, String name,
boolean italic, boolean strikeout, short typeOffset, byte underline) {
+        for (XSSFFont font : fonts) {
+            if (	(font.getBoldweight() == boldWeight)
+                    && font.getColor() == color
+                    && font.getFontHeight() == fontHeight
+                    && font.getFontName().equals(name)
+                    && font.getItalic() == italic
+                    && font.getStrikeout() == strikeout
+                    && font.getTypeOffset() == typeOffset
+                    && font.getUnderline() == underline)
+            {
+                return font;
+            }
+        }
+        return null;
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org


Mime
View raw message