aboutsummaryrefslogtreecommitdiffstats
path: root/poi
diff options
context:
space:
mode:
authorPJ Fanning <fanningpj@apache.org>2022-07-20 13:51:17 +0000
committerPJ Fanning <fanningpj@apache.org>2022-07-20 13:51:17 +0000
commit53557251978ddb905e81063a79ea8f49d944a026 (patch)
tree054be19e76a02d2881d4b88d5b3a27fc23767803 /poi
parent0704929412fe409e37c0ab8086c9ae2bdccbe827 (diff)
downloadpoi-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')
-rw-r--r--poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFSheet.java24
-rw-r--r--poi/src/main/java/org/apache/poi/ss/usermodel/PageMargin.java113
-rw-r--r--poi/src/main/java/org/apache/poi/ss/usermodel/Sheet.java14
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);
/**