View | Details | Raw Unified | Return to bug 272794 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/jface/dialogs/TitleAreaDialog.java (-21 / +138 lines)
Lines 28-33 Link Here
28
import org.eclipse.swt.layout.FormLayout;
28
import org.eclipse.swt.layout.FormLayout;
29
import org.eclipse.swt.layout.GridData;
29
import org.eclipse.swt.layout.GridData;
30
import org.eclipse.swt.layout.GridLayout;
30
import org.eclipse.swt.layout.GridLayout;
31
import org.eclipse.swt.widgets.Button;
31
import org.eclipse.swt.widgets.Composite;
32
import org.eclipse.swt.widgets.Composite;
32
import org.eclipse.swt.widgets.Control;
33
import org.eclipse.swt.widgets.Control;
33
import org.eclipse.swt.widgets.Display;
34
import org.eclipse.swt.widgets.Display;
Lines 89-96 Link Here
89
	private RGB titleAreaRGB;
90
	private RGB titleAreaRGB;
90
91
91
	Color titleAreaColor;
92
	Color titleAreaColor;
93
	
94
	private String description = ""; //$NON-NLS-1$
92
95
93
	private String message = ""; //$NON-NLS-1$
96
	private String message;
97
	
98
	private int messageType = IMessageProvider.NONE;
94
99
95
	private String errorMessage;
100
	private String errorMessage;
96
101
Lines 103-110 Link Here
103
	private Image messageImage;
108
	private Image messageImage;
104
109
105
	private boolean showingError = false;
110
	private boolean showingError = false;
111
	
112
	private boolean showingMessage = false;
106
113
107
	private boolean titleImageLargest = true;
114
	private boolean titleImageLargest = true;
115
	
116
	private boolean dialogComplete = true;
108
117
109
	private int messageLabelHeight;
118
	private int messageLabelHeight;
110
119
Lines 118-123 Link Here
118
	 */
127
	 */
119
	public TitleAreaDialog(Shell parentShell) {
128
	public TitleAreaDialog(Shell parentShell) {
120
		super(parentShell);
129
		super(parentShell);
130
		System.out.println("here"); //$NON-NLS-1$
121
	}
131
	}
122
132
123
	/*
133
	/*
Lines 372-387 Link Here
372
				// we were previously showing an error
382
				// we were previously showing an error
373
				showingError = false;
383
				showingError = false;
374
			}
384
			}
375
			// show the message
385
			// show the description or message
376
			// avoid calling setMessage in case it is overridden to call
386
			// avoid calling setDescription or setMessage in case it is overridden to call
377
			// setErrorMessage,
387
			// setErrorMessage,
378
			// which would result in a recursive infinite loop
388
			// which would result in a recursive infinite loop
379
			if (message == null) // this should probably never happen since
389
			if (showingMessage) {
380
				// setMessage does this conversion....
390
				updateMessage(message);
381
				message = ""; //$NON-NLS-1$
391
				messageImageLabel.setImage(messageImage);
382
			updateMessage(message);
392
				setImageLabelVisible(messageImage != null);
383
			messageImageLabel.setImage(messageImage);
393
			}
384
			setImageLabelVisible(messageImage != null);
394
			else {
395
				updateMessage(description);
396
				messageImageLabel.setImage(null);
397
				setImageLabelVisible(false);
398
			}
385
		} else {
399
		} else {
386
			// Add in a space for layout purposes but do not
400
			// Add in a space for layout purposes but do not
387
			// change the instance variable
401
			// change the instance variable
Lines 492-497 Link Here
492
	 */
506
	 */
