View | Details | Raw Unified | Return to bug 15743
Collapse All | Expand All

(-)src/documentation/xdocs/hssf/quick-guide.xml (+55 lines)
Lines 27-32 Link Here
27
                    <li><link href="#FrillsAndFills">Fills and color</link></li>
27
                    <li><link href="#FrillsAndFills">Fills and color</link></li>
28
                    <li><link href="#MergedCells">Merging cells</link></li>
28
                    <li><link href="#MergedCells">Merging cells</link></li>
29
                    <li><link href="#WorkingWithFonts">Working with fonts</link></li>
29
                    <li><link href="#WorkingWithFonts">Working with fonts</link></li>
30
                    <li><link href="#CustomColors">Custom colors</link></li>
30
                    <li><link href="#ReadWriteWorkbook">Reading and writing</link></li>
31
                    <li><link href="#ReadWriteWorkbook">Reading and writing</link></li>
31
                    <li><link href="#NewLinesInCells">Use newlines in cells.</link></li>
32
                    <li><link href="#NewLinesInCells">Use newlines in cells.</link></li>
32
                    <li><link href="#DataFormats">Create user defined data formats.</link></li>
33
                    <li><link href="#DataFormats">Create user defined data formats.</link></li>
Lines 278-283 Link Here
278
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
279
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
279
    wb.write(fileOut);
280
    wb.write(fileOut);
280
    fileOut.close();
281
    fileOut.close();
282
                    </source>
283
                </section>
284
                <anchor id="CustomColors"/>
285
                <section title="Custom colors">
286
                    <source>
287
    HSSFWorkbook wb = new HSSFWorkbook();
288
    HSSFSheet sheet = wb.createSheet();
289
    HSSFRow row = sheet.createRow((short) 0);
290
    HSSFCell cell = row.createCell((short) 0);
291
    cell.setCellValue("Default Palette");
292
293
    //apply some colors from the standard palette,
294
    // as in the previous examples.
295
    //we'll use red text on a lime background
296
297
    HSSFCellStyle style = wb.createCellStyle();
298
    style.setFillForegroundColor(HSSFColor.LIME.index);
299
    style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
300
301
    HSSFFont font = wb.createFont();
302
    font.setColor(HSSFColor.RED.index);
303
    style.setFont(font);
304
305
    cell.setCellStyle(style);
306
307
    //save with the default palette
308
    FileOutputStream out = new FileOutputStream("default_palette.xls");
309
    wb.write(out);
310
    out.close();
311
312
    //now, let's replace RED and LIME in the palette
313
    // with a more attractive combination
314
    // (lovingly borrowed from freebsd.org)
315
316
    cell.setCellValue("Modified Palette");
317
318
    //creating a custom palette for the workbook
319
    HSSFPalette palette = wb.getCustomPalette();
320
321
    //replacing the standard red with freebsd.org red
322
    palette.setColorAtIndex(HSSFColor.RED.index,
323
            (byte) 153,  //RGB red (0-255)
324
            (byte) 0,    //RGB green
325
            (byte) 0     //RGB blue
326
    );
327
    //replacing lime with freebsd.org gold
328
    palette.setColorAtIndex(HSSFColor.LIME.index, (byte) 255, (byte) 204, (byte) 102);
329
330
    //save with the modified palette
331
    // note that wherever we have previously used RED or LIME, the
332
    // new colors magically appear
333
    out = new FileOutputStream("modified_palette.xls");
334
    wb.write(out);
335
    out.close();
281
                    </source>
336
                    </source>
282
                </section>
337
                </section>
283
                <anchor id="ReadWriteWorkbook"/>
338
                <anchor id="ReadWriteWorkbook"/>
(-)src/java/org/apache/poi/hssf/model/Workbook.java (-1 / +40 lines)
Lines 89-94 Link Here
89
 * @author  Sergei Kozello (sergeikozello at mail.ru)
89
 * @author  Sergei Kozello (sergeikozello at mail.ru)
90
 * @author  Luc Girardin (luc dot girardin at macrofocus dot com)
90
 * @author  Luc Girardin (luc dot girardin at macrofocus dot com)
91
 * @author  Dan Sherman (dsherman at isisph.com)
91
 * @author  Dan Sherman (dsherman at isisph.com)
92
 * @author  Brian Sanders (bsanders at risklabs dot com) - custom palette
92
 * @see org.apache.poi.hssf.usermodel.HSSFWorkbook
