package org.nightlabs.jfire.reporting.admin.parameter.ui.dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.nightlabs.base.ui.composite.XComposite;
import org.nightlabs.base.ui.language.I18nTextEditor;
import org.nightlabs.base.ui.language.I18nTextEditor.EditMode;
import org.nightlabs.eclipse.ui.dialog.ResizableTrayDialog;
import org.nightlabs.jfire.idgenerator.IDGenerator;
import org.nightlabs.jfire.reporting.admin.parameter.ui.resource.Messages;
import org.nightlabs.jfire.reporting.parameter.config.ReportParameterAcquisitionSetup;
import org.nightlabs.jfire.reporting.parameter.config.ReportParameterAcquisitionUseCase;
/**
* @author Daniel.Mazurek [at] NightLabs [dot] de
*
*/
public class UseCaseDialog
extends ResizableTrayDialog
{
public static final int EDIT_MODE = 1;
public static final int NEW_MODE = 2;
/**
* @param parentShell
*/
public UseCaseDialog(Shell parentShell, ReportParameterAcquisitionUseCase useCase,
ReportParameterAcquisitionSetup setup, int mode)
{
super(parentShell, Messages.RESOURCE_BUNDLE);
setShellStyle(getShellStyle() | SWT.Resize);
this.useCase = useCase;
this.mode = mode;
this.setup = setup;
}
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
if (mode == EDIT_MODE)
newShell.setText(Messages.getString("org.nightlabs.jfire.reporting.admin.parameter.ui.dialog.UseCaseDialog.editMode.shell.text")); //$NON-NLS-1$
if (mode == NEW_MODE)
newShell.setText(Messages.getString("org.nightlabs.jfire.reporting.admin.parameter.ui.dialog.UseCaseDialog.newMode.shell.text")); //$NON-NLS-1$
}
private int mode = EDIT_MODE;
private ReportParameterAcquisitionSetup setup;
private ReportParameterAcquisitionUseCase useCase;
private I18nTextEditor nameEditor;
private I18nTextEditor descriptionEditor;
@Override
protected Control createDialogArea(Composite parent)
{
Composite wrapper = new XComposite(parent, SWT.NONE);
nameEditor = new I18nTextEditor(wrapper, Messages.getString("org.nightlabs.jfire.reporting.admin.parameter.ui.dialog.UseCaseDialog.nameEditor.caption")); //$NON-NLS-1$
// nameEditor.setEditMode(EditMode.BUFFERED);
if (useCase != null)
nameEditor.setI18nText(useCase.getName(), EditMode.BUFFERED);
descriptionEditor = new I18nTextEditor(wrapper, Messages.getString("org.nightlabs.jfire.reporting.admin.parameter.ui.dialog.UseCaseDialog.descriptionEditor.caption")); //$NON-NLS-1$
// descriptionEditor.setEditMode(EditMode.BUFFERED);
if (useCase != null)
descriptionEditor.setI18nText(useCase.getDescription(), EditMode.BUFFERED);
nameEditor.setFocus();
return wrapper;
}
public ReportParameterAcquisitionUseCase getUseCase() {
return useCase;
}
@Override
protected void okPressed()
{
if (mode == NEW_MODE) {
String useCaseID = "" + IDGenerator.nextID(ReportParameterAcquisitionUseCase.class); //$NON-NLS-1$
useCase = new ReportParameterAcquisitionUseCase(setup, useCaseID);
}
// if (mode == EDIT_MODE) {
nameEditor.getI18nText().copyTo(useCase.getName());
descriptionEditor.getI18nText().copyTo(useCase.getDescription());
// }
super.okPressed();
}
}