/********************************************************************* * * Copyright (C) 2002 Andrew Khan * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ***************************************************************************/ package jxl.biff; import jxl.format.Format; /** * The excel string for the various built in formats. Used to present * the cell format information back to the user * * The difference between this class and the various format object contained * in the jxl.write package is that this object contains the Excel strings, * not their java equivalents */ final class BuiltInFormat implements Format, DisplayFormat { /** * The excel format string */ private String formatString; /** * The index */ private int formatIndex; /** * Constructor * * @param s the format string * @param i the format index */ private BuiltInFormat(String s, int i) { formatIndex = i; formatString = s; } /** * Accesses the excel format string which is applied to the cell * Note that this is the string that excel uses, and not the java * equivalent * * @return the cell format string */ public String getFormatString() { return formatString; } /** * Accessor for the index style of this format * * @return the index for this format */ public int getFormatIndex() { return formatIndex; } /** * Accessor to see whether this format has been initialized * * @return TRUE if initialized, FALSE otherwise */ public boolean isInitialized() { return true; } /** * Initializes this format with the specified index number * * @param pos the position of this format record in the workbook */ public void initialize(int pos) { } /** * Accessor to determine whether or not this format is built in * * @return TRUE if this format is a built in format, FALSE otherwise */ public boolean isBuiltIn() { return true; } /** * Equals method * * @return TRUE if the two built in formats are equal, FALSE otherwise */ public boolean equals(Object o) { if (o == this) { return true; } if (!(o instanceof BuiltInFormat)) { return false; } BuiltInFormat bif = (BuiltInFormat) o; return (formatIndex == bif.formatIndex); } /** * The list of built in formats */ public static BuiltInFormat[] builtIns = new BuiltInFormat[0x32]; // Populate the built ins static { builtIns[0x0] = new BuiltInFormat("", 0); builtIns[0x1] = new BuiltInFormat("0", 1); builtIns[0x2] = new BuiltInFormat("0.00", 2); builtIns[0x3] = new BuiltInFormat("#,##0", 3); builtIns[0x4] = new BuiltInFormat("#,##0.00", 4); builtIns[0x5] = new BuiltInFormat("($#,##0_);($#,##0)", 5); builtIns[0x6] = new BuiltInFormat("($#,##0_);[Red]($#,##0)", 6); builtIns[0x7] = new BuiltInFormat("($#,##0_);[Red]($#,##0)", 7); builtIns[0x8] = new BuiltInFormat("($#,##0.00_);[Red]($#,##0.00)", 8); builtIns[0x9] = new BuiltInFormat("0%", 9); builtIns[0xa] = new BuiltInFormat("0.00%", 10); builtIns[0xb] = new BuiltInFormat("0.00E+00", 11); builtIns[0xc] = new BuiltInFormat("# ?/?", 12); builtIns[0xd] = new BuiltInFormat("# ??/??", 13); builtIns[0xe] = new BuiltInFormat("dd/mm/yyyy", 14); builtIns[0xf] = new BuiltInFormat("d-mmm-yy", 15); builtIns[0x10] = new BuiltInFormat("d-mmm", 16); builtIns[0x11] = new BuiltInFormat("mmm-yy", 17); builtIns[0x12] = new BuiltInFormat("h:mm AM/PM", 18); builtIns[0x13] = new BuiltInFormat("h:mm:ss AM/PM", 19); builtIns[0x14] = new BuiltInFormat("h:mm", 20); builtIns[0x15] = new BuiltInFormat("h:mm:ss", 21); builtIns[0x16] = new BuiltInFormat("m/d/yy h:mm", 22); builtIns[0x25] = new BuiltInFormat("(#,##0_);(#,##0)", 0x25); builtIns[0x26] = new BuiltInFormat("(#,##0_);[Red](#,##0)", 0x26); builtIns[0x27] = new BuiltInFormat("(#,##0.00_);(#,##0.00)", 0x27); builtIns[0x28] = new BuiltInFormat("(#,##0.00_);[Red](#,##0.00)", 0x28); builtIns[0x29] = new BuiltInFormat ("_(*#,##0_);_(*(#,##0);_(*\"-\"_);(@_)", 0x29); builtIns[0x2a] = new BuiltInFormat ("_($*#,##0_);_($*(#,##0);_($*\"-\"_);(@_)", 0x2a); builtIns[0x2b] = new BuiltInFormat ("_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);(@_)", 0x2b); builtIns[0x2c] = new BuiltInFormat ("_($* #,##0.00_);_($* (#,##0.00);_($* \"-\"??_);(@_)", 0x2c); builtIns[0x2d] = new BuiltInFormat("mm:ss", 0x2d); builtIns[0x2e] = new BuiltInFormat("[h]mm:ss", 0x2e); builtIns[0x2f] = new BuiltInFormat("mm:ss.0", 0x2f); builtIns[0x30] = new BuiltInFormat("##0.0E+0", 0x30); builtIns[0x31] = new BuiltInFormat("@", 0x31); } }