93
 * @see org.apache.poi.hssf.usermodel.HSSFWorkbook
93
 * @version 1.0-pre
94
 * @version 1.0-pre
94
 */
95
 */
Lines 146-151 Link Here
146
    private int                backuppos   = 0;   // holds the position of the backup record.
147
    private int                backuppos   = 0;   // holds the position of the backup record.
147
    private int                namepos   = 0;   // holds the position of last name record
148
    private int                namepos   = 0;   // holds the position of last name record
148
    private int                supbookpos   = 0;   // holds the position of sup book
149
    private int                supbookpos   = 0;   // holds the position of sup book
150
    private int                palettepos  = 0;   // hold the position of the palette, if applicable
149
    private short              maxformatid  = -1;  // holds the max format id
151
    private short              maxformatid  = -1;  // holds the max format id
150
    private boolean            uses1904datewindowing  = false;  // whether 1904 date windowing is being used
152
    private boolean            uses1904datewindowing  = false;  // whether 1904 date windowing is being used
151
153
Lines 249-255 Link Here
249
                    log.log(DEBUG, "found datewindow1904 record at " + k);
251
                    log.log(DEBUG, "found datewindow1904 record at " + k);
250
                    retval.uses1904datewindowing = ((DateWindow1904Record)rec).getWindowing() == 1;
252
                    retval.uses1904datewindowing = ((DateWindow1904Record)rec).getWindowing() == 1;
251
                    break;
253
                    break;
252
254
                case PaletteRecord.sid:
255
                    log.log(DEBUG, "found palette record at " + k);
256
                    retval.palettepos = k;
253
                default :
257
                default :
254
            }
258
            }
255
            records.add(rec);
259
            records.add(rec);
Lines 328-333 Link Here
328
        {
332
        {
329
            records.add( retval.createStyle( k ) );
333
            records.add( retval.createStyle( k ) );
330
        }
334
        }
335
        retval.palettepos = records.size();
331
        records.add( retval.createUseSelFS() );
336
        records.add( retval.createUseSelFS() );
332
        for ( int k = 0; k < 1; k++ )
337
        for ( int k = 0; k < 1; k++ )
333
        {   // now just do 1
338
        {   // now just do 1
Lines 578-583 Link Here
578
        ExtendedFormatRecord xf = createExtendedFormat();
583
        ExtendedFormatRecord xf = createExtendedFormat();
579
584
580
        ++xfpos;
585
        ++xfpos;
586
        ++palettepos;
581
        ++bspos;
587
        ++bspos;
582
        records.add(xfpos, xf);
588
        records.add(xfpos, xf);
583
        numxfs++;
589
        numxfs++;
Lines 1567-1572 Link Here
1567
    }
1573
    }
1568
1574
1569
    /**
1575
    /**
1576
     * Creates a palette record initialized to the default palette
1577
     * @return a PaletteRecord instance populated with the default colors
1578
     * @see org.apache.poi.hssf.record.PaletteRecord
1579
     */
1580
    protected PaletteRecord createPalette()
1581
    {
1582
        return new PaletteRecord(PaletteRecord.sid);
1583
    }
1584
    
1585
    /**
1570
     * Creates the UseSelFS object with the use natural language flag set to 0 (false)
1586
     * Creates the UseSelFS object with the use natural language flag set to 0 (false)
1571
     * @return record containing a UseSelFSRecord
1587
     * @return record containing a UseSelFSRecord
1572
     * @see org.apache.poi.hssf.record.UseSelFSRecord
1588
     * @see org.apache.poi.hssf.record.UseSelFSRecord
Lines 1864-1869 Link Here
1864
    public short createFormat( String format )
1880
    public short createFormat( String format )
1865
    {
1881
    {
1866
        ++xfpos;	//These are to ensure that positions are updated properly
1882
        ++xfpos;	//These are to ensure that positions are updated properly
1883
        ++palettepos;
1867
        ++bspos;
1884
        ++bspos;
1868
        FormatRecord rec = new FormatRecord();
1885
        FormatRecord rec = new FormatRecord();
1869
        maxformatid = maxformatid >= (short) 0xa4 ? (short) ( maxformatid + 1 ) : (short) 0xa4; //Starting value from M$ empiracle study.
1886
        maxformatid = maxformatid >= (short) 0xa4 ? (short) ( maxformatid + 1 ) : (short) 0xa4; //Starting value from M$ empiracle study.
Lines 1941-1946 Link Here
1941
//    {
1958
//    {
1942
//        backuppos += chartRecords.size();
1959
//        backuppos += chartRecords.size();
1943
//        fontpos += chartRecords.size();
1960
//        fontpos += chartRecords.size();
1961
//        palettepos += chartRecords.size();
1944
//        bspos += chartRecords.size();
1962
//        bspos += chartRecords.size();
1945
//        xfpos += chartRecords.size();
1963
//        xfpos += chartRecords.size();
1946
//
1964
//
Lines 1955-1959 Link Here
1955
    */
