/* MP5RawConfigPanel.java created 2008-01-31 * */ package org.signalml.app.method.mp5; import static org.signalml.app.util.i18n.SvarogI18n._; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.JPanel; import javax.swing.border.TitledBorder; import javax.swing.event.DocumentEvent; import org.signalml.app.model.components.validation.ValidationErrors; import org.signalml.app.util.SwingUtils; import org.signalml.app.view.common.components.AnyChangeDocumentAdapter; import org.signalml.app.view.common.components.CompactButton; import org.signalml.app.view.common.components.panels.TextPanePanel; import org.signalml.app.view.common.dialogs.AbstractDialog; import org.signalml.method.mp5.MP5Parameters; import org.springframework.validation.Errors; /** MP5RawConfigPanel * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class MP5RawConfigPanel extends JPanel { private static final long serialVersionUID = 1L; private MP5ExecutorManager executorManager; private AbstractDialog owner; private TextPanePanel rawConfigTextPane; private MP5ExecutorPanel executorPanel; private boolean configChanged; public MP5RawConfigPanel(MP5ExecutorManager executorManager, AbstractDialog owner) { super(); this.executorManager = executorManager; this.owner = owner; initialize(); } private void initialize() { setLayout(new BorderLayout()); JPanel rawConfigPanel = new JPanel(new BorderLayout(3,3)); rawConfigPanel.setBorder(new TitledBorder(_("Raw config (signal input/output/range directives will be added/replaced)"))); // CompactButton rawConfigHelpButton = SwingUtils.createFieldHelpButton(owner, MP5MethodDialog.HELP_RAW_CONFIG); // JPanel rawConfigHelpPanel = new JPanel(new FlowLayout(FlowLayout.TRAILING)); // rawConfigHelpPanel.add(rawConfigHelpButton); rawConfigPanel.add(getRawConfigTextPane(), BorderLayout.CENTER); // rawConfigPanel.add(rawConfigHelpPanel, BorderLayout.SOUTH); add(rawConfigPanel, BorderLayout.CENTER); add(getExecutorPanel(), BorderLayout.SOUTH); } public TextPanePanel getRawConfigTextPane() { if (rawConfigTextPane == null) { rawConfigTextPane = new TextPanePanel(null); rawConfigTextPane.setPreferredSize(new Dimension(200,150)); rawConfigTextPane.getTextPane().getDocument().addDocumentListener(new AnyChangeDocumentAdapter() { @Override public void anyUpdate(DocumentEvent e) { configChanged = true; } }); } return rawConfigTextPane; } public MP5ExecutorPanel getExecutorPanel() { if (executorPanel == null) { executorPanel = new MP5ExecutorPanel(executorManager); } return executorPanel; } public void fillPanelFromParameters(MP5Parameters parameters) { getRawConfigTextPane().getTextPane().setText(parameters.getRawConfigText()); } public void fillParametersFromPanel(MP5Parameters parameters) { parameters.setRawConfigText(getRawConfigTextPane().getTextPane().getText().trim()); } public void validatePanel(ValidationErrors errors) { // nothing to do } public boolean isConfigChanged() { return configChanged; } public void setConfigChanged(boolean configChanged) { this.configChanged = configChanged; } }