mirror of https://github.com/apache/poi.git
Add getter/setter for ReadingOrder to XSSF, closes issue #73
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1812558 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
112a7c1480
commit
63bf8e8ba5
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue