code: private void applySettings() {
  		buttonContainer.reset();
  		WButton exampleButton = new WButton(tfButtonLabel.getText());
  
  		exampleButton.setRenderAsLink(cbRenderAsLink.isSelected());
  
  		exampleButton.setText(tfButtonLabel.getText());
  
  		if (cbSetImage.isSelected()) {
  			exampleButton.setImage("/image/pencil.png");
  			exampleButton.setImagePosition((ImagePosition) ddImagePosition.getSelected());
  		}
  
  		exampleButton.setDisabled(cbDisabled.isSelected());
  
  		if (tfAccesskey.getText() != null && tfAccesskey.getText().length() > 0) {
  			exampleButton.setAccessKey(tfAccesskey.getText().toCharArray()[0]);
  		}
  
  		buttonContainer.add(exampleButton);
  	}
docs: this is were the majority of the work is done for building the button. Note that it is in a container that is
  reset, effectively creating a new button. this is only done to enable to dynamically change the button to a link
  and back.