package authoritymanager.client;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RichTextArea;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.xml.client.Document;
import com.google.gwt.xml.client.Element;
import com.google.gwt.xml.client.Node;
import com.google.gwt.xml.client.NodeList;
import com.google.gwt.xml.client.XMLParser;

public class XMLContentPage extends Page {
	private DialogBox popXMLDialog ;
	private RichTextArea txtXMLContent ;
	private AsyncCallback<String> callbackGetXML ;
	
	public XMLContentPage(AuthorityManagerView view) {
		super(view) ;
		
		popXMLDialog = new DialogBox() ; 
		popXMLDialog.setText("XML Viewer") ;
		popXMLDialog.setTitle("XML Viewer") ; 
		popXMLDialog.setHeight("400px") ;
		popXMLDialog.setWidth("400px") ;
		  
		VerticalPanel pnlXMLPanel = new VerticalPanel() ; 
		pnlXMLPanel.setWidth("380px") ;
		pnlXMLPanel.setHeight("340px") ;
		pnlXMLPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER) ; 
		txtXMLContent = new RichTextArea() ; 
		txtXMLContent.setWidth("370px") ;
		txtXMLContent.setHeight("300px") ; 
		pnlXMLPanel.add(txtXMLContent) ;
		   
		Button btnClose = new Button("Close", new ClickHandler() { 
			public void onClick(ClickEvent event) {
				popXMLDialog.hide(); 
			};
		}) ;
		pnlXMLPanel.add(btnClose) ;
		callbackGetXML = new AsyncCallback<String>() { 
			  public void onFailure(Throwable caught) {
				  txtXMLContent.setText("Error: " + caught) ;
			  }; 
			  public void onSuccess(String result) {
				  txtXMLContent.setText(result) ;
			  }; 
		  } ;
		  popXMLDialog.setWidget(pnlXMLPanel) ;
	}
	
	public void show(String URL) {
		txtXMLContent.setText("Loading ...") ;
		popXMLDialog.center() ;
		popXMLDialog.show() ;
		view.getController().getXML(URL, callbackGetXML) ;
	}
	
}
