package org.magic.gui.components.browser;

import java.awt.BorderLayout;

import javax.swing.JEditorPane;
import javax.swing.text.html.HTMLEditorKit;

import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist;
import org.magic.gui.abstracts.MTGUIBrowserComponent;
import org.magic.services.threads.ThreadManager;
import org.magic.tools.RequestBuilder;
import org.magic.tools.RequestBuilder.METHOD;
import org.magic.tools.URLTools;
import org.magic.tools.URLToolsClient;


public class JEditorPaneBrowser extends MTGUIBrowserComponent {

	private static final long serialVersionUID = 1L;
	private JEditorPane browse;
	private transient URLToolsClient client;
	
	public JEditorPaneBrowser() {
		setLayout(new BorderLayout());
		browse = new JEditorPane() ;
		browse.setContentType("text/html");
		HTMLEditorKit kit = new HTMLEditorKit();
		browse.setEditorKit(kit);
		browse.setEditable(false);
		add(browse,BorderLayout.CENTER);
		client = URLTools.newClient();
		
	}
	
	
	@Override
	public void loadURL(String url) {
		logger.debug("loading " + url);
		
		ThreadManager.getInstance().executeThread(()->{
				try {
					
					Whitelist w = Whitelist.basic();
					w.addTags("img");
					w.addAttributes("img", "src");
					
					String contf = Jsoup.clean(RequestBuilder.build().clean().url(url).method(METHOD.GET).setClient(client).toHtml().html(),w);
					browse.setText(contf);
				}
				catch(Exception e)
				{
					logger.error(e);
					browse.setText("Error " + e);
				}
				
		}, "loading " + url);
		
		
		
	}
	
}