/* NewSleepComparisonDialog.java created 2008-02-27
*
*/
package org.signalml.plugin.newstager.ui;
import static org.signalml.plugin.i18n.PluginI18n._;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Window;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import org.signalml.app.model.components.PropertySheetModel;
import org.signalml.app.util.IconUtils;
import org.signalml.app.view.workspace.ViewerPropertySheet;
import org.signalml.plugin.export.SignalMLException;
import org.signalml.plugin.export.view.AbstractPluginDialog;
import org.signalml.plugin.newstager.NewStagerPlugin;
import org.signalml.plugin.newstager.data.NewStagerSleepComparison;
/**
* NewSleepComparisonDialog
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe
* Sp. z o.o.
*/
public class NewSleepComparisonDialog extends AbstractPluginDialog {
private static final long serialVersionUID = 1L;
private JTabbedPane tabbedPane;
private NewStagerSleepComparisonTableModel sleepComparisonTableModel;
private NewStagerSleepComparisonTable sleepComparisonTable;
private JScrollPane sleepComparisonScrollPane;
private JPanel sleepComparisonPanel;
private NewStagerSleepComparisonStatisticTableModel sleepComparisonStatisticTableModel;
private NewStagerSleepComparisonStatisticTable sleepComparisonStatisticTable;
private JScrollPane sleepComparisonStatisticScrollPane;
private JPanel sleepComparisonStatisticPanel;
private PropertySheetModel propertySheetModel;
private ViewerPropertySheet propertySheet;
private JScrollPane propertyScrollPane;
private JPanel propertySheetPanel;
private JPanel statisticsPanel;
public NewSleepComparisonDialog() {
super();
}
public NewSleepComparisonDialog(Window w, boolean isModal) {
super(w, isModal);
}
@Override
protected void initialize() {
setTitle(_("Sleep staging comparison"));
setIconImage(IconUtils.loadClassPathImage(NewStagerPlugin.iconPath));
setResizable(false);
super.initialize();
}
@Override
public boolean isCancellable() {
return false;
}
@Override
public JComponent createInterface() {
JPanel interfacePanel = new JPanel(new BorderLayout());
interfacePanel.setBorder(new CompoundBorder(new TitledBorder(
_("Comparison data")), new EmptyBorder(3, 3, 3, 3)));
interfacePanel.add(getTabbedPane(), BorderLayout.CENTER);
return interfacePanel;
}
public NewStagerSleepComparisonTableModel getSleepComparisonTableModel() {
if (sleepComparisonTableModel == null) {
sleepComparisonTableModel = new NewStagerSleepComparisonTableModel();
}
return sleepComparisonTableModel;
}
public NewStagerSleepComparisonTable getSleepComparisonTable() {
if (sleepComparisonTable == null) {
sleepComparisonTable = new NewStagerSleepComparisonTable(
getSleepComparisonTableModel());
}
return sleepComparisonTable;
}
public JScrollPane getSleepComparisonScrollPane() {
if (sleepComparisonScrollPane == null) {
sleepComparisonScrollPane = new JScrollPane(
getSleepComparisonTable());
sleepComparisonScrollPane.setPreferredSize(new Dimension(600, 550));
}
return sleepComparisonScrollPane;
}
public JPanel getSleepComparisonPanel() {
if (sleepComparisonPanel == null) {
sleepComparisonPanel = new JPanel(new BorderLayout());
sleepComparisonPanel.setBorder(new CompoundBorder(new TitledBorder(
_("Stager (row) vs. expert (column) comparison")),
new EmptyBorder(3, 3, 3, 3)));
sleepComparisonPanel.add(getSleepComparisonScrollPane(),
BorderLayout.CENTER);
}
return sleepComparisonPanel;
}
public NewStagerSleepComparisonStatisticTableModel getSleepComparisonStatisticTableModel() {
if (sleepComparisonStatisticTableModel == null) {
sleepComparisonStatisticTableModel = new NewStagerSleepComparisonStatisticTableModel();
}
return sleepComparisonStatisticTableModel;
}
public NewStagerSleepComparisonStatisticTable getSleepComparisonStatisticTable() {
if (sleepComparisonStatisticTable == null) {
sleepComparisonStatisticTable = new NewStagerSleepComparisonStatisticTable(
getSleepComparisonStatisticTableModel());
}
return sleepComparisonStatisticTable;
}
public JScrollPane getSleepComparisonStatisticScrollPane() {
if (sleepComparisonStatisticScrollPane == null) {
sleepComparisonStatisticScrollPane = new JScrollPane(
getSleepComparisonStatisticTable());
sleepComparisonStatisticScrollPane.setPreferredSize(new Dimension(
400, 300));
}
return sleepComparisonStatisticScrollPane;
}
public JPanel getSleepComparisonStatisticPanel() {
if (sleepComparisonStatisticPanel == null) {
sleepComparisonStatisticPanel = new JPanel(new BorderLayout());
sleepComparisonStatisticPanel
.setBorder(new CompoundBorder(
new TitledBorder(_("Stages")), new EmptyBorder(3,
3, 3, 3)));
sleepComparisonStatisticPanel.add(
getSleepComparisonStatisticScrollPane(),
BorderLayout.CENTER);
}
return sleepComparisonStatisticPanel;
}
public PropertySheetModel getPropertySheetModel() {
if (propertySheetModel == null) {
propertySheetModel = new PropertySheetModel();
}
return propertySheetModel;
}
public ViewerPropertySheet getPropertySheet() {
if (propertySheet == null) {
propertySheet = new ViewerPropertySheet(getPropertySheetModel());
}
return propertySheet;
}
public JScrollPane getPropertyScrollPane() {
if (propertyScrollPane == null) {
propertyScrollPane = new JScrollPane(getPropertySheet());
propertyScrollPane.setPreferredSize(new Dimension(400, 100));
}
return propertyScrollPane;
}
public JPanel getPropertySheetPanel() {
if (propertySheetPanel == null) {
propertySheetPanel = new JPanel(new BorderLayout());
propertySheetPanel.setBorder(new CompoundBorder(new TitledBorder(
_("Other")), new EmptyBorder(3, 3, 3, 3)));
propertySheetPanel
.add(getPropertyScrollPane(), BorderLayout.CENTER);
}
return propertySheetPanel;
}
public JPanel getStatisticsPanel() {
if (statisticsPanel == null) {
statisticsPanel = new JPanel(new BorderLayout());
statisticsPanel.add(getSleepComparisonStatisticPanel(),
BorderLayout.CENTER);
statisticsPanel.add(getPropertySheetPanel(), BorderLayout.SOUTH);
}
return statisticsPanel;
}
public JTabbedPane getTabbedPane() {
if (tabbedPane == null) {
tabbedPane = new JTabbedPane(JTabbedPane.TOP,
JTabbedPane.WRAP_TAB_LAYOUT);
tabbedPane.addTab(_("Comparison"), getSleepComparisonPanel());
tabbedPane.addTab(_("Statistics"), getStatisticsPanel());
}
return tabbedPane;
}
@Override
public void fillDialogFromModel(Object model) throws SignalMLException {
NewStagerSleepComparison sleepComparison = (NewStagerSleepComparison) model;
getSleepComparisonTableModel().setResult(sleepComparison);
getSleepComparisonStatisticTableModel().setComparison(sleepComparison);
getPropertySheetModel().setSubject(sleepComparison);
}
@Override
public void fillModelFromDialog(Object model) throws SignalMLException {
// nothing to do
}
@Override
public boolean supportsModelClass(Class<?> clazz) {
return NewStagerSleepComparison.class.isAssignableFrom(clazz);
}
}