package ch.elexis.core.findings.ui.dialogs;
import java.util.Optional;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import ch.elexis.core.findings.ICoding;
import ch.elexis.core.findings.ui.composites.CodingComposite;
public class CodingEditDialog extends TitleAreaDialog {
private CodingComposite codingComposite;
private Optional<ICoding> coding = Optional.empty();
public CodingEditDialog(Shell parentShell){
super(parentShell);
}
public CodingEditDialog(ICoding coding, Shell parentShell){
super(parentShell);
this.coding = Optional.of(coding);
}
@Override
public void create(){
super.create();
setTitle("Kodierung " + (coding.isPresent() ? "editieren" : "anlegen") + ".");
}
@Override
protected Control createDialogArea(Composite parent){
Composite ret = new Composite(parent, SWT.NONE);
ret.setLayoutData(new GridData(GridData.FILL_BOTH));
ret.setLayout(new FillLayout());
codingComposite = new CodingComposite(ret, SWT.NONE);
coding.ifPresent(c -> codingComposite.setCoding(c));
return ret;
}
@Override
protected void okPressed(){
coding = codingComposite.getCoding();
super.okPressed();
}
public Optional<ICoding> getCoding(){
return coding;
}
}