private Button createButton( Composite parent, String text, final int buttonId ) { ( ( GridLayout )parent.getLayout() ).numColumns++; Button result = new Button( parent, SWT.PUSH ); GridData data = new GridData( GridData.HORIZONTAL_ALIGN_FILL ); int widthHint = convertHorizontalDLUsToPixels( shell, BUTTON_WIDTH ); Point minSize = result.computeSize( SWT.DEFAULT, SWT.DEFAULT, true ); data.widthHint = Math.max( widthHint, minSize.x ); result.setLayoutData( data ); result.setText( text ); result.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected( SelectionEvent event ) { ColorDialog.this.returnCode = buttonId; shell.close(); } } ); return result; }