All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hfg.xml.msofficexml.xlsx.spreadsheetml.style.SsmlAlignment Maven / Gradle / Ivy

There is a newer version: 20240423
Show newest version
package com.hfg.xml.msofficexml.xlsx.spreadsheetml.style;



import com.hfg.html.attribute.Align;
import com.hfg.util.CompareUtil;
import com.hfg.xml.XMLNamespaceSet;
import com.hfg.xml.msofficexml.xlsx.Xlsx;
import com.hfg.xml.msofficexml.xlsx.spreadsheetml.SsmlXML;
import com.hfg.xml.msofficexml.xlsx.spreadsheetml.SsmlXMLTag;

import java.io.Writer;

//------------------------------------------------------------------------------
/**
 Represents an Office Open XML spreadsheetml (<ssml:alignment>) tag.

 @author J. Alex Taylor, hairyfatguy.com
 */
//------------------------------------------------------------------------------
// com.hfg XML/HTML Coding Library
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com
// [email protected]
//------------------------------------------------------------------------------

public class SsmlAlignment extends SsmlXMLTag implements Comparable
{

   //##########################################################################
   // CONSTRUCTORS
   //##########################################################################

   //---------------------------------------------------------------------------
   public SsmlAlignment(Xlsx inXlsx)
   {
      super(SsmlXML.ALIGNMENT, inXlsx);
   }

   //---------------------------------------------------------------------------
   public SsmlAlignment(SsmlXMLTag inSsmlXMLTag)
   {
      this(inSsmlXMLTag.getParentDoc());
   }

   //##########################################################################
   // PUBLIC METHODS
   //##########################################################################

   //---------------------------------------------------------------------------
   // Attempt to prevent outputting an unconfigured alignment tag like ''
   // because Excel might choke on it.
   @Override
   public synchronized void toXML(Writer inWriter, XMLNamespaceSet inDeclaredNamespaces)
   {
      if (hasAttributes()
          || hasContentOrSubtags())
      {
         super.toXML(inWriter, inDeclaredNamespaces);
      }
   }

   //---------------------------------------------------------------------------
   // Attempt to prevent outputting an unconfigured alignment tag like ''
   // because Excel might choke on it.
   @Override
   public void toIndentedXML(Writer inWriter, int inInitialIndentSize, int inIndentSize,
                             XMLNamespaceSet inDeclaredNamespaces)
   {
      if (hasAttributes()
          || hasContentOrSubtags())
      {
         super.toIndentedXML(inWriter, inInitialIndentSize, inIndentSize, inDeclaredNamespaces);
      }
   }

   //---------------------------------------------------------------------------
   @Override
   public SsmlAlignment clone()
   {
      return (SsmlAlignment) super.clone();
   }

   //--------------------------------------------------------------------------
   @Override
   public int hashCode()
   {
      int value = 0;

      if (hasAttribute(SsmlXML.HORIZONTAL_ATT))
      {
         value += getAttributeValue(SsmlXML.HORIZONTAL_ATT).hashCode();
      }

      if (hasAttribute(SsmlXML.VERTICAL_ATT))
      {
         value += getAttributeValue(SsmlXML.VERTICAL_ATT).hashCode();
      }

      if (hasAttribute(SsmlXML.TEXT_ROTATION_ATT))
      {
         value += getAttributeValue(SsmlXML.TEXT_ROTATION_ATT).hashCode();
      }

      if (hasAttribute(SsmlXML.WRAP_TEXT_ATT))
      {
         value += getAttributeValue(SsmlXML.WRAP_TEXT_ATT).hashCode();
      }

      // TODO: indent, relativeIndent, justifyLastLine, shrinkToFit, readingOrder

      return value;
   }

   //--------------------------------------------------------------------------
   @Override
   public boolean equals(Object inObj2)
   {
      return (0 == compareTo(inObj2));
   }

   //--------------------------------------------------------------------------
   @Override
   public int compareTo(Object inObj2)
   {
      int result = -1;

      if (inObj2 instanceof SsmlAlignment)
      {
         SsmlAlignment alignment2 = (SsmlAlignment) inObj2;

         result = CompareUtil.compare(getAttributeValue(SsmlXML.HORIZONTAL_ATT), alignment2.getAttributeValue(SsmlXML.HORIZONTAL_ATT));

         if (0 == result)
         {
            result = CompareUtil.compare(getAttributeValue(SsmlXML.VERTICAL_ATT), alignment2.getAttributeValue(SsmlXML.VERTICAL_ATT));

            if (0 == result)
            {
               result = CompareUtil.compare(getAttributeValue(SsmlXML.TEXT_ROTATION_ATT), alignment2.getAttributeValue(SsmlXML.TEXT_ROTATION_ATT));

               if (0 == result)
               {
                  result = CompareUtil.compare(getAttributeValue(SsmlXML.WRAP_TEXT_ATT), alignment2.getAttributeValue(SsmlXML.WRAP_TEXT_ATT));

                  if (0 == result)
                  {
                     // TODO: indent, relativeIndent, justifyLastLine, shrinkToFit, readingOrder
                  }
               }
            }
         }
      }

      return result;
   }

   //---------------------------------------------------------------------------
   public SsmlAlignment setHorizontal(Align inValue)
   {
      return setHorizontal(SsmlHorizontalAlign.valueOf(inValue));
   }

   //---------------------------------------------------------------------------
   public SsmlAlignment setHorizontal(SsmlHorizontalAlign inValue)
   {
      if (inValue != null)
      {
         setAttribute(SsmlXML.HORIZONTAL_ATT, inValue);
      }
      else
      {
         removeAttribute(SsmlXML.HORIZONTAL_ATT);
      }

      return this;
   }

   //---------------------------------------------------------------------------
   public SsmlAlignment setVertical(SsmlVerticalAlign inValue)
   {
      if (inValue != null)
      {
         setAttribute(SsmlXML.VERTICAL_ATT, inValue);
      }
      else
      {
         removeAttribute(SsmlXML.VERTICAL_ATT);
      }

      return this;
   }

   //---------------------------------------------------------------------------
   public SsmlAlignment setTextRotation(Integer inValue)
   {
      if (inValue != null)
      {
         setAttribute(SsmlXML.TEXT_ROTATION_ATT, inValue);
      }
      else
      {
         removeAttribute(SsmlXML.TEXT_ROTATION_ATT);
      }

      return this;
   }

   //---------------------------------------------------------------------------
   public SsmlAlignment setWrapText(boolean inValue)
   {
      setAttribute(SsmlXML.WRAP_TEXT_ATT, inValue);

      return this;
   }

   // TODO: indent, relativeIndent, justifyLastLine, shrinkToFit, readingOrder
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy