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

com.hfg.util.collection.DataColumn Maven / Gradle / Ivy

There is a newer version: 20240423
Show newest version
package com.hfg.util.collection;

import com.hfg.graphics.units.GfxSize;
import com.hfg.html.attribute.Align;
import com.hfg.util.CompareUtil;
import com.hfg.util.DataType;

import java.awt.*;
import java.util.regex.Pattern;

//------------------------------------------------------------------------------
/**
 Column info for a DataTable column.
 
@author J. Alex Taylor, hairyfatguy.com
*/ //------------------------------------------------------------------------------ // com.hfg 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 DataColumn implements Comparable, Cloneable { private String mTitle; private String mDescription; private Align mTextAlign; private String mCssStyle; private GfxSize mWidth; private Font mFont; private String mFormatString; private boolean mIsRequired; private Pattern mTitlePattern; private Integer mIndex; private DataType mDataType; //########################################################################## // CONSTRUCTORS //########################################################################## //-------------------------------------------------------------------------- public DataColumn(String inTitle) { mTitle = inTitle; } //########################################################################## // PUBLIC METHODS //########################################################################## //-------------------------------------------------------------------------- @Override public String toString() { return getTitle(); } //-------------------------------------------------------------------------- public DataColumn clone() { DataColumn clone; try { clone = (DataColumn) super.clone(); } catch (CloneNotSupportedException e) { throw new RuntimeException(e); } return clone; } //-------------------------------------------------------------------------- @Override public boolean equals(Object inObj2) { return 0 == compareTo(inObj2); } // Note that we don't override hashCode() because if we tie the hashcode to // the title and we change the title, the DataTable's underlying map won't // be able to find the column correctly. //-------------------------------------------------------------------------- @Override public int compareTo(Object inObj2) { int result = -1; if (inObj2 instanceof DataColumn) { result = CompareUtil.compare(getTitle(), ((DataColumn) inObj2).getTitle()); } return result; } //-------------------------------------------------------------------------- public DataColumn setTitle(String inValue) { mTitle = inValue; return this; } //-------------------------------------------------------------------------- public String getTitle() { return mTitle; } //-------------------------------------------------------------------------- public DataColumn setDescription(String inValue) { mDescription = inValue; return this; } //-------------------------------------------------------------------------- public String getDescription() { return mDescription; } //-------------------------------------------------------------------------- public DataColumn setTextAlign(Align inValue) { mTextAlign = inValue; return this; } //-------------------------------------------------------------------------- public Align getTextAlign() { return mTextAlign; } //-------------------------------------------------------------------------- public DataColumn setCssStyle(String inValue) { mCssStyle = inValue; return this; } //-------------------------------------------------------------------------- public String getCssStyle() { return mCssStyle; } //-------------------------------------------------------------------------- public GfxSize getWidth() { return mWidth; } //-------------------------------------------------------------------------- public DataColumn setWidth(GfxSize inValue) { this.mWidth = inValue; return this; } //-------------------------------------------------------------------------- public Font getFont() { return mFont; } //-------------------------------------------------------------------------- public DataColumn setFont(Font inValue) { mFont = inValue; return this; } //-------------------------------------------------------------------------- /** Sets a formatting string (like "%.1f%%") to be used by the DataTable's getFormatted(). * @param inValue formatting string * @return this DataColumn object */ public DataColumn setFormatString(String inValue) { mFormatString = inValue; return this; } //-------------------------------------------------------------------------- public String getFormatString() { return mFormatString; } //-------------------------------------------------------------------------- public boolean isRequired() { return mIsRequired; } //-------------------------------------------------------------------------- public DataColumn setIsRequired(boolean inValue) { mIsRequired = inValue; return this; } //-------------------------------------------------------------------------- public Pattern getTitlePattern() { return mTitlePattern; } //-------------------------------------------------------------------------- /** Sets a pattern which can be used to match this column definition to column header from a spreadsheet. * @param inValue pattern for matching * @return this DataColumn object */ public DataColumn setTitlePattern(Pattern inValue) { mTitlePattern = inValue; return this; } //-------------------------------------------------------------------------- public Integer getIndex() { return mIndex; } //-------------------------------------------------------------------------- public DataColumn setIndex(Integer inValue) { mIndex = inValue; return this; } //--------------------------------------------------------------------------- public DataType getDataType() { return mDataType; } //--------------------------------------------------------------------------- @SuppressWarnings("unchecked") public DataColumn setDataType(DataType inValue) { mDataType = inValue; return this; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy