package amidst.gui;
import java.awt.Color;
import java.awt.Container;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ListSelectionModel;
import javax.swing.ScrollPaneConstants;
import javax.swing.border.LineBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import amidst.Amidst;
import net.miginfocom.swing.MigLayout;
public class LicenseWindow extends JFrame {
private static final long serialVersionUID = 3936119740592768287L;
private ArrayList<License> licenses = new ArrayList<License>();
private JList licenseList;
private JTextArea licenseText = new JTextArea();
public LicenseWindow() {
super("Licenses");
setIconImage(Amidst.icon);
licenseText.setEditable(false);
licenseText.setLineWrap(true);
licenseText.setWrapStyleWord(true);
licenses.add(new License("AMIDST", "licenses/amidst.txt"));
licenses.add(new License("Args4j", "licenses/args4j.txt"));
licenses.add(new License("Gson", "licenses/gson.txt"));
licenses.add(new License("JGoogleAnalytics", "licenses/jgoogleanalytics.txt"));
licenses.add(new License("JNBT", "licenses/jnbt.txt"));
licenses.add(new License("Kryonet", "licenses/kryonet.txt"));
licenses.add(new License("MiG Layout", "licenses/miglayout.txt"));
licenses.add(new License("Rhino", "licenses/rhino.txt"));
licenseList = new JList(licenses.toArray());
licenseList.setBorder(new LineBorder(Color.darkGray, 1));
Container contentPane = this.getContentPane();
MigLayout layout = new MigLayout();
contentPane.setLayout(layout);
contentPane.add(licenseList, "w 100!, h 0:2400:2400");
JScrollPane scrollPane = new JScrollPane(licenseText);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
contentPane.add(scrollPane, "w 0:4800:4800, h 0:2400:2400");
setSize(870, 550);
setVisible(true);
licenseList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
licenseList.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
License license = (License)licenseList.getSelectedValue();
license.load();
if (license.isLoaded()) {
licenseText.setText(license.getContents());
licenseText.setCaretPosition(0);
}
}
});
licenseList.setSelectedIndex(0);
}
public void addLicense(License license) {
licenses.add(license);
licenseList.setListData(licenses.toArray());
}
}