123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- /* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- ==================================================================== */
-
- package org.apache.poi.hssf.record.cf;
-
- import org.apache.poi.util.BitField;
- import org.apache.poi.util.BitFieldFactory;
- import org.apache.poi.util.LittleEndianInput;
- import org.apache.poi.util.LittleEndianOutput;
-
- /**
- * Pattern Formatting Block of the Conditional Formatting Rule Record.
- */
- public final class PatternFormatting implements Cloneable {
- /** No background */
- public final static short NO_FILL = 0 ;
- /** Solidly filled */
- public final static short SOLID_FOREGROUND = 1 ;
- /** Small fine dots */
- public final static short FINE_DOTS = 2 ;
- /** Wide dots */
- public final static short ALT_BARS = 3 ;
- /** Sparse dots */
- public final static short SPARSE_DOTS = 4 ;
- /** Thick horizontal bands */
- public final static short THICK_HORZ_BANDS = 5 ;
- /** Thick vertical bands */
- public final static short THICK_VERT_BANDS = 6 ;
- /** Thick backward facing diagonals */
- public final static short THICK_BACKWARD_DIAG = 7 ;
- /** Thick forward facing diagonals */
- public final static short THICK_FORWARD_DIAG = 8 ;
- /** Large spots */
- public final static short BIG_SPOTS = 9 ;
- /** Brick-like layout */
- public final static short BRICKS = 10 ;
- /** Thin horizontal bands */
- public final static short THIN_HORZ_BANDS = 11 ;
- /** Thin vertical bands */
- public final static short THIN_VERT_BANDS = 12 ;
- /** Thin backward diagonal */
- public final static short THIN_BACKWARD_DIAG = 13 ;
- /** Thin forward diagonal */
- public final static short THIN_FORWARD_DIAG = 14 ;
- /** Squares */
- public final static short SQUARES = 15 ;
- /** Diamonds */
- public final static short DIAMONDS = 16 ;
- /** Less Dots */
- public final static short LESS_DOTS = 17 ;
- /** Least Dots */
- public final static short LEAST_DOTS = 18 ;
-
-
- // PATTERN FORMATING BLOCK
- // For Pattern Styles see constants at HSSFCellStyle (from NO_FILL to LEAST_DOTS)
- private int field_15_pattern_style;
- private static final BitField fillPatternStyle = BitFieldFactory.getInstance(0xFC00);
-
- private int field_16_pattern_color_indexes;
- private static final BitField patternColorIndex = BitFieldFactory.getInstance(0x007F);
- private static final BitField patternBackgroundColorIndex = BitFieldFactory.getInstance(0x3F80);
-
-
- public PatternFormatting() {
- field_15_pattern_style = 0;
- field_16_pattern_color_indexes = 0;
- }
-
- /** Creates new FontFormatting */
- public PatternFormatting(LittleEndianInput in) {
- field_15_pattern_style = in.readUShort();
- field_16_pattern_color_indexes = in.readUShort();
- }
-
- public int getDataLength() {
- return 4;
- }
-
- /**
- * setting fill pattern
- *
- * @see #NO_FILL
- * @see #SOLID_FOREGROUND
- * @see #FINE_DOTS
- * @see #ALT_BARS
- * @see #SPARSE_DOTS
- * @see #THICK_HORZ_BANDS
- * @see #THICK_VERT_BANDS
- * @see #THICK_BACKWARD_DIAG
- * @see #THICK_FORWARD_DIAG
- * @see #BIG_SPOTS
- * @see #BRICKS
- * @see #THIN_HORZ_BANDS
- * @see #THIN_VERT_BANDS
- * @see #THIN_BACKWARD_DIAG
- * @see #THIN_FORWARD_DIAG
- * @see #SQUARES
- * @see #DIAMONDS
- *
- * @param fp fill pattern
- */
- public void setFillPattern(int fp) {
- field_15_pattern_style = fillPatternStyle.setValue(field_15_pattern_style, fp);
- }
-
- /**
- * @return fill pattern
- */
- public int getFillPattern() {
- return fillPatternStyle.getValue(field_15_pattern_style);
- }
-
- /**
- * set the background fill color.
- */
- public void setFillBackgroundColor(int bg) {
- field_16_pattern_color_indexes = patternBackgroundColorIndex.setValue(field_16_pattern_color_indexes,bg);
- }
-
- /**
- * @see org.apache.poi.hssf.usermodel.HSSFPalette#getColor(short)
- * @return get the background fill color
- */
- public int getFillBackgroundColor() {
- return patternBackgroundColorIndex.getValue(field_16_pattern_color_indexes);
- }
-
- /**
- * set the foreground fill color
- */
- public void setFillForegroundColor(int fg) {
- field_16_pattern_color_indexes = patternColorIndex.setValue(field_16_pattern_color_indexes,fg);
- }
-
- /**
- * @see org.apache.poi.hssf.usermodel.HSSFPalette#getColor(short)
- * @return get the foreground fill color
- */
- public int getFillForegroundColor() {
- return patternColorIndex.getValue(field_16_pattern_color_indexes);
- }
-
- public String toString() {
- StringBuffer buffer = new StringBuffer();
- buffer.append(" [Pattern Formatting]\n");
- buffer.append(" .fillpattern= ").append(Integer.toHexString(getFillPattern())).append("\n");
- buffer.append(" .fgcoloridx= ").append(Integer.toHexString(getFillForegroundColor())).append("\n");
- buffer.append(" .bgcoloridx= ").append(Integer.toHexString(getFillBackgroundColor())).append("\n");
- buffer.append(" [/Pattern Formatting]\n");
- return buffer.toString();
- }
-
- public Object clone() {
- PatternFormatting rec = new PatternFormatting();
- rec.field_15_pattern_style = field_15_pattern_style;
- rec.field_16_pattern_color_indexes = field_16_pattern_color_indexes;
- return rec;
- }
-
- public void serialize(LittleEndianOutput out) {
- out.writeShort(field_15_pattern_style);
- out.writeShort(field_16_pattern_color_indexes);
- }
- }
|