package org.signalml.app.view.tag.synchronize;
import static org.signalml.app.util.i18n.SvarogI18n._;
import java.awt.Dimension;
import javax.swing.BoxLayout;
import javax.swing.JComponent;
import javax.swing.JPanel;
import org.signalml.app.model.tag.SynchronizeTagsWithTriggerParameters;
import org.signalml.app.view.common.dialogs.AbstractDialog;
import org.signalml.plugin.export.SignalMLException;
/**
* A dialog for selecting parameters for synchronizing tags
* with trigger.
*
* @author Piotr Szachewicz
*/
public class SynchronizeTagsWithTriggerDialog extends AbstractDialog {
private SynchronizeTagsWithTriggerParametersPanel synchronizePanel;
private LengthThresholdPanel lengthThresholdPanel;
public SynchronizeTagsWithTriggerDialog() {
super();
setTitle(_("Synchronize tags with trigger"));
setMinimumSize(new Dimension(300, 120));
}
@Override
protected JComponent createInterface() {
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(getSynchronizePanel());
panel.add(getLengthThresholdPanel());
return panel;
}
public SynchronizeTagsWithTriggerParametersPanel getSynchronizePanel() {
if (synchronizePanel == null) {
synchronizePanel = new SynchronizeTagsWithTriggerParametersPanel();
}
return synchronizePanel;
}
public LengthThresholdPanel getLengthThresholdPanel() {
if (lengthThresholdPanel == null)
lengthThresholdPanel = new LengthThresholdPanel();
return lengthThresholdPanel;
}
@Override
public boolean supportsModelClass(Class<?> clazz) {
return SynchronizeTagsWithTriggerParameters.class.isAssignableFrom(clazz);
}
@Override
protected void fillDialogFromModel(Object model) throws SignalMLException {
getSynchronizePanel().fillPanelFromModel((SynchronizeTagsWithTriggerParameters) model);
getLengthThresholdPanel().fillPanelFromModel((SynchronizeTagsWithTriggerParameters) model);
}
@Override
public void fillModelFromDialog(Object model) throws SignalMLException {
getSynchronizePanel().fillModelFromDialog((SynchronizeTagsWithTriggerParameters) model);
getLengthThresholdPanel().fillModelFromPanel((SynchronizeTagsWithTriggerParameters) model);
}
}