/**
* MuhurthaBean.java
* Created On 2005, Oct 15, 2005 7:24:41 PM
* @author E. Rajasekar
*/
package app.astrosoft.beans;
import java.util.Comparator;
import app.astrosoft.consts.AstrosoftTableColumn;
import app.astrosoft.consts.DisplayFormat;
import app.astrosoft.consts.MuhurthaRank;
import app.astrosoft.consts.Nakshathra;
import app.astrosoft.consts.Rasi;
import app.astrosoft.ui.table.ColumnMetaData;
import app.astrosoft.ui.table.DefaultColumnMetaData;
import app.astrosoft.ui.table.TableRowData;
/**
* Class holds Muhurtha Transit Information
*/
public class MuhurthaBean implements TableRowData {
private Interval period;
private Interval longitude;
private MuhurthaRank rank;
private Nakshathra nak;
private Rasi rasi;
public MuhurthaBean(Interval period, Interval longitudes, MuhurthaRank rank) {
this.period = period;
this.longitude = longitudes;
this.rank = rank;
nak = Nakshathra.ofDeg(longitudes.getStart());
rasi = Rasi.ofDeg(longitudes.getStart());
}
public Interval getPeriod() {
return period;
}
public Interval getLongitude() {
return longitude;
}
public MuhurthaRank getRank() {
return rank;
}
public Nakshathra getNakshathra() {
return nak;
}
public Rasi getRasi() {
return rasi;
}
public String toString() {
StringBuffer sb = new StringBuffer(period.toString(DisplayFormat.DATE_TIME) + " -> " + longitude.toString(DisplayFormat.DEG));
sb.append(" -> ");
sb.append("[ " + rasi + " , ");
sb.append(nak + " ] ");
sb.append(rank + "\n");
return sb.toString();
}
public static Comparator<TableRowData> getComparator(
final AstrosoftTableColumn col) {
Comparator<TableRowData> cmp = new Comparator<TableRowData>() {
Comparable c1 = null;
Comparable c2 = null;
public int compare(TableRowData o1, TableRowData o2) {
switch (col) {
case Period:
c1 = (Comparable) ((MuhurthaBean) o1).period;
c2 = (Comparable) ((MuhurthaBean) o2).period;
break;
case Rank:
c1 = ((MuhurthaBean) o1).rank;
c2 = ((MuhurthaBean) o2).rank;
break;
}
return c1.compareTo(c2);
}
};
return cmp;
}
public Object getColumnData(AstrosoftTableColumn col) {
switch (col) {
case Period:
return getPeriod().toString(DisplayFormat.DATE);
case Longitude:
return getLongitude().toString(DisplayFormat.DEG);
case Rank:
return getRank();
case Nakshathra:
return getNakshathra();
case Rasi:
return getRasi();
case PeriodPopup:
return getPeriod().toString(DisplayFormat.DATE_TIME);
}
return null;
}
public static ColumnMetaData getColumnMetaData() {
return columnMetaData;
}
private static ColumnMetaData columnMetaData = new DefaultColumnMetaData() {
{
// All hidden cols should be last.
super.setColumns(AstrosoftTableColumn.Period,
AstrosoftTableColumn.Nakshathra, AstrosoftTableColumn.Rasi,
AstrosoftTableColumn.Rank, AstrosoftTableColumn.Longitude,
AstrosoftTableColumn.PeriodPopup);
super.setSortableColumns(AstrosoftTableColumn.Period,
AstrosoftTableColumn.Rank);
super.setHiddenColumnCount(2);
super.localizeColumns(AstrosoftTableColumn.Period, AstrosoftTableColumn.Nakshathra, AstrosoftTableColumn.Rasi, AstrosoftTableColumn.Rank);
}
public Comparator<TableRowData> getColumnComparator(
AstrosoftTableColumn col) {
return getComparator(col);
}
};
}