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 372-387
Link Here
|
372 |
// we were previously showing an error |
381 |
// we were previously showing an error |
373 |
showingError = false; |
382 |
showingError = false; |
374 |
} |
383 |
} |
375 |
// show the message |
384 |
// show the description or message |
376 |
// avoid calling setMessage in case it is overridden to call |
385 |
// avoid calling setDescription or setMessage in case it is overridden to call |
377 |
// setErrorMessage, |
386 |
// setErrorMessage, |
378 |
// which would result in a recursive infinite loop |
387 |
// which would result in a recursive infinite loop |
379 |
if (message == null) // this should probably never happen since |
388 |
if (showingMessage) { |
380 |
// setMessage does this conversion.... |
389 |
updateMessage(message); |
381 |
message = ""; //$NON-NLS-1$ |
390 |
messageImageLabel.setImage(messageImage); |
382 |
updateMessage(message); |
391 |
setImageLabelVisible(messageImage != null); |
383 |
messageImageLabel.setImage(messageImage); |
392 |
} |
384 |
setImageLabelVisible(messageImage != null); |
393 |
else { |
|
|
394 |
updateMessage(description); |
395 |
messageImageLabel.setImage(null); |
396 |
setImageLabelVisible(false); |
397 |
} |
385 |
} else { |
398 |
} else { |
386 |
// Add in a space for layout purposes but do not |
399 |
// Add in a space for layout purposes but do not |
387 |
// change the instance variable |
400 |
// change the instance variable |
Lines 492-497
Link Here
|
492 |
*/ |
505 |
*/ |
493 |
public void setMessage(String newMessage, int newType) { |
506 |
public void setMessage(String newMessage, int newType) { |
494 |
Image newImage = null; |
507 |
Image newImage = null; |
|
|
508 |
messageType = newType; |
495 |
if (newMessage != null) { |
509 |
if (newMessage != null) { |
496 |
switch (newType) { |
510 |
switch (newType) { |
497 |
case IMessageProvider.NONE: |
511 |
case IMessageProvider.NONE: |
Lines 518-540
Link Here
|
518 |
*/ |
532 |
*/ |
519 |
private void showMessage(String newMessage, Image newImage) { |
533 |
private void showMessage(String newMessage, Image newImage) { |
520 |
// Any change? |
534 |
// Any change? |
521 |
if (message.equals(newMessage) && messageImage == newImage) { |
535 |
if ((message == null ? newMessage == null : message |
|
|
536 |
.equals(newMessage)) && messageImage == newImage) { |
522 |
return; |
537 |
return; |
523 |
} |
538 |
} |
524 |
message = newMessage; |
539 |
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; |
540 |
messageImage = newImage; |
531 |
if (!showingError) { |
541 |
|
532 |
// we are not showing an error |
542 |
if (message == null) { |
533 |
updateMessage(shownMessage); |
543 |
if (showingMessage) |
534 |
messageImageLabel.setImage(messageImage); |
544 |
showingMessage = false; |
535 |
setImageLabelVisible(messageImage != null); |
545 |
if (!showingError) { |
536 |
layoutForNewMessage(); |
546 |
updateMessage(description); |
|
|
547 |
} |
537 |
} |
548 |
} |
|
|
549 |
else { |
550 |
if (!showingMessage) |
551 |
showingMessage = true; |
552 |
// Message string to be shown - if there is an image then add in |
553 |
// a space to the message for layout purposes |
554 |
String shownMessage = (newImage == null) ? message : " " + message; //$NON-NLS-1$ |
555 |
if (!showingError) { |
556 |
// we are not showing an error |
557 |
updateMessage(shownMessage); |
558 |
} |
559 |
} |
560 |
messageImageLabel.setImage(messageImage); |
561 |
setImageLabelVisible(messageImage != null); |
562 |
layoutForNewMessage(); |
538 |
} |
563 |
} |
539 |
|
564 |
|
540 |
/** |
565 |
/** |
Lines 621-624
Link Here
|
621 |
childData.bottom = new FormAttachment(100, 0); |
646 |
childData.bottom = new FormAttachment(100, 0); |
622 |
workArea.setLayoutData(childData); |
647 |
workArea.setLayoutData(childData); |
623 |
} |
648 |
} |
|
|
649 |
|
650 |
protected Control createButtonBar(Composite parent) { |
651 |
Control control = super.createButtonBar(parent); |
652 |
Button okButton = getButton(IDialogConstants.OK_ID); |
653 |
if (okButton != null) { |
654 |
okButton.setEnabled(dialogComplete); |
655 |
} |
656 |
return control; |
657 |
} |
658 |
|
659 |
/** |
660 |
* Sets whether this dialog is complete. |
661 |
* @param complete |
662 |
* true if this dialog is complete, and and false otherwise |
663 |
*/ |
664 |
public void setDialogComplete(boolean complete) { |
665 |
Button okButton = getButton(IDialogConstants.OK_ID); |
666 |
if (okButton != null) |
667 |
okButton.setEnabled(complete); |
668 |
dialogComplete = complete; |
669 |
} |
670 |
|
671 |
/** |
672 |
* Returns the value of an internal state variable set by setPageComplete. |
673 |
* @return true if this dialog is complete, and false otherwise |
674 |
*/ |
675 |
public boolean isDialogComplete() { |
676 |
return dialogComplete; |
677 |
} |
678 |
|
679 |
/** |
680 |
* Sets this dialog description text. |
681 |
* @param description |
682 |
* the description text for this dialog page, or null if none |
683 |
*/ |
684 |
public void setDescription(String description) { |
685 |
showDescription(description); |
686 |
} |
687 |
|
688 |
private void showDescription(String newDescription) { |
689 |
// Any change? |
690 |
if (description.equals(newDescription)) { |
691 |
return; |
692 |
} |
693 |
description = newDescription; |
694 |
if (description == null) { |
695 |
description = ""; //$NON-NLS-1$ |
696 |
} |
697 |
|
698 |
if (!showingError && !showingMessage) { |
699 |
updateMessage(description); |
700 |
messageImageLabel.setImage(null); |
701 |
setImageLabelVisible(false); |
702 |
layoutForNewMessage(); |
703 |
} |
704 |
} |
705 |
|
706 |
/** |
707 |
* Returns this dialog description text. |
708 |
* @return the description text for this dialog, or null if none |
709 |
*/ |
710 |
public String getDescription() { |
711 |
return description; |
712 |
} |
713 |
|
714 |
/** |
715 |
* Returns the current message for this dialog. |
716 |
* A message provides instruction or information to the user, as opposed to an error message which should describe some error state. |
717 |
* @return the message, or null if none |
718 |
*/ |
719 |
public String getMessage() { |
720 |
return message; |
721 |
} |
722 |
|
723 |
/** |
724 |
* Returns a value indicating if the message is a an information message, a warning message, or an error message. |
725 |
* Returns one of NONE,INFORMATION, WARNING, or ERROR. |
726 |
* @return the message type |
727 |
*/ |
728 |
public int getMessageType() { |
729 |
return messageType; |
730 |
} |
731 |
|
732 |
/** |
733 |
* Returns the current error message for this dialog. May be null to indicate no error message. |
734 |
* An error message should describe some error state, as opposed to a message which may simply provide instruction or information to the user. |
735 |
* @return the error message, or null if none |
736 |
*/ |
737 |
public String getErrorMessage() { |
738 |
return errorMessage; |
739 |
} |
624 |
} |
740 |
} |