Bug 299685 Empty iconURI's cause 'MalformedURLException' failures rather than being ignored
One of the issues Lars' found is that if you fill in a field (i.e. iconURI) and subsequently clear it you don't end up in the same model state. Once the value has been set in the editor it will never be 'null' again, clearing the field just sets it to an empty string.
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/WBWRenderer.java
private void applyDialogStyles(Control control) {
		IStylingEngine engine = (IStylingEngine) context
				.get(IStylingEngine.SERVICE_NAME);
		if (engine != null) {
			Shell shell = control.getShell();
			if (shell.getBackgroundMode() == SWT.INHERIT_NONE) {
				shell.setBackgroundMode(SWT.INHERIT_DEFAULT);
			}
			engine.style(shell);
		}
	}
	class SaveablePartPromptDialog extends Dialog {
		private Collection<?> collection;
		private CheckboxTableViewer tableViewer;
		private Object[] checkedElements = new Object[0];
		SaveablePartPromptDialog(Shell shell, Collection<?> collection) {
			super(shell);
			this.collection = collection;
		}
		@Override
		protected Control createDialogArea(Composite parent) {
			parent = (Composite) super.createDialogArea(parent);
			Label label = new Label(parent, SWT.LEAD);
			label
					.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
							false));
			label.setText("Select the parts to save:"); 
			tableViewer = CheckboxTableViewer.newCheckList(parent, SWT.SINGLE
					| SWT.BORDER);
			GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);