/* MP5ExecutorPanel.java created 2008-02-08
*
*/
package org.signalml.app.method.mp5;
import static org.signalml.app.util.i18n.SvarogI18n._;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JPanel;
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.components.ResolvableComboBox;
import org.signalml.method.mp5.MP5Data;
import org.signalml.method.mp5.MP5Executor;
import org.springframework.validation.Errors;
/** MP5ExecutorPanel
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public class MP5ExecutorPanel extends JPanel {
private static final long serialVersionUID = 1L;
private MP5ExecutorManager executorManager;
private ResolvableComboBox executorComboBox;
public MP5ExecutorPanel(MP5ExecutorManager executorManager) {
super();
this.executorManager = executorManager;
initialize();
}
private void initialize() {
setLayout(new BorderLayout());
CompoundBorder border = new CompoundBorder(
new TitledBorder(_("MP5 executor")),
new EmptyBorder(3,3,3,3)
);
setBorder(border);
add(getExecutorComboBox(), BorderLayout.CENTER);
}
public ResolvableComboBox getExecutorComboBox() {
if (executorComboBox == null) {
executorComboBox = new ResolvableComboBox();
executorComboBox.setModel(new MP5ExecutorComboBoxModel(executorManager));
executorComboBox.setPreferredSize(new Dimension(300,25));
}
return executorComboBox;
}
public void fillPanelFromModel(MP5Data data) {
String executorUID = data.getExecutorUID();
MP5Executor executor = null;
if (executorUID != null) {
executor = executorManager.findExecutor(executorUID);
}
if (executor == null) {
executor = executorManager.getDefaultExecutor();
}
getExecutorComboBox().setSelectedItem(executor);
}
public void fillModelFromPanel(MP5Data data) {
MP5Executor executor = ((MP5Executor) getExecutorComboBox().getSelectedItem());
if (executor == null) {
data.setExecutorUID(null);
} else {
data.setExecutorUID(executor.getUID());
}
}
public void validatePanel(ValidationErrors errors) {
if (getExecutorComboBox().getSelectedItem() == null) {
errors.addError(_("No executor"));
}
}
}