### Eclipse Workspace Patch 1.0 #P org.eclipse.ui.forms Index: src/org/eclipse/ui/forms/widgets/Form.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Form.java,v retrieving revision 1.34 diff -u -r1.34 Form.java --- src/org/eclipse/ui/forms/widgets/Form.java 20 Nov 2006 21:53:42 -0000 1.34 +++ src/org/eclipse/ui/forms/widgets/Form.java 20 Dec 2006 23:43:25 -0000 @@ -11,6 +11,7 @@ package org.eclipse.ui.forms.widgets; import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.dialogs.IMessageContainerWithDetails; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; @@ -76,7 +77,7 @@ * * @since 3.0 */ -public class Form extends Composite { +public class Form extends Composite implements IMessageContainerWithDetails { private FormHeading head; private Composite body; @@ -537,7 +538,7 @@ */ public void setMessage(String newMessage, int newType) { - head.setMessage(newMessage, newType); + setMessage(newMessage, null, newType); } /** @@ -564,4 +565,25 @@ public void setBusy(boolean busy) { head.setBusy(busy); } + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.IMessageContainerWithDetails#setMessage(java.lang.String, java.lang.String, int) + */ + public void setMessage(String message, String details, int type) { + head.setMessage(message, details, type); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage() + */ + public String getMessage() { + return head.getMessage(); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType() + */ + public int getMessageType() { + return head.getMessageType(); + } } \ No newline at end of file Index: src/org/eclipse/ui/internal/forms/widgets/FormHeading.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormHeading.java,v retrieving revision 1.10 diff -u -r1.10 FormHeading.java --- src/org/eclipse/ui/internal/forms/widgets/FormHeading.java 16 Nov 2006 21:53:20 -0000 1.10 +++ src/org/eclipse/ui/internal/forms/widgets/FormHeading.java 20 Dec 2006 23:43:25 -0000 @@ -120,6 +120,8 @@ static final int CLOSING = 3; private CLabel label; + + private int type; private ImageHyperlink rlink; @@ -236,10 +238,18 @@ label.getParent().setBackground(bg); createMinimizedImages(); } + + public String getText() { + return this.label.getText(); + } public void setText(String text) { this.label.setText(text); } + + public void setDetails(String details) { + this.label.setToolTipText(details); + } public void setImage(Image image) { this.label.setImage(image); @@ -316,6 +326,14 @@ gc.fillRectangle(x, y, 9, 3); gc.drawRectangle(x, y, 9, 3); } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } } private class FormHeadingLayout extends Layout implements ILayoutExtension { @@ -977,7 +995,7 @@ * @since 3.2 */ public void setMessage(String message) { - this.setMessage(message, IMessageProvider.NONE); + this.setMessage(message, null, IMessageProvider.NONE); } /** @@ -997,7 +1015,9 @@ * @since 3.2 */ - public void setMessage(String newMessage, int newType) { + public void setMessage(String newMessage, String details, int newType) { + if (isDisposed()) + return; Image newImage = null; if (newMessage != null) { switch (newType) { @@ -1016,10 +1036,22 @@ break; } } - showMessage(newMessage, newImage); + showMessage(newMessage, details, newImage, newType); + } + + public String getMessage() { + if (messageArea==null || messageArea.isVisible()) + return null; + return messageArea.getText(); + } + + public int getMessageType() { + if (messageArea==null || messageArea.isVisible()) + return 0; + return messageArea.getType(); } - private void showMessage(String newMessage, Image newImage) { + private void showMessage(String newMessage, String details, Image newImage, int newType) { if (newMessage == null) { if (messageArea != null) setMessageAreaVisible(false); @@ -1027,7 +1059,9 @@ if (messageArea==null) createMessageArea(); messageArea.setText(newMessage); + messageArea.setDetails(details); messageArea.setImage(newImage); + messageArea.setType(newType); setMessageAreaVisible(true); } }