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