package org.ovirt.engine.ui.userportal.client.modalpanels;
import java.util.ArrayList;
import java.util.List;
import org.ovirt.engine.ui.frontend.Message;
import org.ovirt.engine.ui.userportal.client.common.Severity;
import org.ovirt.engine.ui.userportal.client.components.NonDraggableModalPanel;
import org.ovirt.engine.ui.userportal.client.components.Button;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
public class MessageDialog extends NonDraggableModalPanel {
private final Button okButton;
private MessageDialog(String title, Severity severity) {
super(500, 400, title, severity);
okButton = new Button("OK");
okButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
destroy();
}
});
setFooterButtons(Alignment.RIGHT, okButton);
}
public MessageDialog(String title, final Message message, Severity severity) {
this(title, new ArrayList<Message>(1) {{this.add(message);}}, severity);
}
public MessageDialog(String title, List<Message> messages, Severity severity) {
this(title, severity);
for (Message message : messages) {
if (message.getDescription() != null && !message.getDescription().isEmpty()) {
Label desc = new Label(message.getDescription() + ":");
desc.setAutoHeight();
desc.setWidth100();
desc.setStyleName("errorDialogDescription");
addItem(desc);
}
Label msg = new Label("<li>" + message.getText() + "</li>");
msg.setAutoHeight();
msg.setWidth100();
msg.setCanSelectText(true);
msg.setStyleName("errorDialogText");
addItem(msg);
}
}
@Override
protected void onDraw() {
super.onDraw();
okButton.focus();
}
}