package net.codjo.broadcast.gui.wizard; import net.codjo.i18n.gui.InternationalizableContainer; import net.codjo.i18n.gui.TranslationNotifier; import net.codjo.mad.gui.framework.MutableGuiContext; import net.codjo.mad.gui.i18n.InternationalizationUtil; import net.codjo.workflow.gui.wizard.FinalStep; import net.codjo.workflow.gui.wizard.WizardConstants; import static net.codjo.workflow.gui.wizard.WizardConstants.BROADCAST_DATE; import static net.codjo.workflow.gui.wizard.WizardConstants.BROADCAST_FILE_NAME; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class BroadcastWizardSummaryGui implements FinalStep.WizardSummaryGui, InternationalizableContainer { private JPanel guiPanel; private JTextField file; private JTextField date; private JTextField startTime; private JTextField extraArguments; private JLabel extraArgumentsLabel; private JLabel fileLabel; private JLabel dateLabel; private JLabel hourLabel; public BroadcastWizardSummaryGui(MutableGuiContext guiContext) { TranslationNotifier translationNotifier = InternationalizationUtil.retrieveTranslationNotifier(guiContext); translationNotifier.addInternationalizableContainer(this); setFieldNames(); } private void setFieldNames() { file.setName(("file")); date.setName(("date")); startTime.setName(("startTime")); extraArguments.setName(("extraArguments")); } public JComponent getGui() { return guiPanel; } public void addInternationalizableComponents(TranslationNotifier translationNotifier) { translationNotifier.addInternationalizableComponent(fileLabel, "BroadcastWizardSummaryGui.fileLabel"); translationNotifier.addInternationalizableComponent(dateLabel, "BroadcastWizardSummaryGui.dateLabel"); translationNotifier.addInternationalizableComponent(hourLabel, "BroadcastWizardSummaryGui.hourLabel"); translationNotifier.addInternationalizableComponent(extraArgumentsLabel, "BroadcastWizardSummaryGui.extraArgumentsLabel"); } public void display(Map requestState) { final String broadcastFileName = (String)requestState.get(WizardConstants.BROADCAST_FILE_NAME); final Date broadcastDate = (Date)requestState.get(WizardConstants.BROADCAST_DATE); String formattedBroadcastDate = ""; if (broadcastDate != null) { formattedBroadcastDate = new SimpleDateFormat("dd/MM/yyyy").format(broadcastDate); } file.setText(broadcastFileName); date.setText(formattedBroadcastDate); startTime.setText(new SimpleDateFormat("HH:mm").format(new Date())); addExtraArguments(requestState); } private void addExtraArguments(Map state) { setExtraArgumentsVisible(false); final StringBuilder extraArgumentsBuilder = new StringBuilder(); for (Object key : state.keySet()) { Object value = state.get(key); if (!key.equals(BROADCAST_FILE_NAME) && !key.equals(BROADCAST_DATE) && isNotNull(value)) { setExtraArgumentsVisible(true); extraArgumentsBuilder.append(key).append("="); extraArgumentsBuilder.append(value.toString()).append(", "); } } if (extraArgumentsBuilder.length() > 0) { extraArguments.setText(extraArgumentsBuilder.substring(0, extraArgumentsBuilder.length() - 2)); } else { extraArguments.setText(""); } } private static boolean isNotNull(Object value) { return value != null && "null" != value; } private void setExtraArgumentsVisible(boolean visible) { extraArgumentsLabel.setVisible(visible); extraArguments.setVisible(visible); } }