/**
*
*/
package org.nightlabs.jfire.reporting.ui.layout.action.schedule;
import java.util.Locale;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.nightlabs.base.ui.composite.XComposite;
import org.nightlabs.base.ui.composite.XComposite.LayoutDataMode;
import org.nightlabs.base.ui.composite.XComposite.LayoutMode;
import org.nightlabs.base.ui.language.I18nTextEditor;
import org.nightlabs.base.ui.language.LanguageChooserCombo;
import org.nightlabs.base.ui.language.I18nTextEditor.EditMode;
import org.nightlabs.base.ui.language.LanguageChooserCombo.Mode;
import org.nightlabs.base.ui.wizard.WizardHopPage;
import org.nightlabs.jfire.base.ui.timer.TaskDetailEditComposite;
import org.nightlabs.jfire.reporting.Birt.OutputFormat;
import org.nightlabs.jfire.reporting.layout.render.RenderReportRequest;
import org.nightlabs.jfire.reporting.ui.config.BirtOutputCombo;
/**
* @author Alexander Bieber <!-- alex [AT] nightlabs [DOT] de -->
*
*/
public class CreateScheduledReportWizardPage extends WizardHopPage {
private CreateScheduledReportWizard createReportWizard;
private I18nTextEditor nameEditor;
private TaskDetailEditComposite taskDetailComposite;
private LanguageChooserCombo languageChooser;
private BirtOutputCombo outputCombo;
/**
* @param pageName
*/
public CreateScheduledReportWizardPage(CreateScheduledReportWizard createReportWizard) {
super(CreateScheduledReportWizardPage.class.getName(), "Schedule the execution of a report");
setMessage("Define the name and time pattern for the scheduled report");
this.createReportWizard = createReportWizard;
}
/* (non-Javadoc)
* @see org.nightlabs.base.ui.wizard.DynamicPathWizardPage#createPageContents(org.eclipse.swt.widgets.Composite)
*/
@Override
public Control createPageContents(Composite parent) {
createReportWizard.getScheduledReport().getName().setText(
Locale.getDefault(),
createReportWizard.getReportLayout().getName().getText() + " (scheduled)");
XComposite wrapper = new XComposite(parent, SWT.NONE);
nameEditor = new I18nTextEditor(wrapper, "Scheduled report name");
nameEditor.setI18nText(createReportWizard.getScheduledReport().getName(), EditMode.DIRECT);
Label separator = new Label(wrapper, SWT.SEPARATOR | SWT.HORIZONTAL);
separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
taskDetailComposite = new TaskDetailEditComposite(wrapper, SWT.NONE, "Enable render of scheduled report", null);
taskDetailComposite.setTask(createReportWizard.getScheduledReport().getTask());
XComposite secondPartWrapper = new XComposite(wrapper, SWT.NONE, LayoutMode.TIGHT_WRAPPER, LayoutDataMode.GRID_DATA_HORIZONTAL);
secondPartWrapper.getGridLayout().numColumns = 2;
Label languageLabel = new Label(secondPartWrapper, SWT.WRAP);
languageLabel.setText("Language");
Label outputFormatLabel = new Label(secondPartWrapper, SWT.WRAP);
outputFormatLabel.setText("Output format");
languageChooser = new LanguageChooserCombo(secondPartWrapper, Mode.iconAndText);
outputCombo = new BirtOutputCombo(secondPartWrapper, SWT.NONE);
GridData outputGD = new GridData();
outputGD.widthHint = 100;
outputCombo.setLayoutData(outputGD);
outputCombo.setSelection(OutputFormat.pdf);
return wrapper;
}
public void commitProperties() {
taskDetailComposite.commitPropeties();
RenderReportRequest renderReportRequest = createReportWizard.getScheduledReport().getRenderReportRequest();
if (renderReportRequest == null) {
renderReportRequest = new RenderReportRequest();
}
renderReportRequest.setOutputFormat(outputCombo.getSelectedElement());
renderReportRequest.setLocale(new Locale(languageChooser.getLanguage().getLanguageID()));
createReportWizard.getScheduledReport().setRenderReportRequest(renderReportRequest);
}
}