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.Font;
|
||||||
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
||||||
import org.apache.poi.ss.usermodel.IndexedColors;
|
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.ss.usermodel.VerticalAlignment;
|
||||||
import org.apache.poi.util.Internal;
|
import org.apache.poi.util.Internal;
|
||||||
import org.apache.poi.xssf.model.StylesTable;
|
import org.apache.poi.xssf.model.StylesTable;
|
||||||
|
@ -1003,6 +1004,24 @@ public class XSSFCellStyle implements CellStyle {
|
||||||
}
|
}
|
||||||
return ct;
|
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.
|
* 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;
|
package org.apache.poi.xssf.usermodel.extensions;
|
||||||
|
|
||||||
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
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.ss.usermodel.VerticalAlignment;
|
||||||
import org.apache.poi.util.Internal;
|
import org.apache.poi.util.Internal;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellAlignment;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellAlignment;
|
||||||
|
@ -84,7 +85,30 @@ public class XSSFCellAlignment {
|
||||||
public void setHorizontal(HorizontalAlignment align) {
|
public void setHorizontal(HorizontalAlignment align) {
|
||||||
cellAlignement.setHorizontal(STHorizontalAlignment.Enum.forInt(align.ordinal() + 1));
|
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
|
* 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(HorizontalAlignment.CENTER, cellStyle.getAlignmentEnum());
|
||||||
assertEquals(STHorizontalAlignment.CENTER, cellStyle.getCellAlignment().getCTCellAlignment().getHorizontal());
|
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")
|
@SuppressWarnings("deprecation")
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue