/* AbstractFilterDialog.java created 2008-03-04 * */ package org.signalml.app.view.book.filter; import static org.signalml.app.util.i18n.SvarogI18n._; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Window; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; import org.signalml.app.model.components.validation.ValidationErrors; import org.signalml.app.view.common.dialogs.AbstractDialog; import org.signalml.domain.book.filter.AbstractAtomFilter; import org.signalml.plugin.export.SignalMLException; import org.signalml.util.Util; import org.springframework.validation.Errors; /** AbstractFilterDialog * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public abstract class AbstractFilterDialog extends AbstractDialog { private static final long serialVersionUID = 1L; private JTextField nameTextField; private JPanel namePanel; public AbstractFilterDialog() { super(); } public AbstractFilterDialog(Window w, boolean isModal) { super(w, isModal); } public JTextField getNameTextField() { if (nameTextField == null) { nameTextField = new JTextField(); nameTextField.setPreferredSize(new Dimension(200,25)); } return nameTextField; } public JPanel getNamePanel() { if (namePanel == null) { namePanel = new JPanel(new BorderLayout()); namePanel.setBorder(new CompoundBorder( new TitledBorder(_("Filter name")), new EmptyBorder(3,3,3,3) )); namePanel.add(getNameTextField()); } return namePanel; } public void fillDialogFromFilter(AbstractAtomFilter filter) throws SignalMLException { getNameTextField().setText(filter.getName()); } public void fillFilterFromDialog(AbstractAtomFilter filter) throws SignalMLException { filter.setName(getNameTextField().getText()); } @Override public void validateDialog(Object model, ValidationErrors errors) throws SignalMLException { super.validateDialog(model, errors); String name = getNameTextField().getText(); if (name == null || name.isEmpty()) { errors.addError(_("Empty filter name")); } else if (Util.hasSpecialChars(name)) { errors.addError(_("Filter name must not contain control characters")); } } }