com.hfg.xml.msofficexml.xlsx.spreadsheetml.style.SsmlAlignment Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com_hfg Show documentation
Show all versions of com_hfg Show documentation
com.hfg xml, html, svg, and bioinformatics utility library
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
}