package sk.tomsik68.mclauncher.impl.versions.mcassets;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.applet.Applet;
import java.applet.AppletStub;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.HashMap;
import java.util.Map;
@Deprecated
final class LauncherComponent extends Applet implements AppletStub {
private static final long serialVersionUID = -6942044817024235085L;
private final ClassLoader loader;
private final JSplitPane splitPane;
private final DefaultTableModel model;
protected boolean active = false;
private Applet minecraft;
private HashMap<String, Object> params = new HashMap<String, Object>();
public LauncherComponent(URLClassLoader loader) {
System.setProperty("minecraft.applet.WrapperClass", getClass().getName());
this.loader = loader;
this.params.put("fullscreen", "false");
setLayout(new BorderLayout());
this.splitPane = new JSplitPane();
this.splitPane.setEnabled(false);
this.splitPane.setResizeWeight(1.0D);
this.splitPane.setOrientation(0);
this.model = new DefaultTableModel();
this.model.addColumn("Key");
this.model.addColumn("Value");
this.model.setRowCount(5);
JTable tbParameters = new JTable(this.model);
this.splitPane.setLeftComponent(tbParameters);
JButton btStart = new JButton("Start Minecraft");
btStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
LauncherComponent.this.startMinecraft();
}
});
this.splitPane.setRightComponent(btStart);
}
public void createApplet() {
try {
this.minecraft = ((Applet) this.loader.loadClass("net.minecraft.client.MinecraftApplet").newInstance());
this.minecraft.setStub(this);
} catch (Exception e) {
e.printStackTrace();
}
}
public void update(Graphics g) {
if (this.minecraft != null)
this.minecraft.paint(g);
}
public URL getDocumentBase() {
try {
return new URL("http://www.minecraft.net/game/");
} catch (MalformedURLException e) {
e.printStackTrace();
}
return null;
}
public String getParameter(String name) {
if (this.params.containsKey(name)) {
return this.params.get(name).toString();
}
try {
String superValue = super.getParameter(name);
if (superValue != null) {
this.model.addRow(new Object[]{name, superValue});
return superValue;
}
} catch (Exception e) {
this.params.put(name, "");
this.model.addRow(new Object[]{name, ""});
}
return null;
}
public void setParameter(String k, String v) {
this.params.put(k, v);
this.model.addRow(new Object[]{k, v});
}
public void replace(Applet applet) {
this.minecraft = applet;
applet.setStub(this);
applet.setSize(getWidth(), getHeight());
setLayout(new BorderLayout());
add(applet, "Center");
applet.init();
this.active = true;
applet.start();
validate();
}
public void startMinecraft() {
Thread thread = new Thread() {
public void run() {
while (LauncherComponent.this.active) {
LauncherComponent.this.repaint();
try {
Thread.sleep(100L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
thread.start();
for (int i = 0; i < this.model.getRowCount(); i++) {
if ((this.model.getValueAt(i, 0) != null) && (this.model.getValueAt(i, 1) != null))
this.params.put(this.model.getValueAt(i, 0).toString(), this.model.getValueAt(i, 1).toString());
}
if (this.minecraft == null)
createApplet();
replace(this.minecraft);
}
public void start() {
add(this.splitPane);
}
public void appletResize(int width, int height) {
setSize(width, height);
this.minecraft.setSize(width, height);
}
public boolean isActive() {
return this.active;
}
public void stop() {
this.active = false;
}
public void setAll(Map<String, Object> params2) {
params.putAll(params2);
}
}