package edu.ualberta.med.biobank.dialogs;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
import edu.ualberta.med.biobank.common.peer.ShippingMethodPeer;
import edu.ualberta.med.biobank.common.wrappers.ShippingMethodWrapper;
import edu.ualberta.med.biobank.gui.common.dialogs.BgcBaseDialog;
import edu.ualberta.med.biobank.gui.common.validators.NonEmptyStringValidator;
import edu.ualberta.med.biobank.gui.common.widgets.BgcBaseText;
public class ShippingMethodDialog extends BgcBaseDialog {
private String message;
private ShippingMethodWrapper origShippingMethod;
private ShippingMethodWrapper tmpShippingMethod;
private String currentTitle;
public ShippingMethodDialog(Shell parent,
ShippingMethodWrapper shippingMethod, String message) {
super(parent);
this.origShippingMethod = shippingMethod;
this.tmpShippingMethod = new ShippingMethodWrapper(null);
copyTo(origShippingMethod, tmpShippingMethod);
this.message = message;
currentTitle = (shippingMethod.getName() == null ? "Add Shipping Method"
: "Edit Shipping Method");
}
private void copyTo(ShippingMethodWrapper src, ShippingMethodWrapper dest) {
dest.setName(src.getName());
}
@Override
protected String getDialogShellTitle() {
return currentTitle;
}
@Override
protected String getTitleAreaMessage() {
return message;
}
@Override
protected String getTitleAreaTitle() {
return currentTitle;
}
@Override
protected void createDialogAreaInternal(Composite parent) {
Composite content = new Composite(parent, SWT.NONE);
content.setLayout(new GridLayout(2, false));
content.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
createBoundWidgetWithLabel(content, BgcBaseText.class, SWT.BORDER,
"Name", null, tmpShippingMethod,
ShippingMethodPeer.NAME.getName(), new NonEmptyStringValidator(
"Shipping method must have a name."));
}
@Override
protected void okPressed() {
copyTo(tmpShippingMethod, origShippingMethod);
super.okPressed();
}
}