1973
    */
1956
    public boolean isUsing1904DateWindowing() {
1974
    public boolean isUsing1904DateWindowing() {
1957
        return uses1904datewindowing;
1975
        return uses1904datewindowing;
1976
    }
1977
    
1978
    /**
1979
     * Returns the custom palette in use for this workbook; if a custom palette record
1980
     * does not exist, then it is created.
1981
     */
1982
    public PaletteRecord getCustomPalette()
1983
    {
1984
        PaletteRecord palette;
1985
        Record rec = (Record) records.get(palettepos);
1986
        if (rec instanceof PaletteRecord)
1987
        {
1988
            palette = (PaletteRecord) rec;
1989
        }
1990
        else
1991
        {
1992
            palette = createPalette();
1993
            records.add(palettepos, palette);
1994
            ++bspos;
1995
        }
1996
        return palette;
1958
    }
1997
    }
1959
}
1998
}
(-)src/java/org/apache/poi/hssf/record/PaletteRecord.java (-8 / +132 lines)
Lines 63-68 Link Here
63
/**
63
/**
64
 * PaletteRecord - Supports custom palettes.
64
 * PaletteRecord - Supports custom palettes.
65
 * @author Andrew C. Oliver (acoliver at apache dot org)
65
 * @author Andrew C. Oliver (acoliver at apache dot org)
66
 * @author Brian Sanders (bsanders at risklabs dot com) - custom palette editing
66
 * @version 2.0-pre
67
 * @version 2.0-pre
67
 */
68
 */
68
69
Lines 70-82 Link Here
70
    extends Record
71
    extends Record
