bug4371 Added abstraction hierarchy AbstractDataImportResultDialogs

This commit is contained in:
Benjamin Barth committed 2017-12-19 17:55:53 +01:00
1 parent 60306e6989
commit ef08782408
3 files changed
+94 -60

No files matched your search

@@ -0,0 +1,62 @@
package com.sap.sailing.gwt.ui.adminconsole.resulthandling;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.sap.sailing.gwt.ui.adminconsole.resulthandling.AbstractDataImportResponse.ErrorMessage;
public class AbstractDataImportResultDialog {
protected static final String DIV_BOLD = "<div style='font-weight:bold;'>", DIV_END = "</div>";
protected static final String DIV_MARGIN = "<div style='margin:40px;'>", UL = "<ul>", UL_END = "</ul>";
protected static final String LI = "<li>", LI_END = "</liv>", P = "<p>", P_END = "</p>";
protected static void appendErrorMessagesIfPresent(SafeHtmlBuilder builder, AbstractDataImportResponse response) {
if (response.hasErrors()) {
appendParagraph(builder, "Error messages");
response.getErrors().forEach(errorMessage -> appendErrorMessage(builder, errorMessage));
}
}
protected static void appendErrorMessage(SafeHtmlBuilder builder, ErrorMessage errorMessage) {
builder.appendHtmlConstant(DIV_BOLD).appendEscaped(errorMessage.getMessage()).appendHtmlConstant(DIV_END);
builder.appendHtmlConstant(UL);
appendLineItemIfValueNotNull(builder, "ServerLog UUID", errorMessage.getExUUID());
appendLineItemIfValueNotNull(builder, "Exception Classname", errorMessage.getClassName());
appendLineItemIfValueNotNull(builder, "Filename", errorMessage.getFilename());
appendLineItemIfValueNotNull(builder, "Requested Importer", errorMessage.getRequestedImporter());
builder.appendHtmlConstant(UL_END);
}
protected static void appendParagraph(SafeHtmlBuilder builder, String text) {
builder.appendHtmlConstant(P).appendEscaped(text).appendHtmlConstant(P_END);
}
protected static void appendLineItem(SafeHtmlBuilder builder, String text) {
builder.appendHtmlConstant(LI).appendEscaped(text).appendHtmlConstant(LI_END);
}
protected static void appendLineItemIfValueNotNull(SafeHtmlBuilder builder, String label, String value) {
if (value != null && !value.isEmpty()) {
builder.appendHtmlConstant(LI);
builder.appendEscaped(label).appendEscaped(": ").appendEscaped(value);
builder.appendHtmlConstant(LI_END);
}
}
protected static void show(SafeHtmlBuilder builder) {
final DialogBox errorBox = new DialogBox(false, true);
final VerticalPanel content = new VerticalPanel();
content.add(new HTML(builder.toSafeHtml()));
final Button close = new Button("Close", (ClickHandler) e -> errorBox.hide());
content.add(close);
content.setSpacing(10);
errorBox.setGlassEnabled(true);
errorBox.setWidget(content);
errorBox.center();
}
}
@@ -0,0 +1,17 @@
package com.sap.sailing.gwt.ui.adminconsole.resulthandling;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
public class ExpeditionDataImportResultsDialog extends AbstractDataImportResultDialog {
public static void showResults(ExpeditionDataImportResponse response) {
if (response.hasErrors()) {
final SafeHtmlBuilder builder = new SafeHtmlBuilder();
builder.appendHtmlConstant(DIV_MARGIN);
appendErrorMessagesIfPresent(builder, response);
builder.appendHtmlConstant(DIV_END);
show(builder);
}
}
}
@@ -1,71 +1,26 @@
package com.sap.sailing.gwt.ui.adminconsole.resulthandling;
import java.util.List;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.sap.sailing.gwt.ui.adminconsole.resulthandling.AbstractDataImportResponse.ErrorMessage;
public class SensorDataImportResultsDialog {
public class SensorDataImportResultsDialog extends AbstractDataImportResultDialog {
public static void showResults(SensorDataImportResponse response) {
if (!response.hasErrors()) {
return;
}
List<ErrorMessage> errorMessages = response.getErrors();
SafeHtmlBuilder shb = new SafeHtmlBuilder();
shb.appendHtmlConstant("<div style='margin:40px;'>");
if (response.didSucceedImportingAnyFile()) {
shb.appendHtmlConstant("<p>Succesful uploads</p>");
shb.appendHtmlConstant("<ul>");
for (String uuid : response.getUploads()) {
shb.appendHtmlConstant(" <li >").appendEscaped(uuid).appendHtmlConstant("</li>");
}
shb.appendHtmlConstant("</ul>");
} else {
shb.appendHtmlConstant("<p>No succesful upload</p>");
}
if (response.hasErrors()) {
shb.appendHtmlConstant("<p>Error messages</p>");
for (ErrorMessage errorMsg : errorMessages) {
shb.appendHtmlConstant("<div style='font-weight:bold;'>").appendEscaped(errorMsg.getMessage())
.appendHtmlConstant("</div>");
shb.appendHtmlConstant("<ul>");
if (!isNullOrEmpty(errorMsg.getExUUID())) {
shb.appendHtmlConstant(" <li>ServerLog UUID: ").appendEscaped(errorMsg.getExUUID())
.appendHtmlConstant("</li>");
}
if (!isNullOrEmpty(errorMsg.getClassName())) {
shb.appendHtmlConstant(" <li>Exception Classname: ").appendEscaped(errorMsg.getClassName())
.appendHtmlConstant("</li>");
}
if (!isNullOrEmpty(errorMsg.getFilename())) {
shb.appendHtmlConstant(" <li>Filename: ").appendEscaped(errorMsg.getFilename())
.appendHtmlConstant("</li>");
}
if (!isNullOrEmpty(errorMsg.getRequestedImporter())) {
shb.appendHtmlConstant(" <li>Requested Importer: ").appendEscaped(errorMsg.getRequestedImporter())
.appendHtmlConstant("</li>");
}
shb.appendHtmlConstant("</ul>");
final SafeHtmlBuilder builder = new SafeHtmlBuilder();
builder.appendHtmlConstant(DIV_MARGIN);
if (response.didSucceedImportingAnyFile()) {
appendParagraph(builder, "Succesful uploads");
builder.appendHtmlConstant(UL);
response.getUploads().forEach(uuid -> appendLineItem(builder, uuid));
builder.appendHtmlConstant(UL_END);
} else {
appendParagraph(builder, "No succesful upload!");
}
appendErrorMessagesIfPresent(builder, response);
builder.appendHtmlConstant(DIV_END);
show(builder);
}
shb.appendHtmlConstant("</div>");
final DialogBox errorBox = new DialogBox(false, true);
VerticalPanel vp = new VerticalPanel();
vp.add(new HTML(shb.toSafeHtml()));
Button close = new Button("Close");
close.addClickHandler(e -> errorBox.hide());
vp.add(close);
vp.setSpacing(10);
errorBox.setGlassEnabled(true);
errorBox.setWidget(vp);
errorBox.center();
}
private static boolean isNullOrEmpty(String text) {
return text == null || text.isEmpty();
}
}