Bug 32198 Status line delays 'Cancel' button too much
When application window is used as a runnable context, 'cancel' button does not appear right away. Instead, it is shown when the first progress is drawn. Since it make take a while to call 'internalWorked', this button may not appear for too long an interval. Update UI has the following problem: before connecting to the remote site, we spawn a thread to obtain the connection input stream. In case of a frozen connection, we want to allow users to return and let the stream thread die the natural death after a timeout. However, on our first connection attempt we don't move 'worked' method for enough ticks to make the 'cancel' button show, so users cannot cancel until we retry with another URL variant. Cancel button should be shown right away, or users should be able to tell if they want it right away (but IProgressMonitor does not have any provisions for this type of configuration).
bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLine.java
len = Math.min(cr, lf);
		return message.substring(0, len);
	}
	
	/**
	 * Updates the message label widget.
	 */
	protected void updateMessageLabel() {
		if (fMessageLabel != null && !fMessageLabel.isDisposed()) {
			Display display = fMessageLabel.getDisplay();
			if ((fErrorText != null && fErrorText.length() > 0) || fErrorImage != null) {
				fMessageLabel.setForeground(JFaceColors.getErrorText(display));
				fMessageLabel.setText(fErrorText);
				fMessageLabel.setImage(fErrorImage);
			}
			else {
				fMessageLabel.setForeground(display.getSystemColor(SWT.COLOR_WIDGET_FOREGROUND));
				fMessageLabel.setText(fMessageText == null ? "" : fMessageText); 
				fMessageLabel.setImage(fMessageImage);
			}
		}
	}
	/**
	 * @see IProgressMonitor#worked(int)
	 */
	public void worked(int work) {
		internalWorked(work);
	}
}