/**
* YogaCombinationsView.java
* Created On 2007, Nov 16, 2007 3:21:40 PM
* @author E. Rajasekar
*/
package app.astrosoft.ui.view;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Point;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.JEditorPane;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import app.astrosoft.beans.PlanetChartData;
import app.astrosoft.beans.PlanetaryInfo;
import app.astrosoft.consts.Varga;
import app.astrosoft.consts.YogaCombination;
import app.astrosoft.ui.comp.Chart;
import app.astrosoft.ui.comp.VargaChartPanel;
import app.astrosoft.ui.util.UIUtil;
import app.astrosoft.xps.yoga.YogaResults;
public class YogaCombinationsView extends AstrosoftView{
private static final Logger log = Logger.getLogger(YogaCombinationsView.class.getName());
private static final Dimension viewSize = new Dimension(790, 470);
private static final Dimension yogaSize = new Dimension((int)(viewSize.width * 0.20), viewSize.height);
private static final Dimension chartSize = new Dimension((int)(viewSize.width * 0.50), (int) (viewSize.height * 0.60));
private static final Point viewLoc = new Point(0,0);
private JPanel chartPanel;
private PlanetaryInfo planetaryInfo;
private YogaResults yogaResults;
private JEditorPane editorPane;
private JList yogaList;
public YogaCombinationsView(String title, YogaResults yogaResults, PlanetaryInfo planetaryInfo) {
super(viewSize, viewLoc);
this.planetaryInfo = planetaryInfo;
this.yogaResults = yogaResults;
JPanel yogaPanel = new JPanel();
yogaList = new JList(yogaResults.getYogas().toArray());
yogaList.setFont(UIUtil.getFont("Tahoma", Font.PLAIN, 11));
yogaList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
yogaList.setSelectedIndex(0);
yogaPanel.add(yogaList);
yogaPanel.setPreferredSize(yogaSize);
final JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, yogaPanel, createResultPane());
yogaPanel.setBorder(BorderFactory.createEtchedBorder());
splitPane.setBorder(BorderFactory.createEmptyBorder());
yogaList.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e) {
//splitPane.remove(chartPanel);
yogaChanged((YogaResults.Result)yogaList.getSelectedValue());
//splitPane.add(chartPanel);
}
});
add(splitPane,BorderLayout.CENTER);
}
private void yogaChanged(YogaResults.Result selectedYoga) {
editorPane.setText(selectedYoga.getYoga().getHtmlString());
/*try {
editorPane.setPage("file://C:\\Documents and Settings\\Raja\\Desktop\\AstroScrap.java.html");
} catch (IOException e) {
log.log(Level.SEVERE, "Exception in creation yoga detail html" , e);
}*/
}
private JSplitPane createResultPane(){
chartPanel = new JPanel(new BorderLayout());
//chartPanel.add(new Chart(new PlanetChartData(Varga.Rasi, planetaryInfo), chartSize), BorderLayout.CENTER);
chartPanel.add(new VargaChartPanel(planetaryInfo, chartSize), BorderLayout.CENTER);
final JSplitPane yogaResultPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, chartPanel, createYogaDetailPane());
chartPanel.setBorder(BorderFactory.createEtchedBorder());
yogaResultPane.setBorder(BorderFactory.createEmptyBorder());
return yogaResultPane;
}
private Component createYogaDetailPane(){
//JPanel yogaDetail= new JPanel();
editorPane = new JEditorPane();
editorPane.setContentType("text/html");
editorPane.setEditable(false);
yogaChanged((YogaResults.Result)yogaList.getSelectedValue());
editorPane.setBorder(BorderFactory.createEtchedBorder());
return editorPane;
}
}