493
	public void setMessage(String newMessage, int newType) {
507
	public void setMessage(String newMessage, int newType) {
494
		Image newImage = null;
508
		Image newImage = null;
509
		messageType = newType;
495
		if (newMessage != null) {
510
		if (newMessage != null) {
496
			switch (newType) {
511
			switch (newType) {
497
			case IMessageProvider.NONE:
512
			case IMessageProvider.NONE:
Lines 518-540 Link Here
518
	 */
533
	 */
519
	private void showMessage(String newMessage, Image newImage) {
534
	private void showMessage(String newMessage, Image newImage) {
520
		// Any change?
535
		// Any change?
521
		if (message.equals(newMessage) && messageImage == newImage) {
536
		if ((message == null ? newMessage == null : message
537
				.equals(newMessage)) && messageImage == newImage) {
522
			return;
538
			return;
523
		}
539
		}
524
		message = newMessage;
540
		message = newMessage;
525
		if (message == null)
526
			message = "";//$NON-NLS-1$
527
		// Message string to be shown - if there is an image then add in
528
		// a space to the message for layout purposes
529
		String shownMessage = (newImage == null) ? message : " " + message; //$NON-NLS-1$  
530
		messageImage = newImage;
541
		messageImage = newImage;
531
		if (!showingError) {
542
		
532
			// we are not showing an error
543
		if (message == null) {
533
			updateMessage(shownMessage);
544
			if (showingMessage)
534
			messageImageLabel.setImage(messageImage);
545
				showingMessage = false;
535
			setImageLabelVisible(messageImage != null);
546
			if (!showingError) {
536
			layoutForNewMessage();
547
				updateMessage(description);
548
			}
537
		}
549
		}
550
		else {
551
			if (!showingMessage)
552
				showingMessage = true;
553
			// Message string to be shown - if there is an image then add in
554
			// a space to the message for layout purposes
555
			String shownMessage = (newImage == null) ? message : " " + message; //$NON-NLS-1$  
556
			if (!showingError) {
557
				// we are not showing an error
558
				updateMessage(shownMessage);
559
			}
560
		}
561
		messageImageLabel.setImage(messageImage);
562
		setImageLabelVisible(messageImage != null);
563
		layoutForNewMessage();
538
	}
564
	}
539
565
540
	/**
566
	/**
Lines 621-624 Link Here
621
		childData.bottom = new FormAttachment(100, 0);
647
		childData.bottom = new FormAttachment(100, 0);
622
		workArea.setLayoutData(childData);
648
		workArea.setLayoutData(childData);
623
	}
649
	}
650
	
651
	protected Control createButtonBar(Composite parent) {
652
		Control control = super.createButtonBar(parent);
653
		Button okButton = getButton(IDialogConstants.OK_ID);
654
		if (okButton != null) {
655
			okButton.setEnabled(dialogComplete);
656
		}
657
		return control;
658
	}
659
	
660
	/**
661
	 * Sets whether this dialog is complete.
662
	 * @param complete 
663
	 *             true if this dialog is complete, and and false otherwise
664
	 */
665
	public void setDialogComplete(boolean complete) {
666
		Button okButton = getButton(IDialogConstants.OK_ID);
667
		if (okButton != null)
668
			okButton.setEnabled(complete);
669
		dialogComplete = complete;
670
	}
671
	
672
	/**
673
	 * Returns the value of an internal state variable set by setPageComplete. 
674
	 * @return true if this dialog is complete, and false otherwise
675
	 */
676
	public boolean isDialogComplete() {
677
		return dialogComplete;
678
	}
679
	
680
	/**
681
	 * Sets this dialog description text.
682
	 * @param description 
683
	 *               the description text for this dialog page, or null if none
684
	 */
685
	public void setDescription(String description) {
686
		showDescription(description);
687
	}
688
	
689
	private void showDescription(String newDescription) {
690
		// Any change?
691
		if (description.equals(newDescription)) {
692
			return;
693
		}
694
		description = newDescription;
695
		if (description == null) {
696
			description = ""; //$NON-NLS-1$
697
		}
698
		
699
		if (!showingError && !showingMessage) {
700
			updateMessage(description);
701
			messageImageLabel.setImage(null);
702
			setImageLabelVisible(false);
703
			layoutForNewMessage();
704
		}
705
	}
706
	
707
	/**
708
	 * Returns this dialog description text.
709
	 * @return the description text for this dialog, or null if none
710
	 */
711
	public String getDescription() {
712
		return description;
713
	}
714
	
715
	/**
716
	 * Returns the current message for this dialog.
717
	 * A message provides instruction or information to the user, as opposed to an error message which should describe some error state.
718
	 * @return the message, or null if none
719
	 */
720
	public String getMessage() {
721
		return message;
722
	}
723
	
724
	/**
725
	 * Returns a value indicating if the message is a an information message, a warning message, or an error message.
726
	 * Returns one of NONE,INFORMATION, WARNING, or ERROR.
727
	 * @return the message type
728
	 */
729
	public int getMessageType() {
730
		return messageType;
731
	}
732
	
733
	/**
734
	 * Returns the current error message for this dialog. May be null to indicate no error message.
735
	 * An error message should describe some error state, as opposed to a message which may simply provide instruction or information to the user.
736
	 * @return the error message, or null if none
737
	 */
738
	public String getErrorMessage() {
739
		return errorMessage;
740
	}
624
}
741
}

Return to bug 272794