package net.minecraft.launcher.ui.tabs;
import net.minecraft.launcher.Launcher;
import net.minecraft.launcher.OperatingSystem;
import javax.swing.*;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import java.awt.*;
import java.net.URL;
/**
* Created by Energy on 13年7月23日.
*/
public class ReadmeTab extends JScrollPane {
private final JTextPane readme = new JTextPane();
private final Launcher launcher;
public ReadmeTab(Launcher launcher) {
this.launcher = launcher;
this.readme.setEditable(false);
this.readme.setMargin(null);
this.readme.setBackground(Color.WHITE);
this.readme.setContentType("text/html");
this.readme.setText("<html><body><font color=\"#808080\"><br><br><br><br><br><br><br><center><h1>Loading page..</h1></center></font></body></html>");
this.readme.addHyperlinkListener(new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent he) {
if (he.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
try {
OperatingSystem.openLink(he.getURL().toURI());
} catch (Exception e) {
Launcher.getInstance().println("Unexpected exception opening link " + he.getURL(), e);
}
}
});
setViewportView(this.readme);
}
public void setPage(final String url) {
Thread thread = new Thread("Update website tab") {
public void run() {
try {
ReadmeTab.this.readme.setPage(new URL(url));
} catch (Exception e) {
Launcher.getInstance().println("Unexpected exception loading " + url, e);
ReadmeTab.this.readme.setText("<html><body><font color=\"#808080\"><br><br><br><br><br><br><br><center><h1>Failed to get page</h1><br>" + e.toString() + "</center></font></body></html>");
}
}
};
thread.setDaemon(true);
thread.start();
}
public Launcher getLauncher() {
return this.launcher;
}
}