package edu.ualberta.med.biobank.dialogs.select;
import java.util.List;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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.wrappers.StudyWrapper;
import edu.ualberta.med.biobank.gui.common.dialogs.BgcBaseDialog;
import edu.ualberta.med.biobank.widgets.infotables.StudyInfoTable;
public class SelectStudyDialog extends BgcBaseDialog {
public static final int ADD_BTN_ID = 100;
private StudyInfoTable studyInfoTable;
private StudyWrapper selectedStudy;
private List<StudyWrapper> studies;
public SelectStudyDialog(Shell parent, List<StudyWrapper> studies) {
super(parent);
this.studies = studies;
}
@Override
protected String getDialogShellTitle() {
return "Associated Studies";
}
@Override
protected String getTitleAreaMessage() {
return "Select a study";
}
@Override
protected String getTitleAreaTitle() {
return "Add a study to this site";
}
@Override
protected void createDialogAreaInternal(Composite parent) throws Exception {
Composite contents = new Composite(parent, SWT.NONE);
contents.setLayout(new GridLayout(1, false));
contents.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
studyInfoTable = new StudyInfoTable(contents, null);
studyInfoTable.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (studyInfoTable.getSelection() != null)
SelectStudyDialog.this.getButton(IDialogConstants.OK_ID)
.setEnabled(true);
}
});
studyInfoTable.setList(studies);
studyInfoTable.setEnabled(true);
}
@Override
protected void okPressed() {
selectedStudy = studyInfoTable.getSelection();
super.okPressed();
}
public StudyWrapper getSelection() {
return selectedStudy;
}
@Override
protected void createButtonsForButtonBar(Composite parent) {
super.createButtonsForButtonBar(parent);
getButton(IDialogConstants.OK_ID).setEnabled(false);
}
}