git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1812558 13f79535-47bb-0310-9956-ffa450edef68tags/REL_4_0_0_FINAL
@@ -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]; | |||
} | |||
} |
@@ -26,6 +26,7 @@ import org.apache.poi.ss.usermodel.FillPatternType; | |||
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 CellStyle { | |||
} | |||
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. |
@@ -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 | |||
* |
@@ -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 |