Add accessors to horizontal and vertical alignment in HSSFTextbox

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@637189 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Yegor Kozlov 2008-03-14 18:05:55 +00:00
parent 20b3d0be05
commit 863b004ced
5 changed files with 114 additions and 4 deletions

View File

@ -36,7 +36,8 @@
<!-- Don't forget to update status.xml too! -->
<release version="3.1-beta1" date="2008-??-??">
<action dev="POI-DEVELOPERS" type="add">44593 - Improved handling of short DVRecords</actions>
<action dev="POI-DEVELOPERS" type="add">Add accessors to horizontal and vertical alignment in HSSFTextbox</action>
<action dev="POI-DEVELOPERS" type="add">44593 - Improved handling of short DVRecords</action>
<action dev="POI-DEVELOPERS" type="add">28627 / 44580 - Fix Range.delete() in HWPF</action>
<action dev="POI-DEVELOPERS" type="add">44539 - Support for area references in formulas of rows >= 32768</action>
<action dev="POI-DEVELOPERS" type="add">44536 - Improved support for detecting read-only recommended files</action>

View File

@ -33,7 +33,8 @@
<!-- Don't forget to update changes.xml too! -->
<changes>
<release version="3.1-beta1" date="2008-??-??">
<action dev="POI-DEVELOPERS" type="add">44593 - Improved handling of short DVRecords</actions>
<action dev="POI-DEVELOPERS" type="add">Add accessors to horizontal and vertical alignment in HSSFTextbox</action>
<action dev="POI-DEVELOPERS" type="add">44593 - Improved handling of short DVRecords</action>
<action dev="POI-DEVELOPERS" type="add">28627 / 44580 - Fix Range.delete() in HWPF</action>
<action dev="POI-DEVELOPERS" type="add">44539 - Support for area references in formulas of rows >= 32768</action>
<action dev="POI-DEVELOPERS" type="add">44536 - Improved support for detecting read-only recommended files</action>

View File

@ -133,8 +133,8 @@ public class TextboxShape
HSSFTextbox shape = hssfShape;
TextObjectRecord obj = new TextObjectRecord();
obj.setHorizontalTextAlignment( TextObjectRecord.HORIZONTAL_TEXT_ALIGNMENT_LEFT_ALIGNED );
obj.setVerticalTextAlignment( TextObjectRecord.VERTICAL_TEXT_ALIGNMENT_TOP );
obj.setHorizontalTextAlignment( hssfShape.getHorizontalAlignment() );
obj.setVerticalTextAlignment( hssfShape.getVerticalAlignment());
obj.setTextLocked( true );
obj.setTextOrientation( TextObjectRecord.TEXT_ORIENTATION_NONE );
int frLength = ( shape.getString().numFormattingRuns() + 1 ) * 8;

View File

@ -17,6 +17,9 @@
package org.apache.poi.hssf.usermodel;
import org.apache.poi.util.BitField;
import org.apache.poi.util.BitFieldFactory;
/**
* A textbox is a shape that may hold a rich text string.
*
@ -27,7 +30,25 @@ public class HSSFTextbox
{
public final static short OBJECT_TYPE_TEXT = 6;
/**
* How to align text horizontally
*/
public final static short HORIZONTAL_ALIGNMENT_LEFT = 1;
public final static short HORIZONTAL_ALIGNMENT_CENTERED = 2;
public final static short HORIZONTAL_ALIGNMENT_RIGHT = 3;
public final static short HORIZONTAL_ALIGNMENT_JUSTIFIED = 4;
/**
* How to align text vertically
*/
public final static short VERTICAL_ALIGNMENT_TOP = 1;
public final static short VERTICAL_ALIGNMENT_CENTER = 2;
public final static short VERTICAL_ALIGNMENT_BOTTOM = 3;
public final static short VERTICAL_ALIGNMENT_JUSTIFY = 4;
int marginLeft, marginRight, marginTop, marginBottom;
short halign, valign;
HSSFRichTextString string = new HSSFRichTextString("");
@ -40,6 +61,9 @@ public class HSSFTextbox
{
super( parent, anchor );
setShapeType(OBJECT_TYPE_TEXT);
halign = HORIZONTAL_ALIGNMENT_LEFT;
valign = VERTICAL_ALIGNMENT_TOP;
}
/**
@ -121,4 +145,36 @@ public class HSSFTextbox
{
this.marginBottom = marginBottom;
}
/**
* Gets the horizontal alignment.
*/
public short getHorizontalAlignment()
{
return halign;
}
/**
* Sets the horizontal alignment.
*/
public void setHorizontalAlignment( short align )
{
this.halign = align;
}
/**
* Gets the vertical alignment.
*/
public short getVerticalAlignment()
{
return valign;
}
/**
* Sets the vertical alignment.
*/
public void setVerticalAlignment( short align )
{
this.valign = align;
}
}

View File

@ -0,0 +1,52 @@
/*
* 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.hssf.usermodel;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import junit.framework.TestCase;
/**
* Test <code>HSSFTextbox</code>.
*
* @author Yegor Kozlov (yegor at apache.org)
*/
public final class TestHSSFTextbox extends TestCase{
/**
* Test that accessors to horizontal and vertical alignment work properly
*/
public void testAlignment() {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sh1 = wb.createSheet();
HSSFPatriarch patriarch = sh1.createDrawingPatriarch();
HSSFTextbox textbox = patriarch.createTextbox(new HSSFClientAnchor(0, 0, 0, 0, (short) 1, 1, (short) 6, 4));
HSSFRichTextString str = new HSSFRichTextString("Hello, World");
textbox.setString(str);
textbox.setHorizontalAlignment(HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED);
textbox.setVerticalAlignment(HSSFTextbox.VERTICAL_ALIGNMENT_CENTER);
assertEquals(HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED, textbox.getHorizontalAlignment());
assertEquals(HSSFTextbox.VERTICAL_ALIGNMENT_CENTER, textbox.getVerticalAlignment());
}
}