final Combo dslCombo = new Combo( composite,
SWT.READ_ONLY );
dslCombo.add( "Choose..." );
for ( int i = 0; i < getCompletion().getDSLConditions().length; i++ ) {
DSLSentence sen = getCompletion().getDSLConditions()[i];
dslCombo.add( sen.toString() );
}
dslCombo.select( 0 );
dslCombo.addListener( SWT.Selection,
new Listener() {
public void handleEvent(Event event) {
if ( dslCombo.getSelectionIndex() == 0 ) {
return;
}
DSLSentence sentence = getCompletion().getDSLConditions()[dslCombo.getSelectionIndex() - 1];
// TODO Handle this kind of situations with care - add* can
// throw runtime exceptions
modeller.getModel().addLhsItem( sentence.copy() );
modeller.reloadLhs();
modeller.setDirty( true );
close();
}