| package org.eclipse.wst.validation.ui.internal.dialog; |
| |
| import org.eclipse.jface.dialogs.IDialogConstants; |
| import org.eclipse.jface.dialogs.IconAndMessageDialog; |
| import org.eclipse.osgi.util.NLS; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.graphics.Image; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Control; |
| import org.eclipse.swt.widgets.Label; |
| import org.eclipse.swt.widgets.Shell; |
| import org.eclipse.wst.validation.ValidationResult; |
| import org.eclipse.wst.validation.internal.ui.ValidationUIMessages; |
| |
| /** |
| * A dialog for displaying the results of a manual validation. |
| * @author karasiuk |
| * |
| */ |
| public class ResultsDialog extends IconAndMessageDialog { |
| |
| private ValidationResult _result; |
| private long _time; |
| private int _resourceCount; |
| |
| /** |
| * Create a dialog for displaying validation results. |
| * |
| * @param parentShell this can be null |
| * @param results the results of the validation |
| * @param time the time that the validation took in milliseconds |
| * @param resourceCount the number of resources that were validated |
| */ |
| public ResultsDialog(Shell parentShell, ValidationResult results, long time, int resourceCount) { |
| super(parentShell); |
| _result = results; |
| _time = time; |
| _resourceCount = resourceCount; |
| } |
| |
| @Override |
| protected Image getImage() { |
| if (_result.getSeverityError() > 0)return getErrorImage(); |
| if (_result.getSeverityWarning() > 0)return getWarningImage(); |
| return getInfoImage(); |
| } |
| |
| @Override |
| protected Control createDialogArea(Composite parent) { |
| message = getMessage(); |
| createMessageArea(parent); |
| |
| StringBuffer b = new StringBuffer(200); |
| String infoMessage = getInfoMessage(); |
| if (infoMessage != null){ |
| b.append(infoMessage); |
| b.append(' '); |
| } |
| |
| if (_resourceCount > 0){ |
| if (_resourceCount == 1)b.append(NLS.bind(ValidationUIMessages.ValTime1, getTime(_time))); |
| else b.append(NLS.bind(ValidationUIMessages.ValTime, _resourceCount, getTime(_time))); |
| } |
| |
| Label msg = new Label(parent, SWT.NONE); |
| msg.setText(b.toString()); |
| GridData gd = new GridData(); |
| gd.horizontalSpan = 2; |
| msg.setLayoutData(gd); |
| Control c = super.createDialogArea(parent); |
| return c; |
| } |
| |
| @Override |
| protected void configureShell(Shell newShell) { |
| super.configureShell(newShell); |
| newShell.setText(ValidationUIMessages.ValResultsStatus); |
| } |
| |
| @Override |
| protected void createButtonsForButtonBar(Composite parent) { |
| createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); |
| } |
| |
| private String getTime(long time) { |
| if (_time <= 1000)return ValidationUIMessages.TimeUnder; |
| if (_time <= 60000)return NLS.bind(ValidationUIMessages.TimeSec, _time/1000); |
| return NLS.bind(ValidationUIMessages.TimeMin, _time/60000); |
| } |
| |
| private String getInfoMessage() { |
| int n = _result.getSeverityInfo(); |
| if (n == 0)return null; |
| if (n == 1)return ValidationUIMessages.ValInfo1; |
| return NLS.bind(ValidationUIMessages.ValInfo, n); |
| } |
| |
| private String getMessage(){ |
| if (_result.getSeverityError() > 1)return NLS.bind(ValidationUIMessages.ValErrors, _result.getSeverityError()); |
| if (_result.getSeverityError() == 1)return ValidationUIMessages.ValErrors1; |
| if (_result.getSeverityWarning() > 1)return NLS.bind(ValidationUIMessages.ValWarn, _result.getSeverityWarning()); |
| if (_result.getSeverityWarning() == 1)return ValidationUIMessages.ValWarn1; |
| return ValidationUIMessages.ValSuccess; |
| } |
| } |