368 lines
11 KiB
Java
368 lines
11 KiB
Java
/* ====================================================================
|
|
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.usermodel;
|
|
|
|
import org.apache.poi.hssf.record.CFRuleBase;
|
|
import org.apache.poi.hssf.record.cf.BorderFormatting;
|
|
import org.apache.poi.hssf.util.HSSFColor;
|
|
import org.apache.poi.ss.usermodel.BorderStyle;
|
|
import org.apache.poi.ss.usermodel.Color;
|
|
|
|
/**
|
|
* High level representation for Border Formatting component
|
|
* of Conditional Formatting settings
|
|
*/
|
|
public final class HSSFBorderFormatting implements org.apache.poi.ss.usermodel.BorderFormatting {
|
|
private final HSSFWorkbook workbook;
|
|
private final CFRuleBase cfRuleRecord;
|
|
private final BorderFormatting borderFormatting;
|
|
|
|
protected HSSFBorderFormatting(CFRuleBase cfRuleRecord, HSSFWorkbook workbook) {
|
|
this.workbook = workbook;
|
|
this.cfRuleRecord = cfRuleRecord;
|
|
this.borderFormatting = cfRuleRecord.getBorderFormatting();
|
|
}
|
|
|
|
protected BorderFormatting getBorderFormattingBlock() {
|
|
return borderFormatting;
|
|
}
|
|
|
|
/**
|
|
* @deprecated POI 3.15. Use {@link #getBorderBottomEnum()}.
|
|
* This method will return an BorderStyle enum in the future.
|
|
*/
|
|
@Override
|
|
public short getBorderBottom() {
|
|
return (short)borderFormatting.getBorderBottom();
|
|
}
|
|
/**
|
|
* @since POI 3.15
|
|
*/
|
|
@Override
|
|
public BorderStyle getBorderBottomEnum() {
|
|
return BorderStyle.valueOf((short)borderFormatting.getBorderBottom());
|
|
}
|
|
|
|
/**
|
|
* @deprecated POI 3.15. Use {@link #getBorderDiagonalEnum()}.
|
|
* This method will return an BorderStyle enum in the future.
|
|
*/
|
|
@Override
|
|
public short getBorderDiagonal() {
|
|
return (short)borderFormatting.getBorderDiagonal();
|
|
}
|
|
/**
|
|
* @since POI 3.15
|
|
*/
|
|
@Override
|
|
public BorderStyle getBorderDiagonalEnum() {
|
|
return BorderStyle.valueOf((short)borderFormatting.getBorderDiagonal());
|
|
}
|
|
|
|
/**
|
|
* @deprecated POI 3.15. Use {@link #getBorderLeftEnum()}.
|
|
* This method will return an BorderStyle enum in the future.
|
|
*/
|
|
@Override
|
|
public short getBorderLeft() {
|
|
return (short)borderFormatting.getBorderLeft();
|
|
}
|
|
/**
|
|
* @since POI 3.15
|
|
*/
|
|
@Override
|
|
public BorderStyle getBorderLeftEnum() {
|
|
return BorderStyle.valueOf((short)borderFormatting.getBorderLeft());
|
|
}
|
|
|
|
/**
|
|
* @deprecated POI 3.15. Use {@link #getBorderRightEnum()}.
|
|
* This method will return an BorderStyle enum in the future.
|
|
*/
|
|
@Override
|
|
public short getBorderRight() {
|
|
return (short)borderFormatting.getBorderRight();
|
|
}
|
|
/**
|
|
* @since POI 3.15
|
|
*/
|
|
@Override
|
|
public BorderStyle getBorderRightEnum() {
|
|
return BorderStyle.valueOf((short)borderFormatting.getBorderRight());
|
|
}
|
|
|
|
/**
|
|
* @deprecated POI 3.15. Use {@link #getBorderTopEnum()}.
|
|
* This method will return an BorderStyle enum in the future.
|
|
*/
|
|
@Override
|
|
public short getBorderTop() {
|
|
return (short)borderFormatting.getBorderTop();
|
|
}
|
|
/**
|
|
* @since POI 3.15
|
|
*/
|
|
@Override
|
|
public BorderStyle getBorderTopEnum() {
|
|
return BorderStyle.valueOf((short)borderFormatting.getBorderTop());
|
|
}
|
|
|
|
@Override
|
|
public short getBottomBorderColor() {
|
|
return (short)borderFormatting.getBottomBorderColor();
|
|
}
|
|
@Override
|
|
public HSSFColor getBottomBorderColorColor() {
|
|
return workbook.getCustomPalette().getColor(
|
|
borderFormatting.getBottomBorderColor()
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public short getDiagonalBorderColor() {
|
|
return (short)borderFormatting.getDiagonalBorderColor();
|
|
}
|
|
@Override
|
|
public HSSFColor getDiagonalBorderColorColor() {
|
|
return workbook.getCustomPalette().getColor(
|
|
borderFormatting.getDiagonalBorderColor()
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public short getLeftBorderColor() {
|
|
return (short)borderFormatting.getLeftBorderColor();
|
|
}
|
|
@Override
|
|
public HSSFColor getLeftBorderColorColor() {
|
|
return workbook.getCustomPalette().getColor(
|
|
borderFormatting.getLeftBorderColor()
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public short getRightBorderColor() {
|
|
return (short)borderFormatting.getRightBorderColor();
|
|
}
|
|
@Override
|
|
public HSSFColor getRightBorderColorColor() {
|
|
return workbook.getCustomPalette().getColor(
|
|
borderFormatting.getRightBorderColor()
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public short getTopBorderColor() {
|
|
return (short)borderFormatting.getTopBorderColor();
|
|
}
|
|
@Override
|
|
public HSSFColor getTopBorderColorColor() {
|
|
return workbook.getCustomPalette().getColor(
|
|
borderFormatting.getTopBorderColor()
|
|
);
|
|
}
|
|
|
|
public boolean isBackwardDiagonalOn() {
|
|
return borderFormatting.isBackwardDiagonalOn();
|
|
}
|
|
public boolean isForwardDiagonalOn() {
|
|
return borderFormatting.isForwardDiagonalOn();
|
|
}
|
|
|
|
public void setBackwardDiagonalOn(boolean on) {
|
|
borderFormatting.setBackwardDiagonalOn(on);
|
|
if (on) {
|
|
cfRuleRecord.setTopLeftBottomRightBorderModified(on);
|
|
}
|
|
}
|
|
public void setForwardDiagonalOn(boolean on) {
|
|
borderFormatting.setForwardDiagonalOn(on);
|
|
if (on) {
|
|
cfRuleRecord.setBottomLeftTopRightBorderModified(on);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setBorderBottom(short border) {
|
|
borderFormatting.setBorderBottom(border);
|
|
if (border != 0) {
|
|
cfRuleRecord.setBottomBorderModified(true);
|
|
} else {
|
|
cfRuleRecord.setBottomBorderModified(false);
|
|
}
|
|
}
|
|
@Override
|
|
public void setBorderBottom(BorderStyle border) {
|
|
setBorderBottom(border.getCode());
|
|
}
|
|
|
|
@Override
|
|
public void setBorderDiagonal(short border) {
|
|
borderFormatting.setBorderDiagonal(border);
|
|
if (border != 0) {
|
|
cfRuleRecord.setBottomLeftTopRightBorderModified(true);
|
|
cfRuleRecord.setTopLeftBottomRightBorderModified(true);
|
|
} else {
|
|
cfRuleRecord.setBottomLeftTopRightBorderModified(false);
|
|
cfRuleRecord.setTopLeftBottomRightBorderModified(false);
|
|
}
|
|
}
|
|
@Override
|
|
public void setBorderDiagonal(BorderStyle border) {
|
|
setBorderDiagonal(border.getCode());
|
|
}
|
|
|
|
@Override
|
|
public void setBorderLeft(short border) {
|
|
borderFormatting.setBorderLeft(border);
|
|
if (border != 0) {
|
|
cfRuleRecord.setLeftBorderModified(true);
|
|
} else {
|
|
cfRuleRecord.setLeftBorderModified(false);
|
|
}
|
|
}
|
|
@Override
|
|
public void setBorderLeft(BorderStyle border) {
|
|
setBorderLeft(border.getCode());
|
|
}
|
|
|
|
@Override
|
|
public void setBorderRight(short border) {
|
|
borderFormatting.setBorderRight(border);
|
|
if (border != 0) {
|
|
cfRuleRecord.setRightBorderModified(true);
|
|
} else {
|
|
cfRuleRecord.setRightBorderModified(false);
|
|
}
|
|
}
|
|
@Override
|
|
public void setBorderRight(BorderStyle border) {
|
|
setBorderRight(border.getCode());
|
|
}
|
|
|
|
@Override
|
|
public void setBorderTop(short border) {
|
|
borderFormatting.setBorderTop(border);
|
|
if (border != 0) {
|
|
cfRuleRecord.setTopBorderModified(true);
|
|
} else {
|
|
cfRuleRecord.setTopBorderModified(false);
|
|
}
|
|
}
|
|
@Override
|
|
public void setBorderTop(BorderStyle border) {
|
|
setBorderTop(border.getCode());
|
|
}
|
|
|
|
@Override
|
|
public void setBottomBorderColor(short color) {
|
|
borderFormatting.setBottomBorderColor(color);
|
|
if (color != 0) {
|
|
cfRuleRecord.setBottomBorderModified(true);
|
|
} else {
|
|
cfRuleRecord.setBottomBorderModified(false);
|
|
}
|
|
}
|
|
public void setBottomBorderColor(Color color) {
|
|
HSSFColor hcolor = HSSFColor.toHSSFColor(color);
|
|
if (hcolor == null) {
|
|
setBottomBorderColor((short)0);
|
|
} else {
|
|
setBottomBorderColor(hcolor.getIndex());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setDiagonalBorderColor(short color) {
|
|
borderFormatting.setDiagonalBorderColor(color);
|
|
if (color != 0) {
|
|
cfRuleRecord.setBottomLeftTopRightBorderModified(true);
|
|
cfRuleRecord.setTopLeftBottomRightBorderModified(true);
|
|
} else {
|
|
cfRuleRecord.setBottomLeftTopRightBorderModified(false);
|
|
cfRuleRecord.setTopLeftBottomRightBorderModified(false);
|
|
}
|
|
}
|
|
@Override
|
|
public void setDiagonalBorderColor(Color color) {
|
|
HSSFColor hcolor = HSSFColor.toHSSFColor(color);
|
|
if (hcolor == null) {
|
|
setDiagonalBorderColor((short)0);
|
|
} else {
|
|
setDiagonalBorderColor(hcolor.getIndex());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setLeftBorderColor(short color) {
|
|
borderFormatting.setLeftBorderColor(color);
|
|
if (color != 0) {
|
|
cfRuleRecord.setLeftBorderModified(true);
|
|
} else {
|
|
cfRuleRecord.setLeftBorderModified(false);
|
|
}
|
|
}
|
|
@Override
|
|
public void setLeftBorderColor(Color color) {
|
|
HSSFColor hcolor = HSSFColor.toHSSFColor(color);
|
|
if (hcolor == null) {
|
|
setLeftBorderColor((short)0);
|
|
} else {
|
|
setLeftBorderColor(hcolor.getIndex());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setRightBorderColor(short color) {
|
|
borderFormatting.setRightBorderColor(color);
|
|
if (color != 0) {
|
|
cfRuleRecord.setRightBorderModified(true);
|
|
} else {
|
|
cfRuleRecord.setRightBorderModified(false);
|
|
}
|
|
}
|
|
@Override
|
|
public void setRightBorderColor(Color color) {
|
|
HSSFColor hcolor = HSSFColor.toHSSFColor(color);
|
|
if (hcolor == null) {
|
|
setRightBorderColor((short)0);
|
|
} else {
|
|
setRightBorderColor(hcolor.getIndex());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setTopBorderColor(short color) {
|
|
borderFormatting.setTopBorderColor(color);
|
|
if (color != 0) {
|
|
cfRuleRecord.setTopBorderModified(true);
|
|
} else {
|
|
cfRuleRecord.setTopBorderModified(false);
|
|
}
|
|
}
|
|
@Override
|
|
public void setTopBorderColor(Color color) {
|
|
HSSFColor hcolor = HSSFColor.toHSSFColor(color);
|
|
if (hcolor == null) {
|
|
setTopBorderColor((short)0);
|
|
} else {
|
|
setTopBorderColor(hcolor.getIndex());
|
|
}
|
|
}
|
|
}
|