/**
* CompPanel.java
*
* Created on July 3, 2004, 2:35 PM
*
* @author E. Rajasekar
*/
package app.astrosoft.ui.view;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import app.astrosoft.beans.PlanetChartData;
import app.astrosoft.consts.AstrosoftTableColumn;
import app.astrosoft.consts.DisplayStrings;
import app.astrosoft.consts.TableStyle;
import app.astrosoft.consts.Varga;
import app.astrosoft.core.Compactibility;
import app.astrosoft.ui.comp.Chart;
import app.astrosoft.ui.comp.TitleLabel;
import app.astrosoft.ui.table.AstrosoftTable;
import app.astrosoft.ui.table.AstrosoftTableModel;
import app.astrosoft.ui.table.Cell;
import app.astrosoft.ui.table.NumberCellRenderer;
import app.astrosoft.ui.table.SortableTable;
import app.astrosoft.ui.table.SortableTableModel;
import app.astrosoft.ui.window.AstrosoftWindow;
import app.astrosoft.ui.window.SphutaLabelModel;
import app.astrosoft.ui.window.TablePopupWindowModel;
import app.astrosoft.ui.window.WindowLabelModel;
public class CompPanel extends javax.swing.JPanel {
Compactibility c;
private JLabel ltitle;
private final int BSTART_X = 20;
private final int GSTART_X = 410;
private final int START_Y = 20;
private final int YINC = 20;
private final int XINC = 100;
private int ypos = START_Y;
public CompPanel(Compactibility c) {
this.c = c;
ltitle = new TitleLabel(DisplayStrings.MRAG_COMP_STR);
setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
displayInfo();
displayKutas();
if (c.hasHoroscope()){
displayDoshas();
displayCharts();
}
}
private void displayInfo() {
AstrosoftTableModel boyModel = new AstrosoftTableModel(c
.getBoyInfo(), Compactibility.getInfoTableColumnMetaData());
AstrosoftTableModel girlModel = new AstrosoftTableModel(c
.getGirlInfo(), Compactibility.getInfoTableColumnMetaData());
AstrosoftTable boyTable = new AstrosoftTable(boyModel, TableStyle.NONE);
AstrosoftTable girlTable = new AstrosoftTable(girlModel, TableStyle.NONE);
boyTable.setColumnWidth(100, AstrosoftTableColumn.Key);
girlTable.setColumnWidth(100, AstrosoftTableColumn.Key);
if (c.hasHoroscope()) {
addPopups(boyTable, boyModel, girlTable, girlModel);
}
this.add(ltitle, new org.netbeans.lib.awtextra.AbsoluteConstraints(
230, ypos, -1, -1));
ypos = ypos + YINC;
this.add(boyTable, new org.netbeans.lib.awtextra.AbsoluteConstraints(
BSTART_X, ypos, -1, -1));
this.add(girlTable, new org.netbeans.lib.awtextra.AbsoluteConstraints(
GSTART_X, ypos, -1, -1));
}
private void addPopups(AstrosoftTable boyTable, final AstrosoftTableModel boyModel, AstrosoftTable girlTable, final AstrosoftTableModel girlModel){
TablePopupWindowModel beejaPopup = new TablePopupWindowModel(){
SphutaLabelModel sphutaModel = new SphutaLabelModel();
public WindowLabelModel getModel(Cell cell) {
int colIndex = boyModel.getColumnIndex(AstrosoftTableColumn.Beeja);
sphutaModel.setSphuta((Double)boyModel.getValueAt(cell.row,colIndex));
return sphutaModel;
}
};
boyTable.addCellPopupWindow(new Cell(4), beejaPopup);
TablePopupWindowModel kshetraPopup = new TablePopupWindowModel(){
SphutaLabelModel sphutaModel = new SphutaLabelModel();
public WindowLabelModel getModel(Cell cell) {
int colIndex = girlModel.getColumnIndex(AstrosoftTableColumn.Kshetra);
sphutaModel.setSphuta((Double)(girlModel.getValueAt(cell.row,colIndex)));
return sphutaModel;
}
};
girlTable.addCellPopupWindow(new Cell(4), kshetraPopup);
}
private void displayKutas() {
SortableTableModel kutaModel = new SortableTableModel(c
.getKutaTableData(), Compactibility.getKutaTableColumnMetaData());
SortableTable kutaTable = new SortableTable(kutaModel, TableStyle.STANDARD);
kutaTable.setColumnWidth(100, AstrosoftTableColumn.Kuta);
kutaTable.setRowColor(13, Color.RED);
ypos = ypos + 6 * YINC;
this.add(kutaTable.getTableHeader(),
new org.netbeans.lib.awtextra.AbsoluteConstraints(BSTART_X, ypos,
-1, -1));
ypos = ypos + 23;
this.add(kutaTable, new org.netbeans.lib.awtextra.AbsoluteConstraints(
BSTART_X, ypos, -1, -1));
}
public void displayDoshas() {
ypos = ypos - 23;
final AstrosoftTable doshaTable = new AstrosoftTable( new AstrosoftTableModel(c
.getDoshaTableData(), Compactibility.getDoshaTableColumnMetaData()), TableStyle.STANDARD);
doshaTable.setRowColor(5, Color.RED);
doshaTable.setColumnNumberFormat(AstrosoftTableColumn.Boy, new java.text.DecimalFormat("00.00"));
doshaTable.setColumnNumberFormat(AstrosoftTableColumn.Girl, new java.text.DecimalFormat("00.00"));
this.add(doshaTable.getTableHeader(),
new org.netbeans.lib.awtextra.AbsoluteConstraints(320, ypos,
-1, -1));
ypos = ypos + 23;
this.add(doshaTable, new org.netbeans.lib.awtextra.AbsoluteConstraints(
320, ypos, -1, -1));
}
private void displayCharts() {
ypos = ypos + 320;
Dimension chartSize = new Dimension(360,320);
Chart bRasiChart = new Chart(new PlanetChartData(Varga.Rasi, c.getBoyPlanetaryInfo()), chartSize);
Chart bNavamsaChart = new Chart(new PlanetChartData(Varga.Navamsa, c.getBoyPlanetaryInfo()), chartSize);
Chart gRasiChart = new Chart(new PlanetChartData(Varga.Rasi, c.getGirlPlanetaryInfo()), chartSize);
Chart gNavamsaChart = new Chart(new PlanetChartData(Varga.Navamsa, c.getGirlPlanetaryInfo()), chartSize);
JPanel panel = new JPanel(new GridLayout(2,2));
panel.add(bRasiChart);
panel.add(gRasiChart);
panel.add(bNavamsaChart);
panel.add(gNavamsaChart);
this.add(panel, new org.netbeans.lib.awtextra.AbsoluteConstraints(
50, ypos, -1, -1));
}
}