You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2017/10/18 18:26:41 UTC
svn commit: r1812558 - in /poi/trunk/src: java/org/apache/poi/ss/usermodel/
ooxml/java/org/apache/poi/xssf/usermodel/
ooxml/java/org/apache/poi/xssf/usermodel/extensions/
ooxml/testcases/org/apache/poi/xssf/usermodel/
Author: centic
Date: Wed Oct 18 18:26:41 2017
New Revision: 1812558
URL: http://svn.apache.org/viewvc?rev=1812558&view=rev
Log:
Add getter/setter for ReadingOrder to XSSF, closes issue #73
Added:
poi/trunk/src/java/org/apache/poi/ss/usermodel/ReadingOrder.java
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFCellAlignment.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java
Added: poi/trunk/src/java/org/apache/poi/ss/usermodel/ReadingOrder.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/usermodel/ReadingOrder.java?rev=1812558&view=auto
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/usermodel/ReadingOrder.java (added)
+++ poi/trunk/src/java/org/apache/poi/ss/usermodel/ReadingOrder.java Wed Oct 18 18:26:41 2017
@@ -0,0 +1,50 @@
+/* ====================================================================
+ 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;
+
+/**
+ * The enumeration value indicating reading order of a cell,
+ * i.e., whether the reading order is Context(Default), Left To Right or Right To Left
+ */
+public enum ReadingOrder {
+ /**
+ * The reading order is Context(Default).
+ */
+ CONTEXT,
+
+ /**
+ * The reading order is Left To Right.
+ */
+ LEFT_TO_RIGHT,
+
+ /**
+ * The reading order is Right To Left.
+ */
+ RIGHT_TO_LEFT;
+
+ public short getCode() {
+ return (short) ordinal();
+ }
+
+ public static ReadingOrder forLong(long code) {
+ if (code < 0 || code >= values().length) {
+ throw new IllegalArgumentException("Invalid ReadingOrder code: " + code);
+ }
+ return values()[(int)code];
+ }
+}
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java?rev=1812558&r1=1812557&r2=1812558&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java Wed Oct 18 18:26:41 2017
@@ -26,6 +26,7 @@ import org.apache.poi.ss.usermodel.FillP
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.ReadingOrder;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.util.Internal;
import org.apache.poi.xssf.model.StylesTable;
@@ -1003,6 +1004,24 @@ public class XSSFCellStyle implements Ce
}
return ct;
}
+
+ /**
+ * Set reading order for the cell
+ *
+ * @param order - the reading order
+ */
+ public void setReadingOrder(ReadingOrder order) {
+ getCellAlignment().setReadingOrder(order);
+ }
+
+ /**
+ * Get reading order of the cell
+ *
+ * @return ReadingOrder - the reading order
+ */
+ public ReadingOrder getReadingOrder() {
+ return getCellAlignment().getReadingOrder();
+ }
/**
* Get a <b>copy</b> of the currently used CTBorder, if none is used, return a new instance.
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFCellAlignment.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFCellAlignment.java?rev=1812558&r1=1812557&r2=1812558&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFCellAlignment.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/extensions/XSSFCellAlignment.java Wed Oct 18 18:26:41 2017
@@ -17,6 +17,7 @@
package org.apache.poi.xssf.usermodel.extensions;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.ReadingOrder;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.util.Internal;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellAlignment;
@@ -84,7 +85,30 @@ public class XSSFCellAlignment {
public void setHorizontal(HorizontalAlignment align) {
cellAlignement.setHorizontal(STHorizontalAlignment.Enum.forInt(align.ordinal() + 1));
}
-
+
+ /**
+ * Set the type of reading order for the cell
+ *
+ * @param order - the type of reading order
+ * @see ReadingOrder
+ */
+ public void setReadingOrder(ReadingOrder order) {
+ cellAlignement.setReadingOrder(order.getCode());
+ }
+
+ /**
+ * Get the reading order for the cell
+ *
+ * @return the value of reading order
+ * @see ReadingOrder
+ */
+ public ReadingOrder getReadingOrder() {
+ if(cellAlignement != null && cellAlignement.isSetReadingOrder()) {
+ return ReadingOrder.forLong(cellAlignement.getReadingOrder());
+ }
+ return ReadingOrder.CONTEXT;
+ }
+
/**
* Get the number of spaces to indent the text in the cell
*
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java?rev=1812558&r1=1812557&r2=1812558&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java Wed Oct 18 18:26:41 2017
@@ -698,6 +698,24 @@ public class TestXSSFCellStyle {
assertEquals(HorizontalAlignment.CENTER, cellStyle.getAlignmentEnum());
assertEquals(STHorizontalAlignment.CENTER, cellStyle.getCellAlignment().getCTCellAlignment().getHorizontal());
}
+
+ @Test
+ public void testGetSetReadingOrder() {
+ assertEquals(ReadingOrder.CONTEXT, cellStyle.getReadingOrder());
+ assertEquals(ReadingOrder.CONTEXT.getCode(), cellStyle.getCellAlignment().getCTCellAlignment().getReadingOrder());
+
+ cellStyle.setReadingOrder(ReadingOrder.LEFT_TO_RIGHT);
+ assertEquals(ReadingOrder.LEFT_TO_RIGHT, cellStyle.getReadingOrder());
+ assertEquals(ReadingOrder.LEFT_TO_RIGHT.getCode(), cellStyle.getCellAlignment().getCTCellAlignment().getReadingOrder());
+
+ cellStyle.setReadingOrder(ReadingOrder.RIGHT_TO_LEFT);
+ assertEquals(ReadingOrder.RIGHT_TO_LEFT, cellStyle.getReadingOrder());
+ assertEquals(ReadingOrder.RIGHT_TO_LEFT.getCode(), cellStyle.getCellAlignment().getCTCellAlignment().getReadingOrder());
+
+ cellStyle.setReadingOrder(ReadingOrder.CONTEXT);
+ assertEquals(ReadingOrder.CONTEXT, cellStyle.getReadingOrder());
+ assertEquals(ReadingOrder.CONTEXT.getCode(), cellStyle.getCellAlignment().getCTCellAlignment().getReadingOrder());
+ }
@SuppressWarnings("deprecation")
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org