| /* ==================================================================== |
| 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 org.apache.poi.util.BitField; |
| import org.apache.poi.util.BitFieldFactory; |
| |
| /** |
| * A textbox is a shape that may hold a rich text string. |
| * |
| * @author Glen Stampoultzis (glens at apache.org) |
| */ |
| public class HSSFTextbox |
| extends HSSFSimpleShape |
| { |
| 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; |
| public final static short HORIZONTAL_ALIGNMENT_DISTRIBUTED = 7; |
| |
| /** |
| * 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; |
| public final static short VERTICAL_ALIGNMENT_DISTRIBUTED= 7; |
| |
| |
| int marginLeft, marginRight, marginTop, marginBottom; |
| short halign, valign; |
| |
| HSSFRichTextString string = new HSSFRichTextString(""); |
| |
| /** |
| * Construct a new textbox with the given parent and anchor. |
| * @param parent |
| * @param anchor One of HSSFClientAnchor or HSSFChildAnchor |
| */ |
| public HSSFTextbox( HSSFShape parent, HSSFAnchor anchor ) |
| { |
| super( parent, anchor ); |
| setShapeType(OBJECT_TYPE_TEXT); |
| |
| halign = HORIZONTAL_ALIGNMENT_LEFT; |
| valign = VERTICAL_ALIGNMENT_TOP; |
| } |
| |
| /** |
| * @return the rich text string for this textbox. |
| */ |
| public HSSFRichTextString getString() |
| { |
| return string; |
| } |
| |
| /** |
| * @param string Sets the rich text string used by this object. |
| */ |
| public void setString( HSSFRichTextString string ) |
| { |
| //if font is not set we must set the default one |
| if (string.numFormattingRuns() == 0) string.applyFont((short)0); |
| |
| this.string = string; |
| } |
| |
| /** |
| * @return Returns the left margin within the textbox. |
| */ |
| public int getMarginLeft() |
| { |
| return marginLeft; |
| } |
| |
| /** |
| * Sets the left margin within the textbox. |
| */ |
| public void setMarginLeft( int marginLeft ) |
| { |
| this.marginLeft = marginLeft; |
| } |
| |
| /** |
| * @return returns the right margin within the textbox. |
| */ |
| public int getMarginRight() |
| { |
| return marginRight; |
| } |
| |
| /** |
| * Sets the right margin within the textbox. |
| */ |
| public void setMarginRight( int marginRight ) |
| { |
| this.marginRight = marginRight; |
| } |
| |
| /** |
| * @return returns the top margin within the textbox. |
| */ |
| public int getMarginTop() |
| { |
| return marginTop; |
| } |
| |
| /** |
| * Sets the top margin within the textbox. |
| */ |
| public void setMarginTop( int marginTop ) |
| { |
| this.marginTop = marginTop; |
| } |
| |
| /** |
| * Gets the bottom margin within the textbox. |
| */ |
| public int getMarginBottom() |
| { |
| return marginBottom; |
| } |
| |
| /** |
| * Sets the bottom margin within the textbox. |
| */ |
| public void setMarginBottom( int marginBottom ) |
| { |
| 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; |
| } |
| } |