package eu.dnetlib.client.widgets;

import com.github.gwtbootstrap.client.ui.Alert;
import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;

public class AlertWidget implements IsWidget{
	
	private FlowPanel masterPanel = new FlowPanel();
	private Alert mainAlert = new Alert();
	
	public AlertWidget(String message, AlertType type) {
		mainAlert.setVisible(false);
		mainAlert.setText(message);
		mainAlert.setType(type);
		mainAlert.setClose(false);
		mainAlert.getElement().getStyle().setProperty("text-align", "center");
		masterPanel.add(mainAlert);
	}
	
	public void trigger(){
		mainAlert.setVisible(true);
		mainAlert.setAnimation(true);
		mainAlert.getElement().getStyle().setOpacity(1.0);
		Timer timer = new Timer() {
			
			@Override
			public void run() {
				
				Timer temp = new Timer() {
					
					@Override
					public void run() {
						mainAlert.getElement().getStyle().setOpacity(Double.parseDouble(mainAlert.getElement().getStyle().getOpacity())-0.1);
						if(mainAlert.getElement().getStyle().getOpacity().equals("0")){
							mainAlert.setVisible(false);
							this.cancel();
						}
					}
				};
				temp.scheduleRepeating(100);
				
			}
		};
		timer.schedule(5000);
	}
	
	
	@Override
	public Widget asWidget() {
		// TODO Auto-generated method stub
		return masterPanel;
	}

}
