/**
* VargaChartView.java
* Created On 2006, Apr 1, 2006 3:37:02 PM
* @author E. Rajasekar
*/
package app.astrosoft.ui.view;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.BorderFactory;
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.ui.comp.Chart;
import app.astrosoft.ui.util.UIConsts;
import app.astrosoft.ui.util.UIUtil;
public class VargaChartView extends AstrosoftView {
private static final Dimension viewSize = new Dimension(650, 400);
private static final Dimension vargaSize = new Dimension((int)(viewSize.width * 0.20), viewSize.height);
private static final Dimension chartSize = new Dimension((int)(viewSize.width * 0.70), (int) (viewSize.height * 0.65));
private JPanel chartPanel;
private PlanetaryInfo planetaryInfo;
public VargaChartView(String title, PlanetaryInfo planetaryInfo) {
super(title, viewSize);
this.planetaryInfo = planetaryInfo;
JPanel vargaPanel = new JPanel();
final JList vargaList = new JList(Varga.values());
vargaList.setFont(UIUtil.getFont("Tahoma", Font.PLAIN, 11));
vargaList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
vargaList.setSelectedIndex(0);
vargaPanel.add(vargaList);
vargaPanel.setPreferredSize(vargaSize);
chartPanel = new JPanel(new BorderLayout());
chartPanel.add(new Chart(new PlanetChartData(Varga.Bhava, planetaryInfo), chartSize), BorderLayout.CENTER);
final JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, vargaPanel, chartPanel);
vargaPanel.setBorder(BorderFactory.createEtchedBorder());
splitPane.setBorder(BorderFactory.createEtchedBorder());
chartPanel.setBorder(BorderFactory.createEmptyBorder());
vargaList.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e) {
splitPane.remove(chartPanel);
vargaChanged((Varga)vargaList.getSelectedValue());
splitPane.add(chartPanel);
}
});
add(splitPane,BorderLayout.CENTER);
}
private void vargaChanged(Varga varga) {
chartPanel.removeAll();
chartPanel.add(new Chart(new PlanetChartData(varga, planetaryInfo), chartSize), BorderLayout.CENTER);
}
}