package LinGUIne.wizards;
import java.util.Collection;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.List;
/**
* Page for the user to select a Command to run from a list of provided options.
*
* @author Kyle Mullins
*/
public class SelectCommandWizardPage extends WizardPage {
private List lstOptions;
private Collection<String> commandOptions;
private String selectedOption;
public SelectCommandWizardPage(String title, String message,
Collection<String> options){
super(title);
setTitle(title);
setMessage(message);
commandOptions = options;
}
@Override
public void createControl(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new GridLayout(1, false));
lstOptions = new List(container, SWT.BORDER | SWT.V_SCROLL |
SWT.H_SCROLL);
lstOptions.setLayoutData(new GridData(GridData.FILL_BOTH));
lstOptions.addSelectionListener(new SelectionListener(){
@Override
public void widgetSelected(SelectionEvent e) {
if(lstOptions.getSelectionCount() != 0){
selectedOption = lstOptions.getSelection()[0];
setPageComplete(true);
}
else{
setPageComplete(false);
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {}
});
for(String option: commandOptions){
lstOptions.add(option);
}
setPageComplete(false);
setControl(lstOptions);
}
/**
* Returns the Command option that was selected.
*
* @return
*/
public String getSelectedOption(){
return selectedOption;
}
}