71
{
72
{
72
    public final static short sid = 0x92;
73
    public final static short sid = 0x92;
73
74
    /** The standard size of an XLS palette */
75
    public final static byte STANDARD_PALETTE_SIZE = (byte) 56;
76
    /** The byte index of the first color */
77
    public final static short FIRST_COLOR_INDEX = (short) 0x8;
78
    
74
    private short field_1_numcolors;
79
    private short field_1_numcolors;
75
    private List  field_2_colors;
80
    private List  field_2_colors;
76
81
77
    public PaletteRecord()
82
    public PaletteRecord()
78
    {
83
    {
79
    }
84
    }
85
    
86
    /**
87
     * Constructs a custom palette with the default set of colors
88
     */
89
    public PaletteRecord(short id)
90
    {
91
        super(id, STANDARD_PALETTE_SIZE, getDefaultData());
92
    }
80
93
81
    /**
94
    /**
82
     * Constructs a PaletteRecord record and sets its fields appropriately.
95
     * Constructs a PaletteRecord record and sets its fields appropriately.
Lines 131-137 Link Here
131
    {
144
    {
132
        StringBuffer buffer = new StringBuffer();
145
        StringBuffer buffer = new StringBuffer();
133
146
134
        buffer.append("[Palette]\n");
147
        buffer.append("[PALETTE]\n");
135
        buffer.append("  numcolors     = ").append(field_1_numcolors)
148
        buffer.append("  numcolors     = ").append(field_1_numcolors)
136
              .append('\n');
149
              .append('\n');
137
        for (int k = 0; k < field_1_numcolors; k++) {
150
        for (int k = 0; k < field_1_numcolors; k++) {
Lines 142-157 Link Here
142
        buffer.append("/*colornum      = ").append(k)
155
        buffer.append("/*colornum      = ").append(k)
143
              .append('\n');
156
              .append('\n');
144
        }
157
        }
145
        buffer.append("[/Palette]\n");
158
        buffer.append("[/PALETTE]\n");
146
        return buffer.toString();
159
        return buffer.toString();
147
    }
160
    }
148
161
149
    public int serialize(int offset, byte [] data)
162
    public int serialize(int offset, byte [] data)
150
    {
163
    {
151
        LittleEndian.putShort(data, 0 + offset, sid);
164
        LittleEndian.putShort(data, 0 + offset, sid);
165
        LittleEndian.putShort(data, 2 + offset, (short) (getRecordSize() - 4));
166
        LittleEndian.putShort(data, 4 + offset, field_1_numcolors);
152
        for (int k = 0; k < field_1_numcolors; k++) {
167
        for (int k = 0; k < field_1_numcolors; k++) {
153
          PColor c = (PColor)field_2_colors.get(k);
168
          PColor c = (PColor)field_2_colors.get(k);
154
          c.serialize(data, (2+offset+(k*4)));
169
          c.serialize(data, (6+offset+(k*4)));
155
        }
170
        }
156
171
157
        return getRecordSize();
172
        return getRecordSize();
Lines 159-165 Link Here
159
174
160
    public int getRecordSize()
175
    public int getRecordSize()
161
    {
176
    {
162
        return 2 + (field_1_numcolors * 4);
177
        return 4 + 2 + (field_1_numcolors * 4);
163
    }
178
    }
164
179
165
    public short getSid()
180
    public short getSid()
Lines 167-172 Link Here
167
        return this.sid;
182
        return this.sid;
168
    }
183
    }
169
184
185
    /**
186
     * Returns the color value at a given index
187
     *
188
     * @return the RGB triplet for the color, or null if the specified index
189
     * does not exist
190
     */
191
    public byte[] getColor(short byteIndex)
192
    {
193
        int i = byteIndex - FIRST_COLOR_INDEX;
194
        if (i < 0 || i >= field_2_colors.size())
195
        {
196
            return null;
197
        }
198
        PColor color = (PColor) field_2_colors.get(i);
199
        return new byte[] { color.red, color.green, color.blue };
200
    }
201
    
202
    /**
203
     * Sets the color value at a given index
204
     *
205
     * If the given index is greater than the current last color index,
206
     * then black is inserted at every index required to make the palette continuous.
207
     *
208
     * @param i the index to set; if this index is less than 0x8 or greater than
209
     * 0x40, then no modification is made
210
     */
211
    public void setColor(short byteIndex, byte red, byte green, byte blue)
212
    {
213
        int i = byteIndex - FIRST_COLOR_INDEX;
214
        if (i < 0 || i >= STANDARD_PALETTE_SIZE)
215
        {
216
            return;
217
        }
218
        while (field_2_colors.size() <= i)
219
        {
220
            field_2_colors.add(new PColor((byte) 0, (byte) 0, (byte) 0));
221
        }
222
        PColor custColor = new PColor(red, green, blue);
223
        field_2_colors.set(i, custColor);
224
    }
225
    
226
    /**
227
     * Returns the default palette as PaletteRecord binary data
228
     *
229
     * @see org.apache.poi.hssf.model.Workbook#createPalette
230
     */
231
    public static byte[] getDefaultData()
232
    {
233
        return new byte[]
234
        {
235
            STANDARD_PALETTE_SIZE, (byte) 0,
236
            (byte) 0, (byte) 0, (byte) 0, (byte) 0, //color 0...
237
            (byte) 255, (byte) 255, (byte) 255, (byte) 0,
238
            (byte) 255, (byte) 0, (byte) 0, (byte) 0,
239
            (byte) 0, (byte) 255, (byte) 0, (byte) 0,
240
            (byte) 0, (byte) 0, (byte) 255, (byte) 0,
241
            (byte) 255, (byte) 255, (byte) 0, (byte) 0,
242
            (byte) 255, (byte) 0, (byte) 255, (byte) 0,
243
            (byte) 0, (byte) 255, (byte) 255, (byte) 0,
244
            (byte) 128, (byte) 0, (byte) 0, (byte) 0,
245
            (byte) 0, (byte) 128, (byte) 0, (byte) 0,
246
            (byte) 0, (byte) 0, (byte) 128, (byte) 0,
247
            (byte) 128, (byte) 128, (byte) 0, (byte) 0,
248
            (byte) 128, (byte) 0, (byte) 128, (byte) 0,
249
            (byte) 0, (byte) 128, (byte) 128, (byte) 0,
250
            (byte) 192, (byte) 192, (byte) 192, (byte) 0,
251
            (byte) 128, (byte) 128, (byte) 128, (byte) 0,
252
            (byte) 153, (byte) 153, (byte) 255, (byte) 0,
253
            (byte) 153, (byte) 51, (byte) 102, (byte) 0,
254
            (byte) 255, (byte) 255, (byte) 204, (byte) 0,
255
            (byte) 204, (byte) 255, (byte) 255, (byte) 0,
256
            (byte) 102, (byte) 0, (byte) 102, (byte) 0,
257
            (byte) 255, (byte) 128, (byte) 128, (byte) 0,
258
            (byte) 0, (byte) 102, (byte) 204, (byte) 0,
259
            (byte) 204, (byte) 204, (byte) 255, (byte) 0,
260
            (byte) 0, (byte) 0, (byte) 128, (byte) 0,
261
            (byte) 255, (byte) 0, (byte) 255, (byte) 0,
262
            (byte) 255, (byte) 255, (byte) 0, (byte) 0,
263
            (byte) 0, (byte) 255, (byte) 255, (byte) 0, 
264
            (byte) 128, (byte) 0, (byte) 128, (byte) 0,
265
            (byte) 128, (byte) 0, (byte) 0, (byte) 0,
266
            (byte) 0, (byte) 128, (byte) 128, (byte) 0,
267
            (byte) 0, (byte) 0, (byte) 255, (byte) 0,
268
            (byte) 0, (byte) 204, (byte) 255, (byte) 0,
269
            (byte) 204, (byte) 255, (byte) 255, (byte) 0,
270
            (byte) 204, (byte) 255, (byte) 204, (byte) 0,
271
            (byte) 255, (byte) 255, (byte) 153, (byte) 0,
272
            (byte) 153, (byte) 204, (byte) 255, (byte) 0,
273
            (byte) 255, (byte) 153, (byte) 204, (byte) 0,
274
            (byte) 204, (byte) 153, (byte) 255, (byte) 0,
275
            (byte) 255, (byte) 204, (byte) 153, (byte) 0,
276
            (byte) 51, (byte) 102, (byte) 255, (byte) 0,
277
            (byte) 51, (byte) 204, (byte) 204, (byte) 0,
278
            (byte) 153, (byte) 204, (byte) 0, (byte) 0,
279
            (byte) 255, (byte) 204, (byte) 0, (byte) 0,
280
            (byte) 255, (byte) 153, (byte) 0, (byte) 0,
281
            (byte) 255, (byte) 102, (byte) 0, (byte) 0,
282
            (byte) 102, (byte) 102, (byte) 153, (byte) 0,
283
            (byte) 150, (byte) 150, (byte) 150, (byte) 0,
284
            (byte) 0, (byte) 51, (byte) 102, (byte) 0,
285
            (byte) 51, (byte) 153, (byte) 102, (byte) 0,
286
            (byte) 0, (byte) 51, (byte) 0, (byte) 0,
287
            (byte) 51, (byte) 51, (byte) 0, (byte) 0,
288
            (byte) 153, (byte) 51, (byte) 0, (byte) 0,
289
            (byte) 153, (byte) 51, (byte) 102, (byte) 0,
290
            (byte) 51, (byte) 51, (byte) 153, (byte) 0,
291
            (byte) 51, (byte) 51, (byte) 51, (byte) 0
292
        };
293
    }
170
}
294
}
171
295
172
/**
296
/**
Lines 191-199 Link Here
191
315
192
  public String toString() {
316
  public String toString() {
193
        StringBuffer buffer = new StringBuffer();
317
        StringBuffer buffer = new StringBuffer();
194
        buffer.append("  red           = ").append(red).append('\n');
318
        buffer.append("  red           = ").append(red & 0xff).append('\n');
195
        buffer.append("  green         = ").append(green).append('\n');
319
        buffer.append("  green         = ").append(green & 0xff).append('\n');
196
        buffer.append("  blue          = ").append(blue).append('\n');
320
        buffer.append("  blue          = ").append(blue & 0xff).append('\n');
197
        return buffer.toString();
321
        return buffer.toString();
198
  }
322
  }
199
}
323
}
(-)src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java (+5 lines)
Lines 728-733 Link Here
728
        
728
        
729
    }
729
    }
730
730
731
    public HSSFPalette getCustomPalette()
732
    {
733
        return new HSSFPalette(workbook.getCustomPalette());
734
    }
735
    
731
   /**
736
   /**
732
    * Copies nodes from one POIFS to the other minus the excepts
737
    * Copies nodes from one POIFS to the other minus the excepts
733
    * @param source is the source POIFS to copy from
738
    * @param source is the source POIFS to copy from
(-)src/testcases/org/apache/poi/hssf/HSSFTests.java (+4 lines)
Lines 27-32 Link Here
27
import org.apache.poi.hssf.record.TestLinkedDataRecord;
27
import org.apache.poi.hssf.record.TestLinkedDataRecord;
28
import org.apache.poi.hssf.record.TestNumberFormatIndexRecord;
28
import org.apache.poi.hssf.record.TestNumberFormatIndexRecord;
29
import org.apache.poi.hssf.record.TestObjectLinkRecord;
29
import org.apache.poi.hssf.record.TestObjectLinkRecord;
30
import org.apache.poi.hssf.record.TestPaletteRecord;
30
import org.apache.poi.hssf.record.TestPlotAreaRecord;
31
import org.apache.poi.hssf.record.TestPlotAreaRecord;
31
import org.apache.poi.hssf.record.TestPlotGrowthRecord;
32
import org.apache.poi.hssf.record.TestPlotGrowthRecord;
32
import org.apache.poi.hssf.record.TestRecordFactory;
33
import org.apache.poi.hssf.record.TestRecordFactory;
Lines 53-58 Link Here
53
import org.apache.poi.hssf.usermodel.TestFormulas;
54
import org.apache.poi.hssf.usermodel.TestFormulas;
54
import org.apache.poi.hssf.usermodel.TestHSSFCell;
55
import org.apache.poi.hssf.usermodel.TestHSSFCell;
55
import org.apache.poi.hssf.usermodel.TestHSSFDateUtil;
56
import org.apache.poi.hssf.usermodel.TestHSSFDateUtil;
57
import org.apache.poi.hssf.usermodel.TestHSSFPalette;
56
import org.apache.poi.hssf.usermodel.TestHSSFRow;
58
import org.apache.poi.hssf.usermodel.TestHSSFRow;
57
import org.apache.poi.hssf.usermodel.TestHSSFSheet;
59
import org.apache.poi.hssf.usermodel.TestHSSFSheet;
58
import org.apache.poi.hssf.usermodel.TestNamedRange;
60
import org.apache.poi.hssf.usermodel.TestNamedRange;
Lines 86-91 Link Here
86
        suite.addTest(new TestSuite(TestFormulas.class));
88
        suite.addTest(new TestSuite(TestFormulas.class));
87
        suite.addTest(new TestSuite(TestHSSFCell.class));
89
        suite.addTest(new TestSuite(TestHSSFCell.class));
88
        suite.addTest(new TestSuite(TestHSSFDateUtil.class));
90
        suite.addTest(new TestSuite(TestHSSFDateUtil.class));
91
        suite.addTest(new TestSuite(TestHSSFPalette.class));
89
        suite.addTest(new TestSuite(TestHSSFRow.class));
92
        suite.addTest(new TestSuite(TestHSSFRow.class));
90
        suite.addTest(new TestSuite(TestHSSFSheet.class));
93
        suite.addTest(new TestSuite(TestHSSFSheet.class));
91
        suite.addTest(new TestSuite(TestNamedRange.class));
94
        suite.addTest(new TestSuite(TestNamedRange.class));
Lines 116-121 Link Here
116
        suite.addTest(new TestSuite(TestLinkedDataRecord.class));
119
        suite.addTest(new TestSuite(TestLinkedDataRecord.class));
117
        suite.addTest(new TestSuite(TestNumberFormatIndexRecord.class));
120
        suite.addTest(new TestSuite(TestNumberFormatIndexRecord.class));
118
        suite.addTest(new TestSuite(TestObjectLinkRecord.class));
121
        suite.addTest(new TestSuite(TestObjectLinkRecord.class));
122
        suite.addTest(new TestSuite(TestPaletteRecord.class));
119
        suite.addTest(new TestSuite(TestPlotAreaRecord.class));
123
        suite.addTest(new TestSuite(TestPlotAreaRecord.class));
120
        suite.addTest(new TestSuite(TestPlotGrowthRecord.class));
124
        suite.addTest(new TestSuite(TestPlotGrowthRecord.class));
121
        suite.addTest(new TestSuite(TestRecordFactory.class));
125
        suite.addTest(new TestSuite(TestRecordFactory.class));

Return to bug 15743