diff options
author | PJ Fanning <fanningpj@apache.org> | 2022-07-20 13:51:17 +0000 |
---|---|---|
committer | PJ Fanning <fanningpj@apache.org> | 2022-07-20 13:51:17 +0000 |
commit | 53557251978ddb905e81063a79ea8f49d944a026 (patch) | |
tree | 054be19e76a02d2881d4b88d5b3a27fc23767803 /poi | |
parent | 0704929412fe409e37c0ab8086c9ae2bdccbe827 (diff) | |
download | poi-53557251978ddb905e81063a79ea8f49d944a026.tar.gz poi-53557251978ddb905e81063a79ea8f49d944a026.zip |
[bug-55330] add getMargin(PageMargin)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1902880 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poi')
3 files changed, 146 insertions, 5 deletions
diff --git a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFSheet.java b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFSheet.java index 61768a1be4..e9f6377402 100644 --- a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFSheet.java +++ b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFSheet.java @@ -69,6 +69,7 @@ import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.DataValidation; import org.apache.poi.ss.usermodel.DataValidationHelper; import org.apache.poi.ss.usermodel.FormulaEvaluator; +import org.apache.poi.ss.usermodel.PageMargin; import org.apache.poi.ss.usermodel.PaneType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; @@ -1309,16 +1310,31 @@ public final class HSSFSheet implements Sheet { * * @param margin which margin to get * @return the size of the margin + * @deprecated use {@link #getMargin(PageMargin)} */ @Override + @Deprecated + @Removal(version = "7.0.0") public double getMargin(short margin) { + return getMargin(PageMargin.getByShortValue(margin)); + } + + /** + * Gets the size of the margin in inches. + * + * @param margin which margin to get + * @return the size of the margin + * @since POI 5.2.3 + */ + @Override + public double getMargin(PageMargin margin) { switch (margin) { - case FooterMargin: + case FOOTER: return _sheet.getPageSettings().getPrintSetup().getFooterMargin(); - case HeaderMargin: + case HEADER: return _sheet.getPageSettings().getPrintSetup().getHeaderMargin(); default: - return _sheet.getPageSettings().getMargin(margin); + return _sheet.getPageSettings().getMargin(margin.getLegacyApiValue()); } } @@ -1843,7 +1859,7 @@ public final class HSSFSheet implements Sheet { */ @Override @Deprecated - @Removal(version = "POI 7.0.0") + @Removal(version = "7.0.0") public void createSplitPane(int xSplitPos, int ySplitPos, int leftmostColumn, int topRow, int activePane) { getSheet().createSplitPane(xSplitPos, ySplitPos, topRow, leftmostColumn, activePane); } diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/PageMargin.java b/poi/src/main/java/org/apache/poi/ss/usermodel/PageMargin.java new file mode 100644 index 0000000000..34c732c32f --- /dev/null +++ b/poi/src/main/java/org/apache/poi/ss/usermodel/PageMargin.java @@ -0,0 +1,113 @@ +/* ==================================================================== + 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.ss.usermodel; + +import java.util.HashMap; +import java.util.Map; + +/** + * Enumeration which represents the various margins which are present within an + * Excel worksheet + * + * <p> + * Page margins are relevant when printing worksheets, and define the amount of + * empty space on the edges of each printed page + * </p> + * + * @since POI 5.2.3 + */ +public enum PageMargin { + + /** + * Left margin, the empty space on the left of displayed worksheet data when + * printing + */ + LEFT(Sheet.LeftMargin), + + /** + * Right margin, the empty space on the right of displayed worksheet data + * when printing + */ + RIGHT(Sheet.RightMargin), + + /** + * Top margin, the empty space on the top of displayed worksheet data when + * printing + */ + TOP(Sheet.TopMargin), + + /** + * Bottom margin, the empty space on the bottom of displayed worksheet data + * when printing + */ + BOTTOM(Sheet.BottomMargin), + + /** + * Header margin, the empty space between the header and the top of the page + * when printing + */ + HEADER(Sheet.HeaderMargin), + + /** + * Footer margin, the empty space between the footer and the bottom of the + * page when printing + */ + FOOTER(Sheet.FooterMargin); + + /** + * Map relating the old API constant values to their corresponding + * enumeration value + */ + private static final Map<Short, PageMargin> PAGE_MARGIN_BY_LEGACY_API_VALUE; + + static { + PAGE_MARGIN_BY_LEGACY_API_VALUE = new HashMap<>(); + + for (PageMargin margin : values()) { + PAGE_MARGIN_BY_LEGACY_API_VALUE.put(margin.legacyApiValue, margin); + } + } + + /** + * The old API constant value which corresponded to this page margin + */ + private final short legacyApiValue; + + /** + * @param legacyApiValue The old API constant value which corresponded to this page + * margin + */ + PageMargin(short legacyApiValue) { + this.legacyApiValue = legacyApiValue; + } + + public short getLegacyApiValue() { + return legacyApiValue; + } + + /** + * Retrieves the enumeration value which corresponds to a legacy API + * constant value + * + * @param legacyApiValue An old API margin constant value + * @return The PageMargin enumeration which corresponds to the given value, + * or null if no corresponding value exists + */ + public static PageMargin getByShortValue(short legacyApiValue) { + return PAGE_MARGIN_BY_LEGACY_API_VALUE.get(legacyApiValue); + } +}
\ No newline at end of file diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/Sheet.java b/poi/src/main/java/org/apache/poi/ss/usermodel/Sheet.java index 1195ae8a7b..5899795817 100644 --- a/poi/src/main/java/org/apache/poi/ss/usermodel/Sheet.java +++ b/poi/src/main/java/org/apache/poi/ss/usermodel/Sheet.java @@ -624,10 +624,22 @@ public interface Sheet extends Iterable<Row> { * * @param margin which margin to get * @return the size of the margin + * @deprecated use {@link #getMargin(PageMargin)} */ + @Deprecated + @Removal(version = "7.0.0") double getMargin(short margin); /** + * Gets the size of the margin in inches. + * + * @param margin which margin to get + * @return the size of the margin + * @since POI 5.2.3 + */ + double getMargin(PageMargin margin); + + /** * Sets the size of the margin in inches. * * @param margin which margin to get @@ -781,7 +793,7 @@ public interface Sheet extends Iterable<Row> { * @deprecated use {@link #createSplitPane(int, int, int, int, PaneType)} */ @Deprecated - @Removal(version = "POI 7.0.0") + @Removal(version = "7.0.0") void createSplitPane(int xSplitPos, int ySplitPos, int leftmostColumn, int topRow, int activePane); /** |