package es.upm.fi.dia.oeg.map4rdf.client.widget;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.VerticalPanel;
public class Map4RDFMessageDialogBox extends DialogBox {
private Label mainLabel;
private Panel imagePanel;
private ImageResource doneImage;
private ImageResource errorImage;
public Map4RDFMessageDialogBox(String tittle,String label, ImageResource doneImage,ImageResource errorImage) {
super();
//Local variables.
this.doneImage = doneImage;
this.errorImage = errorImage;
// Set the dialog box's caption.
setText(tittle);
// Enable animation.
setAnimationEnabled(true);
// Enable glass background.
setGlassEnabled(true);
//Disable modal. The user cant click in app(GlassEnabled true) and other startup errors can be show.
//If modal is false. Others errors dont be show.
setModal(false);
// DialogBox is a SimplePanel, so you have to set its widget
// property to whatever you want its contents to be.
Button ok = new Button("OK");
ok.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Map4RDFMessageDialogBox.this.hide();
}
});
mainLabel = new Label(label);
VerticalPanel panel = new VerticalPanel();
panel.setSpacing(10);
panel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
HorizontalPanel messagePanel= new HorizontalPanel();
imagePanel = new FlowPanel();
messagePanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
messagePanel.add(imagePanel);
messagePanel.add(mainLabel);
panel.add(messagePanel);
panel.add(ok);
setWidget(panel);
this.getElement().getStyle().setZIndex(10000);
}
public void setLabel(String label){
mainLabel.setText(label);
}
public String getLabel(){
return mainLabel.getText();
}
@Override
public void hide(){
super.hide();
}
public void show(String text){
imagePanel.clear();
mainLabel.setText(text);
super.center();
}
public void showDone(String text){
imagePanel.clear();
imagePanel.add(new Image(doneImage));
mainLabel.setText(text);
super.center();
}
public void showError(String text){
imagePanel.clear();
imagePanel.add(new Image(errorImage));
mainLabel.setText(text);
super.center();
}
}