ASF Bugzilla – Attachment 22871 Details for
Bug 46212
XWPFRun
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch for XWPFRun
081114xssfRun.diff (text/plain), 32.85 KB, created by
Gisella Bronzetti
on 2008-11-14 07:47:51 UTC
(
hide
)
Description:
patch for XWPFRun
Filename:
MIME Type:
Creator:
Gisella Bronzetti
Created:
2008-11-14 07:47:51 UTC
Size:
32.85 KB
patch
obsolete
>Index: src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java >=================================================================== >--- src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java (revision 712662) >+++ src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java (working copy) >@@ -16,14 +16,24 @@ > ==================================================================== */ > package org.apache.poi.xwpf.usermodel; > >+import java.math.BigInteger; >+ >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHpsMeasure; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTOnOff; > import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR; > import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSignedHpsMeasure; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTUnderline; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVerticalAlignRun; > import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff; >-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STUnderline; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalAlignRun; > > /** > * XWPFRun object defines a region of text with a common set of properties >- * >+ * > * @author Yegor Kozlov > */ > public class XWPFRun { >@@ -31,75 +41,338 @@ > private XWPFParagraph paragraph; > > /** >- * >- * @param r the CTR bean which holds the run attributes >- * @param p the parent paragraph >+ * >+ * @param r >+ * the CTR bean which holds the run attributes >+ * @param p >+ * the parent paragraph > */ >- protected XWPFRun(CTR r, XWPFParagraph p){ >- this.run = r; >- this.paragraph = p; >+ protected XWPFRun(CTR r, XWPFParagraph p) { >+ this.run = r; >+ this.paragraph = p; > } > >- public CTR getCTR(){ >- return run; >+ public CTR getCTR() { >+ return run; > } > >- public XWPFParagraph getParagraph(){ >- return paragraph; >+ public XWPFParagraph getParagraph() { >+ return paragraph; > } > > /** >- * Whether the bold property shall be applied to all non-complex script characters in the >- * contents of this run when displayed in a document >- * >+ * Whether the bold property shall be applied to all non-complex script >+ * characters in the contents of this run when displayed in a document >+ * > * @return <code>true</code> if the bold property is applied > */ >- public boolean isBold(){ >- CTRPr pr = run.getRPr(); >- return pr != null && pr.isSetB(); >+ public boolean isBold() { >+ CTRPr pr = run.getRPr(); >+ return pr != null && pr.isSetB(); > } > > /** >- * Whether the bold property shall be applied to all non-complex script characters in the >- * contents of this run when displayed in a document >- * >+ * Whether the bold property shall be applied to all non-complex script >+ * characters in the contents of this run when displayed in a document >+ * > * <p> >- * This formatting property is a toggle property, which specifies that its behavior differs between its use within a >- * style definition and its use as direct formatting. When used as part of a style definition, setting this property >- * shall toggle the current state of that property as specified up to this point in the hierarchy (i.e. applied to not >- * applied, and vice versa). Setting it to <code>false</code> (or an equivalent) shall result in the current >- * setting remaining unchanged. However, when used as direct formatting, setting this property to true or false >- * shall set the absolute state of the resulting property. >+ * This formatting property is a toggle property, which specifies that its >+ * behavior differs between its use within a style definition and its use as >+ * direct formatting. When used as part of a style definition, setting this >+ * property shall toggle the current state of that property as specified up >+ * to this point in the hierarchy (i.e. applied to not applied, and vice >+ * versa). Setting it to <code>false</code> (or an equivalent) shall >+ * result in the current setting remaining unchanged. However, when used as >+ * direct formatting, setting this property to true or false shall set the >+ * absolute state of the resulting property. > * </p> > * <p> >- * If this element is not present, the default value is to leave the formatting applied at previous level in the style >- * hierarchy. If this element is never applied in the style hierarchy, then bold shall not be applied to non-complex >- * script characters. >+ * If this element is not present, the default value is to leave the >+ * formatting applied at previous level in the style hierarchy. If this >+ * element is never applied in the style hierarchy, then bold shall not be >+ * applied to non-complex script characters. > * </p> >- * >- * @param value <code>true</code> if the bold property is applied to this run >+ * >+ * @param value >+ * <code>true</code> if the bold property is applied to >+ * this run > */ >- public void setBold(boolean value){ >- CTRPr pr = run.isSetRPr() ? run.getRPr() : run.addNewRPr(); >- pr.addNewB().setVal(value ? STOnOff.TRUE : STOnOff.FALSE); >+ public void setBold(boolean value) { >+ CTRPr pr = run.isSetRPr() ? run.getRPr() : run.addNewRPr(); >+ CTOnOff bold= pr.isSetB() ? pr.getB() : pr.addNewB(); >+ bold.setVal(value ? STOnOff.TRUE : STOnOff.FALSE); > } > > /** > * Return the string content of this text run >- * >+ * > * @return the text of this text run or <code>null</code> if not set > */ >- public String getText(){ >- return run.sizeOfTArray() == 0 ? null : run.getTArray(0).getStringValue(); >+ public String getText() { >+ return run.sizeOfTArray() == 0 ? null : run.getTArray(0) >+ .getStringValue(); > } > > /** > * Sets the text of this text run >- * >- * @param value the literal text which shall be displayed in the document >+ * >+ * @param value >+ * the literal text which shall be displayed in the document > */ >- public void setText(String value){ >- CTText t = run.sizeOfTArray() == 0 ? run.addNewT() : run.getTArray(0); >- t.setStringValue(value); >+ public void setText(String value) { >+ CTText t = run.sizeOfTArray() == 0 ? run.addNewT() : run.getTArray(0); >+ t.setStringValue(value); > } >+ >+ /** >+ * Whether the italic property should be applied to all non-complex script >+ * characters in the contents of this run when displayed in a document. >+ * >+ * @return <code>true</code> if the italic property is applied >+ */ >+ public boolean isItalic() { >+ CTRPr pr = run.getRPr(); >+ return pr != null && pr.isSetI(); >+ } >+ >+ /** >+ * Whether the bold property shall be applied to all non-complex script >+ * characters in the contents of this run when displayed in a document >+ * >+ * <p> >+ * This formatting property is a toggle property, which specifies that its >+ * behavior differs between its use within a style definition and its use as >+ * direct formatting. When used as part of a style definition, setting this >+ * property shall toggle the current state of that property as specified up >+ * to this point in the hierarchy (i.e. applied to not applied, and vice >+ * versa). Setting it to <code>false</code> (or an equivalent) shall >+ * result in the current setting remaining unchanged. However, when used as >+ * direct formatting, setting this property to true or false shall set the >+ * absolute state of the resulting property. >+ * </p> >+ * <p> >+ * If this element is not present, the default value is to leave the >+ * formatting applied at previous level in the style hierarchy. If this >+ * element is never applied in the style hierarchy, then bold shall not be >+ * applied to non-complex script characters. >+ * </p> >+ * >+ * @param value >+ * <code>true</code> if the italic property is applied to >+ * this run >+ */ >+ public void setItalic(boolean value) { >+ CTRPr pr = run.isSetRPr() ? run.getRPr() : run.addNewRPr(); >+ CTOnOff italic= pr.isSetI() ? pr.getI() : pr.addNewI(); >+ italic.setVal(value ? STOnOff.TRUE : STOnOff.FALSE); >+ } >+ >+ /** >+ * Specifies that the contents of this run should be displayed along with an >+ * underline appearing directly below the character heigh >+ * >+ * @see UnderlinePatterns >+ * @return the Underline pattern applyed to this run >+ */ >+ public UnderlinePatterns getUnderline() { >+ CTRPr pr = run.getRPr(); >+ return (pr != null && pr.isSetU()) ? UnderlinePatterns.valueOf(pr >+ .getU().getVal().intValue()) : null; >+ } >+ >+ /** >+ * Specifies that the contents of this run should be displayed along with an >+ * underline appearing directly below the character heigh >+ * >+ * <p> >+ * If this element is not present, the default value is to leave the >+ * formatting applied at previous level in the style hierarchy. If this >+ * element is never applied in the style hierarchy, then an underline shall >+ * not be applied to the contents of this run. >+ * </p> >+ * >+ * @param value - >+ * underline type >+ * @see UnderlinePatterns : all possible patterns that could be applied >+ * >+ */ >+ public void setUnderline(UnderlinePatterns value) { >+ CTRPr pr = run.isSetRPr() ? run.getRPr() : run.addNewRPr(); >+ CTUnderline underline= pr.isSetU() ? pr.getU() : pr.addNewU(); >+ underline.setVal(STUnderline.Enum.forInt(value.getValue())); >+ } >+ >+ /** >+ * Specifies that the contents of this run shall be displayed with a single >+ * horizontal line through the center of the line. >+ * >+ * @return <code>true</code> if the strike property is applied >+ */ >+ public boolean isStrike() { >+ CTRPr pr = run.getRPr(); >+ return pr != null && pr.isSetStrike(); >+ } >+ >+ /** >+ * Specifies that the contents of this run shall be displayed with a single >+ * horizontal line through the center of the line. >+ * <p> >+ * This formatting property is a toggle property, which specifies that its >+ * behavior differs between its use within a style definition and its use as >+ * direct formatting. When used as part of a style definition, setting this >+ * property shall toggle the current state of that property as specified up >+ * to this point in the hierarchy (i.e. applied to not applied, and vice >+ * versa). Setting it to false (or an equivalent) shall result in the >+ * current setting remaining unchanged. However, when used as direct >+ * formatting, setting this property to true or false shall set the absolute >+ * state of the resulting property. >+ * </p> >+ * <p> >+ * If this element is not present, the default value is to leave the >+ * formatting applied at previous level in the style hierarchy. If this >+ * element is never applied in the style hierarchy, then strikethrough shall >+ * not be applied to the contents of this run. >+ * </p> >+ * >+ * @param value >+ * <code>true</code> if the strike property is applied to >+ * this run >+ */ >+ public void setStrike(boolean value) { >+ CTRPr pr = run.isSetRPr() ? run.getRPr() : run.addNewRPr(); >+ CTOnOff strike= pr.isSetStrike() ? pr.getStrike() : pr.addNewStrike(); >+ strike.setVal(value ? STOnOff.TRUE : STOnOff.FALSE); >+ } >+ >+ /** >+ * Specifies the alignment which shall be applied to the contents of this >+ * run in relation to the default appearance of the run's text. >+ * This allows the text to be repositioned as subscript or superscript without >+ * altering the font size of the run properties. >+ * @see VerticalAlign all possible value that could be applyed to this run >+ * @return VerticalAlign >+ */ >+ public VerticalAlign getSubscript() { >+ CTRPr pr = run.getRPr(); >+ return (pr != null && pr.isSetVertAlign()) ? VerticalAlign.valueOf(pr >+ .getVertAlign().getVal().intValue()) : null; >+ } >+ >+ /** >+ * Specifies the alignment which shall be applied to the contents of this >+ * run in relation to the default appearance of the run's text. This allows >+ * the text to be repositioned as subscript or superscript without altering >+ * the font size of the run properties. >+ * <p> >+ * If this element is not present, the default value is to leave the >+ * formatting applied at previous level in the style hierarchy. If this >+ * element is never applied in the style hierarchy, then the text shall not >+ * be subscript or superscript relative to the default baseline location for >+ * the contents of this run. >+ * </p> >+ * >+ * @see VerticalAlign >+ * @param valign >+ */ >+ public void setSubscript(VerticalAlign valign) { >+ CTRPr pr = run.isSetRPr() ? run.getRPr() : run.addNewRPr(); >+ CTVerticalAlignRun ctValign= pr.isSetVertAlign() ? pr.getVertAlign() : pr.addNewVertAlign(); >+ ctValign.setVal(STVerticalAlignRun.Enum.forInt(valign.getValue())); >+ } >+ >+ /** >+ * Specifies the fonts which shall be used to display the text contents of >+ * this run. Specifies a font which shall be used to format all characters >+ * in the ASCII range (0 - 127) within the parent run >+ * >+ * @return a string representing the font family >+ */ >+ public String getFontFamily() { >+ CTRPr pr = run.getRPr(); >+ return (pr != null && pr.isSetRFonts()) ? pr.getRFonts().getAscii() >+ : null; >+ } >+ >+ /** >+ * Specifies the fonts which shall be used to display the text contents of >+ * this run. Specifies a font which shall be used to format all characters >+ * in the ASCII range (0 - 127) within the parent run >+ * >+ * @param fontFamily >+ */ >+ public void setFontFamily(String fontFamily) { >+ CTRPr pr = run.getRPr(); >+ CTFonts fonts= pr.isSetRFonts() ? pr.getRFonts() : pr.addNewRFonts(); >+ fonts.setAscii(fontFamily); >+ } >+ >+ /** >+ * Specifies the font size which shall be applied to all non complex script >+ * characters in the contents of this run when displayed. >+ * @return value representing the font size >+ */ >+ public BigInteger getFontSize() { >+ CTRPr pr = run.getRPr(); >+ return (pr != null && pr.isSetSz()) ? pr.getSz().getVal() : null; >+ } >+ >+ /** >+ * Specifies the font size which shall be applied to all non complex script >+ * characters in the contents of this run when displayed. >+ * <p> >+ * If this element is not present, the default value is to leave the value >+ * applied at previous level in the style hierarchy. If this element is >+ * never applied in the style hierarchy, then any appropriate font size may >+ * be used for non complex script characters. >+ * </p> >+ * @param size >+ */ >+ public void setFontSize(BigInteger size) { >+ CTRPr pr = run.isSetRPr() ? run.getRPr() : run.addNewRPr(); >+ CTHpsMeasure ctSize= pr.isSetSz() ? pr.getSz() : pr.addNewSz(); >+ ctSize.setVal(size); >+ } >+ >+ /** >+ * This element specifies the amount by which text shall be raised or >+ * lowered for this run in relation to the default baseline of the >+ * surrounding non-positioned text. This allows the text to be repositioned >+ * without altering the font size of the contents. >+ * >+ * @return a big integer representing the amount of text shall be "moved" >+ */ >+ public BigInteger getTextPosition() { >+ CTRPr pr = run.getRPr(); >+ return (pr != null && pr.isSetPosition()) ? pr.getPosition().getVal() >+ : null; >+ } >+ >+ /** >+ * This element specifies the amount by which text shall be raised or >+ * lowered for this run in relation to the default baseline of the >+ * surrounding non-positioned text. This allows the text to be repositioned >+ * without altering the font size of the contents. >+ * <p> >+ * If the val attribute is positive, then the parent run shall be raised >+ * above the baseline of the surrounding text by the specified number of >+ * half-points. If the val attribute is negative, then the parent run shall >+ * be lowered below the baseline of the surrounding text by the specified >+ * number of half-points. >+ * </p> >+ * <p> >+ * If this element is not present, the default value is to leave the >+ * formatting applied at previous level in the style hierarchy. If this >+ * element is never applied in the style hierarchy, then the text shall not >+ * be raised or lowered relative to the default baseline location for the >+ * contents of this run. >+ * </p> >+ * >+ * @param val >+ */ >+ public void setTextPosition(BigInteger val) { >+ CTRPr pr = run.isSetRPr() ? run.getRPr() : run.addNewRPr(); >+ CTSignedHpsMeasure position= pr.isSetPosition() ? pr.getPosition() : pr.addNewPosition(); >+ position.setVal(val); >+ } >+ > } >Index: src/ooxml/java/org/apache/poi/xwpf/usermodel/TextAlignment.java >=================================================================== >--- src/ooxml/java/org/apache/poi/xwpf/usermodel/TextAlignment.java (revision 0) >+++ src/ooxml/java/org/apache/poi/xwpf/usermodel/TextAlignment.java (revision 0) >@@ -0,0 +1,78 @@ >+/* ==================================================================== >+ 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.xwpf.usermodel; >+ >+import java.util.HashMap; >+import java.util.Map; >+ >+/** >+ * Specifies all types of vertical alignment which are available to be applied to of all text >+ * on each line displayed within a paragraph. >+ * >+ * @author Gisella Bronzetti >+ */ >+public enum TextAlignment { >+ /** >+ * Specifies that all text in the parent object shall be >+ * aligned to the top of each character when displayed >+ */ >+ TOP(1), >+ /** >+ * Specifies that all text in the parent object shall be >+ * aligned to the center of each character when displayed. >+ */ >+ CENTER(2), >+ /** >+ * Specifies that all text in the parent object shall be >+ * aligned to the baseline of each character when displayed. >+ */ >+ BASELINE(3), >+ /** >+ * Specifies that all text in the parent object shall be >+ * aligned to the bottom of each character when displayed. >+ */ >+ BOTTOM(4), >+ /** >+ * Specifies that all text in the parent object shall be >+ * aligned automatically when displayed. >+ */ >+ AUTO(5); >+ >+ private final int value; >+ >+ private TextAlignment(int val){ >+ value = val; >+ } >+ >+ public int getValue(){ >+ return value; >+ } >+ >+ private static Map<Integer, TextAlignment> imap = new HashMap<Integer, TextAlignment>(); >+ static{ >+ for (TextAlignment p : values()) { >+ imap.put(p.getValue(), p); >+ } >+ } >+ >+ public static TextAlignment valueOf(int type){ >+ TextAlignment align = imap.get(type); >+ if(align == null) throw new IllegalArgumentException("Unknown text alignment: " + type); >+ return align; >+ } >+ >+} >Index: src/ooxml/java/org/apache/poi/xwpf/usermodel/UnderlinePatterns.java >=================================================================== >--- src/ooxml/java/org/apache/poi/xwpf/usermodel/UnderlinePatterns.java (revision 0) >+++ src/ooxml/java/org/apache/poi/xwpf/usermodel/UnderlinePatterns.java (revision 0) >@@ -0,0 +1,163 @@ >+/* ==================================================================== >+ 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.xwpf.usermodel; >+ >+import java.util.HashMap; >+import java.util.Map; >+ >+/** >+ * Specifies the types of patterns which may be used to create the underline >+ * applied beneath the text in a run. >+ * >+ * @author Gisella Bronzetti >+ */ >+public enum UnderlinePatterns { >+ >+ /** >+ * Specifies an underline consisting of a single line beneath all characters >+ * in this run. >+ */ >+ SINGLE(1), >+ >+ /** >+ * Specifies an underline consisting of a single line beneath all non-space >+ * characters in the run. There shall be no underline beneath any space >+ * character (breaking or non-breaking). >+ */ >+ WORDS(2), >+ >+ /** >+ * Specifies an underline consisting of two lines beneath all characters in >+ * this run >+ */ >+ DOUBLE(3), >+ >+ /** >+ * Specifies an underline consisting of a single thick line beneath all >+ * characters in this run. >+ */ >+ THICK(4), >+ >+ /** >+ * Specifies an underline consisting of a series of dot characters beneath >+ * all characters in this run. >+ */ >+ DOTTED(5), >+ >+ /** >+ * Specifies an underline consisting of a series of thick dot characters >+ * beneath all characters in this run. >+ */ >+ DOTTED_HEAVY(6), >+ >+ /** >+ * Specifies an underline consisting of a dashed line beneath all characters >+ * in this run. >+ */ >+ DASH(7), >+ >+ /** >+ * Specifies an underline consisting of a series of thick dashes beneath all >+ * characters in this run. >+ */ >+ DASHED_HEAVY(8), >+ >+ /** >+ * Specifies an underline consisting of long dashed characters beneath all >+ * characters in this run. >+ */ >+ DASH_LONG(9), >+ >+ /** >+ * Specifies an underline consisting of thick long dashed characters beneath >+ * all characters in this run. >+ */ >+ DASH_LONG_HEAVY(10), >+ >+ /** >+ * Specifies an underline consisting of a series of dash, dot characters >+ * beneath all characters in this run. >+ */ >+ DOT_DASH(11), >+ >+ /** >+ * Specifies an underline consisting of a series of thick dash, dot >+ * characters beneath all characters in this run. >+ */ >+ DASH_DOT_HEAVY(12), >+ >+ /** >+ * Specifies an underline consisting of a series of dash, dot, dot >+ * characters beneath all characters in this run. >+ */ >+ DOT_DOT_DASH(13), >+ >+ /** >+ * Specifies an underline consisting of a series of thick dash, dot, dot >+ * characters beneath all characters in this run. >+ */ >+ DASH_DOT_DOT_HEAVY(14), >+ >+ /** >+ * Specifies an underline consisting of a single wavy line beneath all >+ * characters in this run. >+ */ >+ WAVE(15), >+ >+ /** >+ * Specifies an underline consisting of a single thick wavy line beneath all >+ * characters in this run. >+ */ >+ WAVY_HEAVY(16), >+ >+ /** >+ * Specifies an underline consisting of a pair of wavy lines beneath all >+ * characters in this run. >+ */ >+ WAVY_DOUBLE(17), >+ >+ /** >+ * Specifies no underline beneath this run. >+ */ >+ NONE(18); >+ >+ private final int value; >+ >+ private UnderlinePatterns(int val) { >+ value = val; >+ } >+ >+ public int getValue() { >+ return value; >+ } >+ >+ private static Map<Integer, UnderlinePatterns> imap = new HashMap<Integer, UnderlinePatterns>(); >+ static { >+ for (UnderlinePatterns p : values()) { >+ imap.put(p.getValue(), p); >+ } >+ } >+ >+ public static UnderlinePatterns valueOf(int type) { >+ UnderlinePatterns align = imap.get(type); >+ if (align == null) >+ throw new IllegalArgumentException("Unknown underline pattern: " >+ + type); >+ return align; >+ } >+ >+} >Index: src/ooxml/java/org/apache/poi/xwpf/usermodel/VerticalAlign.java >=================================================================== >--- src/ooxml/java/org/apache/poi/xwpf/usermodel/VerticalAlign.java (revision 0) >+++ src/ooxml/java/org/apache/poi/xwpf/usermodel/VerticalAlign.java (revision 0) >@@ -0,0 +1,75 @@ >+/* ==================================================================== >+ 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.xwpf.usermodel; >+ >+import java.util.HashMap; >+import java.util.Map; >+ >+/** >+ * Specifies possible values for the alignment of the contents of this run in >+ * relation to the default appearance of the run's text. This allows the text to >+ * be repositioned as subscript or superscript without altering the font size of >+ * the run properties. >+ * >+ * @author Gisella Bronzetti >+ */ >+public enum VerticalAlign { >+ >+ /** >+ * Specifies that the text in the parent run shall be located at the >+ * baseline and presented in the same size as surrounding text. >+ */ >+ BASELINE(1), >+ /** >+ * Specifies that this text should be subscript. This setting shall lower >+ * the text in this run below the baseline and change it to a smaller size, >+ * if a smaller size is available. >+ */ >+ SUPERSCRIPT(2), >+ /** >+ * Specifies that this text should be superscript. This setting shall raise >+ * the text in this run above the baseline and change it to a smaller size, >+ * if a smaller size is available. >+ */ >+ SUBSCRIPT(3); >+ >+ private final int value; >+ >+ private VerticalAlign(int val) { >+ value = val; >+ } >+ >+ public int getValue() { >+ return value; >+ } >+ >+ private static Map<Integer, VerticalAlign> imap = new HashMap<Integer, VerticalAlign>(); >+ static { >+ for (VerticalAlign p : values()) { >+ imap.put(p.getValue(), p); >+ } >+ } >+ >+ public static VerticalAlign valueOf(int type) { >+ VerticalAlign align = imap.get(type); >+ if (align == null) >+ throw new IllegalArgumentException("Unknown vertical alignment: " >+ + type); >+ return align; >+ } >+ >+} >Index: src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java >=================================================================== >--- src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java (revision 0) >+++ src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java (revision 0) >@@ -0,0 +1,135 @@ >+/* ==================================================================== >+ 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.xwpf.usermodel; >+ >+import java.math.BigInteger; >+ >+import junit.framework.TestCase; >+ >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STUnderline; >+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalAlignRun; >+ >+/** >+ * Tests for XWPF Run >+ */ >+public class TestXWPFRun extends TestCase { >+ >+ public CTR ctRun; >+ public XWPFParagraph p; >+ >+ protected void setUp() { >+ XWPFDocument doc = new XWPFDocument(); >+ p = doc.createParagraph(); >+ >+ this.ctRun = CTR.Factory.newInstance(); >+ >+ } >+ >+ public void testSetGetBold() { >+ CTRPr rpr = ctRun.addNewRPr(); >+ rpr.addNewB().setVal(STOnOff.TRUE); >+ >+ XWPFRun run = new XWPFRun(ctRun, p); >+ assertEquals(true, run.isBold()); >+ >+ run.setBold(false); >+ assertEquals(STOnOff.FALSE, rpr.getB().getVal()); >+ } >+ >+ public void testSetGetItalic() { >+ CTRPr rpr = ctRun.addNewRPr(); >+ rpr.addNewI().setVal(STOnOff.TRUE); >+ >+ XWPFRun run = new XWPFRun(ctRun, p); >+ assertEquals(true, run.isItalic()); >+ >+ run.setItalic(false); >+ assertEquals(STOnOff.FALSE, rpr.getI().getVal()); >+ } >+ >+ public void testSetGetStrike() { >+ CTRPr rpr = ctRun.addNewRPr(); >+ rpr.addNewStrike().setVal(STOnOff.TRUE); >+ >+ XWPFRun run = new XWPFRun(ctRun, p); >+ assertEquals(true, run.isStrike()); >+ >+ run.setStrike(false); >+ assertEquals(STOnOff.FALSE, rpr.getStrike().getVal()); >+ } >+ >+ public void testSetGetUnderline() { >+ CTRPr rpr = ctRun.addNewRPr(); >+ rpr.addNewU().setVal(STUnderline.DASH); >+ >+ XWPFRun run = new XWPFRun(ctRun, p); >+ assertEquals(UnderlinePatterns.DASH.getValue(), run.getUnderline() >+ .getValue()); >+ >+ run.setUnderline(UnderlinePatterns.NONE); >+ assertEquals(STUnderline.NONE.intValue(), rpr.getU().getVal() >+ .intValue()); >+ } >+ >+ public void testSetGetVAlign() { >+ CTRPr rpr = ctRun.addNewRPr(); >+ rpr.addNewVertAlign().setVal(STVerticalAlignRun.SUBSCRIPT); >+ >+ XWPFRun run = new XWPFRun(ctRun, p); >+ assertEquals(VerticalAlign.SUBSCRIPT, run.getSubscript()); >+ >+ run.setSubscript(VerticalAlign.BASELINE); >+ assertEquals(STVerticalAlignRun.BASELINE, rpr.getVertAlign().getVal()); >+ } >+ >+ public void testSetGetFontFamily() { >+ CTRPr rpr = ctRun.addNewRPr(); >+ rpr.addNewRFonts().setAscii("Times New Roman"); >+ >+ XWPFRun run = new XWPFRun(ctRun, p); >+ assertEquals("Times New Roman", run.getFontFamily()); >+ >+ run.setFontFamily("Verdana"); >+ assertEquals("Verdana", rpr.getRFonts().getAscii()); >+ } >+ >+ public void testSetGetFontSize() { >+ CTRPr rpr = ctRun.addNewRPr(); >+ rpr.addNewSz().setVal(new BigInteger("4000")); >+ >+ XWPFRun run = new XWPFRun(ctRun, p); >+ assertEquals(4000, run.getFontSize().longValue()); >+ >+ run.setFontSize(new BigInteger("2400")); >+ assertEquals(2400, rpr.getSz().getVal().longValue()); >+ } >+ >+ public void testSetGetTextForegroundBackground() { >+ CTRPr rpr = ctRun.addNewRPr(); >+ rpr.addNewPosition().setVal(new BigInteger("4000")); >+ >+ XWPFRun run = new XWPFRun(ctRun, p); >+ assertEquals(4000, run.getTextPosition().longValue()); >+ >+ run.setTextPosition(new BigInteger("2400")); >+ assertEquals(2400, rpr.getPosition().getVal().longValue()); >+ } >+ >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 46212
: 22871