package org.kjtw.categories;
import javax.swing.JPanel;
import java.awt.GridBagLayout;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import org.kjtw.process.AudioPlayer;
import org.kjtw.process.SRFLoad;
import org.kjtw.structures.QHeader;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.IOException;
import java.util.Hashtable;
import javax.swing.JLabel;
public class StandardQuestion extends JPanel {
/**
*
*/
private static final long serialVersionUID = -2970935854547118125L;
private JLabel Title;
private JLabel Qtext;
private JLabel txt1;
private JLabel txt2;
private JLabel txt3;
private JLabel txt4;
private JButton btnPlayTitle;
private JButton btnPlaypreamble;
private JButton btnPlayQ;
private JButton btnAnswers;
private JButton button_1;
private JButton button_2;
private JButton button_3;
private JButton button_4;
private JButton btnAllWrongAnswers;
private JButton btnClosingRemark;
private JCheckBox chckbxNewCheckBox;
private Hashtable <String, byte[]> supplements;
private SRFLoad QData;
private JLabel lblNewLabel;
private JButton btnToggleAltTitles;
private int titleval;
/**
* Create the panel.
* @throws IOException
*/
public StandardQuestion(final QHeader qhd) throws IOException {
supplements = new Hashtable<String, byte[]>();
QData = new SRFLoad(qhd.getPath());
supplements = QData.getData();
if (qhd.getForced() != null)
{
qhd.setTitlea(new String(supplements.get("STR_18")));
qhd.setTitleb(new String(supplements.get("STR_19")));
}
titleval =0;
GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[] {70, 187, 161, 2};
gridBagLayout.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
gridBagLayout.columnWeights = new double[]{0.0, 1.0, 1.0, Double.MIN_VALUE};
gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
setLayout(gridBagLayout);
btnPlayTitle = new JButton("Play Title");
btnPlayTitle.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
switch (titleval)
{
case 0:
default:
{
new Thread(new AudioPlayer(supplements.get("snd_1"))).start();
break;
}
case 1:
{
new Thread(new AudioPlayer(supplements.get("snd_18"))).start();
break;
}
case 2:
{
new Thread(new AudioPlayer(supplements.get("snd_19"))).start();
break;
}
}
}
});
lblNewLabel = new JLabel("Difficulty:"+qhd.getDiff());
GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
gbc_lblNewLabel.anchor = GridBagConstraints.WEST;
gbc_lblNewLabel.gridwidth = 2;
gbc_lblNewLabel.insets = new Insets(0, 0, 5, 0);
gbc_lblNewLabel.gridx = 1;
gbc_lblNewLabel.gridy = 0;
add(lblNewLabel, gbc_lblNewLabel);
GridBagConstraints gbc_btnPlayTitle = new GridBagConstraints();
gbc_btnPlayTitle.fill = GridBagConstraints.HORIZONTAL;
gbc_btnPlayTitle.insets = new Insets(0, 0, 5, 5);
gbc_btnPlayTitle.gridx = 0;
gbc_btnPlayTitle.gridy = 1;
add(btnPlayTitle, gbc_btnPlayTitle);
Title = new JLabel(qhd.getTitle());
GridBagConstraints gbc_Title = new GridBagConstraints();
gbc_Title.gridwidth = 2;
gbc_Title.insets = new Insets(0, 0, 5, 0);
gbc_Title.fill = GridBagConstraints.HORIZONTAL;
gbc_Title.gridx = 1;
gbc_Title.gridy = 1;
add(Title, gbc_Title);
btnPlaypreamble = new JButton("Preamble");
btnPlaypreamble.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new AudioPlayer(supplements.get("snd_2"))).start();
}
});
GridBagConstraints gbc_btnPlaypreamble = new GridBagConstraints();
gbc_btnPlaypreamble.fill = GridBagConstraints.HORIZONTAL;
gbc_btnPlaypreamble.insets = new Insets(0, 0, 5, 5);
gbc_btnPlaypreamble.gridx = 0;
gbc_btnPlaypreamble.gridy = 2;
add(btnPlaypreamble, gbc_btnPlaypreamble);
if (supplements.get("snd_2")==null)
{
btnPlaypreamble.setEnabled(false);
}
btnPlayQ = new JButton("Play Q");
btnPlayQ.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new AudioPlayer(supplements.get("snd_3"))).start();
}
});
Qtext = new JLabel("<html><body style='width:100%'>"+new String(supplements.get("STR_2")));
GridBagConstraints gbc_Qtext = new GridBagConstraints();
gbc_Qtext.gridheight = 2;
gbc_Qtext.gridwidth = 2;
gbc_Qtext.insets = new Insets(0, 0, 5, 0);
gbc_Qtext.fill = GridBagConstraints.BOTH;
gbc_Qtext.gridx = 1;
gbc_Qtext.gridy = 2;
add(Qtext, gbc_Qtext);
GridBagConstraints gbc_btnPlayQ = new GridBagConstraints();
gbc_btnPlayQ.fill = GridBagConstraints.HORIZONTAL;
gbc_btnPlayQ.insets = new Insets(0, 0, 5, 5);
gbc_btnPlayQ.gridx = 0;
gbc_btnPlayQ.gridy = 3;
add(btnPlayQ, gbc_btnPlayQ);
btnAnswers = new JButton("Answers");
btnAnswers.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new AudioPlayer(supplements.get("snd_5"))).start();
}
});
GridBagConstraints gbc_btnAnswers = new GridBagConstraints();
gbc_btnAnswers.fill = GridBagConstraints.HORIZONTAL;
gbc_btnAnswers.insets = new Insets(0, 0, 5, 5);
gbc_btnAnswers.gridx = 0;
gbc_btnAnswers.gridy = 4;
add(btnAnswers, gbc_btnAnswers);
button_1 = new JButton("1");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new AudioPlayer(supplements.get("snd_7"))).start();
}
});
GridBagConstraints gbc_button_1 = new GridBagConstraints();
gbc_button_1.fill = GridBagConstraints.HORIZONTAL;
gbc_button_1.insets = new Insets(0, 0, 5, 5);
gbc_button_1.gridx = 0;
gbc_button_1.gridy = 5;
add(button_1, gbc_button_1);
if (supplements.get("snd_7")==null)
{
button_1.setEnabled(false);
}
txt1 = new JLabel(new String(supplements.get("STR_3")));
GridBagConstraints gbc_txt1 = new GridBagConstraints();
gbc_txt1.gridwidth = 2;
gbc_txt1.insets = new Insets(0, 0, 5, 0);
gbc_txt1.fill = GridBagConstraints.HORIZONTAL;
gbc_txt1.gridx = 1;
gbc_txt1.gridy = 5;
add(txt1, gbc_txt1);
button_2 = new JButton("2");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new AudioPlayer(supplements.get("snd_8"))).start();
}
});
GridBagConstraints gbc_button_2 = new GridBagConstraints();
gbc_button_2.fill = GridBagConstraints.HORIZONTAL;
gbc_button_2.insets = new Insets(0, 0, 5, 5);
gbc_button_2.gridx = 0;
gbc_button_2.gridy = 6;
add(button_2, gbc_button_2);
if (supplements.get("snd_8")==null)
{
button_2.setEnabled(false);
}
txt2 = new JLabel(new String(supplements.get("STR_4")));
GridBagConstraints gbc_txt2 = new GridBagConstraints();
gbc_txt2.gridwidth = 2;
gbc_txt2.insets = new Insets(0, 0, 5, 0);
gbc_txt2.fill = GridBagConstraints.HORIZONTAL;
gbc_txt2.gridx = 1;
gbc_txt2.gridy = 6;
add(txt2, gbc_txt2);
button_3 = new JButton("3");
button_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new AudioPlayer(supplements.get("snd_9"))).start();
}
});
GridBagConstraints gbc_button_3 = new GridBagConstraints();
gbc_button_3.fill = GridBagConstraints.HORIZONTAL;
gbc_button_3.insets = new Insets(0, 0, 5, 5);
gbc_button_3.gridx = 0;
gbc_button_3.gridy = 7;
add(button_3, gbc_button_3);
if (supplements.get("snd_9")==null)
{
button_3.setEnabled(false);
}
txt3 = new JLabel(new String(supplements.get("STR_5")));
GridBagConstraints gbc_txt3 = new GridBagConstraints();
gbc_txt3.gridwidth = 2;
gbc_txt3.insets = new Insets(0, 0, 5, 0);
gbc_txt3.fill = GridBagConstraints.HORIZONTAL;
gbc_txt3.gridx = 1;
gbc_txt3.gridy = 7;
add(txt3, gbc_txt3);
button_4 = new JButton("4");
button_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new AudioPlayer(supplements.get("snd_10"))).start();
}
});
GridBagConstraints gbc_button_4 = new GridBagConstraints();
gbc_button_4.fill = GridBagConstraints.HORIZONTAL;
gbc_button_4.insets = new Insets(0, 0, 5, 5);
gbc_button_4.gridx = 0;
gbc_button_4.gridy = 8;
add(button_4, gbc_button_4);
if (supplements.get("snd_10")==null)
{
button_4.setEnabled(false);
}
txt4 = new JLabel(new String(supplements.get("STR_6")));
GridBagConstraints gbc_txt4 = new GridBagConstraints();
gbc_txt4.gridwidth = 2;
gbc_txt4.insets = new Insets(0, 0, 5, 0);
gbc_txt4.fill = GridBagConstraints.HORIZONTAL;
gbc_txt4.gridx = 1;
gbc_txt4.gridy = 8;
add(txt4, gbc_txt4);
chckbxNewCheckBox = new JCheckBox("Show answer");
chckbxNewCheckBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
txt1.setForeground(Color.BLACK);
txt2.setForeground(Color.BLACK);
txt3.setForeground(Color.BLACK);
txt4.setForeground(Color.BLACK);
if (e.getStateChange() == ItemEvent.DESELECTED)
{
}
else
{
switch (qhd.getAnswer())
{
case 1:
txt1.setForeground(Color.GREEN);
break;
case 2:
txt2.setForeground(Color.GREEN);
break;
case 3:
txt3.setForeground(Color.GREEN);
break;
case 4:
txt4.setForeground(Color.GREEN);
break;
}
}
}
});
GridBagConstraints gbc_chckbxNewCheckBox = new GridBagConstraints();
gbc_chckbxNewCheckBox.insets = new Insets(0, 0, 5, 5);
gbc_chckbxNewCheckBox.gridx = 0;
gbc_chckbxNewCheckBox.gridy = 9;
add(chckbxNewCheckBox, gbc_chckbxNewCheckBox);
btnAllWrongAnswers = new JButton("Play 'all wrong' audio");
btnAllWrongAnswers.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new AudioPlayer(supplements.get("snd_11"))).start();
}
});
GridBagConstraints gbc_btnAllWrongAnswers = new GridBagConstraints();
gbc_btnAllWrongAnswers.anchor = GridBagConstraints.WEST;
gbc_btnAllWrongAnswers.insets = new Insets(0, 0, 5, 5);
gbc_btnAllWrongAnswers.gridx = 1;
gbc_btnAllWrongAnswers.gridy = 9;
add(btnAllWrongAnswers, gbc_btnAllWrongAnswers);
if (supplements.get("snd_11")==null)
{
btnAllWrongAnswers.setEnabled(false);
}
btnClosingRemark = new JButton("Closing remark");
btnClosingRemark.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new AudioPlayer(supplements.get("snd_6"))).start();
}
});
GridBagConstraints gbc_btnClosingRemark = new GridBagConstraints();
gbc_btnClosingRemark.anchor = GridBagConstraints.WEST;
gbc_btnClosingRemark.insets = new Insets(0, 0, 5, 0);
gbc_btnClosingRemark.gridx = 2;
gbc_btnClosingRemark.gridy = 9;
add(btnClosingRemark, gbc_btnClosingRemark);
if (supplements.get("snd_6")==null)
{
btnClosingRemark.setEnabled(false);
}
btnToggleAltTitles = new JButton("Toggle alt titles");
GridBagConstraints gbc_btnToggleAltTitles = new GridBagConstraints();
gbc_btnToggleAltTitles.insets = new Insets(0, 0, 5, 5);
gbc_btnToggleAltTitles.gridx = 0;
gbc_btnToggleAltTitles.gridy = 0;
add(btnToggleAltTitles, gbc_btnToggleAltTitles);
btnToggleAltTitles.setEnabled(false);
if (qhd.getTitlea() != null)
{
btnToggleAltTitles.setEnabled(true);
btnPlayTitle.setText("Play Title 1");
btnToggleAltTitles.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
titleval++;
if (titleval >2)
{
titleval =0;
}
switch (titleval)
{
case 0:
default:
{
btnPlayTitle.setText("Play Title 1");
Title.setText(qhd.getTitle());
break;
}
case 1:
{
btnPlayTitle.setText("Play Title 2");
Title.setText(qhd.getTitlea());
break;
}
case 2:
{
btnPlayTitle.setText("Play Title 3");
Title.setText(qhd.getTitleb());
break;
}
}
}
});
}
}
}