/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.broadcast.gui.wizard; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Date; import net.codjo.gui.toolkit.util.ErrorDialog; import net.codjo.gui.toolkit.wizard.Step; import net.codjo.i18n.gui.InternationalizableContainer; import net.codjo.i18n.gui.TranslationNotifier; import net.codjo.mad.client.request.RequestException; import net.codjo.mad.client.request.Result; import net.codjo.mad.gui.framework.GuiContext; import net.codjo.mad.gui.i18n.InternationalizationUtil; import net.codjo.mad.gui.request.DataSource; import net.codjo.mad.gui.request.RequestComboBox; import net.codjo.workflow.gui.wizard.AbstractSelectionStep; import net.codjo.workflow.gui.wizard.WizardConstants; import static net.codjo.mad.gui.i18n.InternationalizationUtil.translate; /** * */ public class BroadcastSelectionStep extends AbstractSelectionStep { private RequestComboBox broadcastTypeCombo; private BroadcastSelector selector; private GuiContext guiContext; public BroadcastSelectionStep(GuiContext guiContext, BroadcastSelector selector) { this(guiContext, null, selector); } public BroadcastSelectionStep(GuiContext guiContext, Step subStep, BroadcastSelector selector) { super(subStep, "BroadcastSelectionStep.title"); this.guiContext = guiContext; this.selector = selector; setValue(WizardConstants.BROADCAST_DATE, new Date()); } @Override public void initGui() { broadcastTypeCombo.setModelFieldName("fileName"); try { Result result = selector.selectBroadcastItems(new String[]{"fileId", "fileName"}); broadcastTypeCombo.getDataSource().setLoadResult(result); } catch (RequestException ex) { ErrorDialog.show(this, translate("BroadcastSelectionStep.initGui.loadErrorMessage", guiContext), ex); } broadcastTypeCombo.getDataSource().addPropertyChangeListener( DataSource.SELECTED_ROW_PROPERTY, new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (broadcastTypeCombo.getSelectedIndex() != -1) { setFulfilled(true); setValue(WizardConstants.BROADCAST_FILE_NAME, broadcastTypeCombo.getSelectedValue("fileName")); } else { setFulfilled(false); setValue(WizardConstants.BROADCAST_FILE_NAME, null); } } }); } @Override public void buildLayout() { broadcastTypeCombo = new RequestComboBox(); setLayout(new GridBagLayout()); 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"); } }