]> source.dussan.org Git - poi.git/commitdiff
Refactor common default styles code to use the new helpers
authorNick Burch <nick@apache.org>
Thu, 7 May 2015 13:34:03 +0000 (13:34 +0000)
committerNick Burch <nick@apache.org>
Thu, 7 May 2015 13:34:03 +0000 (13:34 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1678197 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java

index cebc63cadbf6a547e43dc84653d3d37ce1880705..8647cc9f7ed406e9dec866d59defd133b7bc6224 100644 (file)
@@ -231,11 +231,7 @@ public class XWPFStyles extends POIXMLDocumentPart{
         return usedStyleList;
     }
 
-    /**
-     * Sets the default spelling language on ctStyles DocDefaults parameter
-     * @param strSpellingLanguage
-     */
-    public void setSpellingLanguage(String strSpellingLanguage) {
+    protected CTLanguage getCTLanguage() {
         ensureDocDefaults();
         
         CTLanguage lang = null;
@@ -244,69 +240,38 @@ public class XWPFStyles extends POIXMLDocumentPart{
         } else {
             lang = defaultRunStyle.getRPr().addNewLang();
         }
-
+        
+        return lang;
+    }
+    
+    /**
+     * Sets the default spelling language on ctStyles DocDefaults parameter
+     * @param strSpellingLanguage
+     */
+    public void setSpellingLanguage(String strSpellingLanguage) {
+        CTLanguage lang = getCTLanguage();
         lang.setVal(strSpellingLanguage);
         lang.setBidi(strSpellingLanguage);
     }
     
-    // TODO Refactor the others like this
-
     /**
      * Sets the default East Asia spelling language on ctStyles DocDefaults parameter
      * @param strEastAsia
      */
     public void setEastAsia(String strEastAsia) {
-        CTDocDefaults docDefaults = null;
-        CTRPr runProps = null;
-        CTLanguage lang = null;
-
-        // Just making sure we use the members that have already been defined
-        if(ctStyles.isSetDocDefaults()) {
-            docDefaults = ctStyles.getDocDefaults();
-            if(docDefaults.isSetRPrDefault()) {
-                CTRPrDefault RPrDefault = docDefaults.getRPrDefault();
-                if(RPrDefault.isSetRPr()) {
-                    runProps = RPrDefault.getRPr();
-                    if(runProps.isSetLang())
-                        lang = runProps.getLang();
-                }
-            }
-        }
-
-        if(docDefaults == null)
-            docDefaults = ctStyles.addNewDocDefaults();
-        if(runProps == null)
-            runProps = docDefaults.addNewRPrDefault().addNewRPr();
-        if(lang == null)
-            lang = runProps.addNewLang();
-
+        CTLanguage lang = getCTLanguage();
         lang.setEastAsia(strEastAsia);
     }
 
     /**
      * Sets the default font on ctStyles DocDefaults parameter
-     * @param fonts
+     * TODO Replace this with specific setters for each type, possibly
+     *  on XWPFDefaultRunStyle
      */
     public void setDefaultFonts(CTFonts fonts) {
-        CTDocDefaults docDefaults = null;
-        CTRPr runProps = null;
-
-        // Just making sure we use the members that have already been defined
-        if(ctStyles.isSetDocDefaults()) {
-            docDefaults = ctStyles.getDocDefaults();
-            if(docDefaults.isSetRPrDefault()) {
-                CTRPrDefault RPrDefault = docDefaults.getRPrDefault();
-                if(RPrDefault.isSetRPr()) {
-                    runProps = RPrDefault.getRPr();
-                }
-            }
-        }
-
-        if(docDefaults == null)
-            docDefaults = ctStyles.addNewDocDefaults();
-        if(runProps == null)
-            runProps = docDefaults.addNewRPrDefault().addNewRPr();
-
+        ensureDocDefaults();
+        
+        CTRPr runProps = defaultRunStyle.getRPr();
         runProps.setRFonts(fonts);
     }