/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.broadcast.gui.wizard;
import net.codjo.gui.toolkit.util.ErrorDialog;
import net.codjo.gui.toolkit.wizard.StepPanel;
import net.codjo.mad.client.request.RequestException;
import net.codjo.mad.client.request.Result;
import net.codjo.mad.gui.request.DataSource;
import net.codjo.mad.gui.request.RequestComboBox;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Map;
/**
*/
public class SelectTypeStep extends StepPanel {
public static final String SELECTION_FILE_NAME = "broadcast.id";
private RequestComboBox broadcastTypeCombo = new RequestComboBox();
private GridBagLayout gridBagLayout1 = new GridBagLayout();
private BroadcastSelector selector;
public SelectTypeStep(BroadcastSelector selector) {
this.selector = selector;
setName("BroadcastSelectionStep.title");
jbInit();
}
@Override
public void start(Map previousStepState) {
initCombo();
}
private void initCombo() {
broadcastTypeCombo.setModelFieldName("fileName");
try {
Result result = selector.selectBroadcastItems(new String[]{"fileId", "fileName"});
broadcastTypeCombo.getDataSource().setLoadResult(result);
}
catch (RequestException ex) {
ErrorDialog.show(this, "Impossible de charger la liste des fichier de diffusion.", ex);
}
broadcastTypeCombo.getDataSource().addPropertyChangeListener(
DataSource.SELECTED_ROW_PROPERTY,
new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (broadcastTypeCombo.getSelectedIndex() != -1) {
setFulfilled(true);
setValue(SELECTION_FILE_NAME,
broadcastTypeCombo.getSelectedValue("fileName"));
}
else {
setFulfilled(false);
setValue(SELECTION_FILE_NAME, null);
}
}
});
}
private void jbInit() {
this.setLayout(gridBagLayout1);
this.add(broadcastTypeCombo,
new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0,
GridBagConstraints.CENTER,
GridBagConstraints.HORIZONTAL,
new Insets(10, 10, 10, 10), 0, 0));
broadcastTypeCombo.setName("wizard.typeComboBox");
}
}