package pl.edu.fuw.fid.signalanalysis.dtf; import java.awt.BorderLayout; import java.awt.Component; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JSpinner; import javax.swing.SpinnerNumberModel; import org.signalml.app.view.signal.signalselection.ChannelSpacePanel; import org.signalml.domain.signal.space.SignalSpaceConstraints; /** * Panel for DTF method settings: selected channels * and maximum order for the AR model. * * @author ptr@mimuw.edu.pl */ public final class DtfSettingsPanel extends JPanel { private final ChannelSpacePanel channelPanel; private final JSpinner orderSpinner; public DtfSettingsPanel(SignalSpaceConstraints signalSpaceConstraints) { super(new BorderLayout()); this.channelPanel = new ChannelSpacePanel(); this.channelPanel.setConstraints(signalSpaceConstraints); this.orderSpinner = new JSpinner(new SpinnerNumberModel(10, 1, 100, 1)); JPanel bottomPanel = new JPanel(new BorderLayout()); bottomPanel.add(new JLabel("Max order of AR model:"), BorderLayout.WEST); bottomPanel.add(orderSpinner, BorderLayout.CENTER); add(channelPanel, BorderLayout.CENTER); add(bottomPanel, BorderLayout.SOUTH); } public int[] getSelectedChannels() { return channelPanel.getChannelList().getSelectedIndices(); } public int getMaxModelOrder() { return (Integer) orderSpinner.getValue(); } public int showAsConfirmDialog(Component parentComponent) { return JOptionPane.showConfirmDialog(parentComponent, this, "Directed Transfer Function", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); } }