package org.kjtw.categories; import javax.swing.JPanel; import java.awt.GridBagLayout; 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.io.IOException; import java.util.Hashtable; import javax.swing.JLabel; import java.awt.event.ItemListener; import java.awt.Font; public class Gibberish extends JPanel { /** * */ private static final long serialVersionUID = 7342045851117088195L; private JLabel Title; private JLabel Qtext; private JLabel txt1; private JLabel txt2; private JLabel txt3; private JButton btnPlayTitle; private JButton btnPlaypreamble; private JButton btnPlayQ; private JLabel btnAnswers; private JButton button_1; private JButton button_2; private JButton button_3; private JButton btnAllWrongAnswers; private JButton btnClosingRemark; private JCheckBox chckbxNewCheckBox; private Hashtable <String, byte[]> supplements; private SRFLoad QData; private int titleval; private int hintval; private JLabel lblNewLabel; private JButton btnRightAnswer; private JButton btnWrongAnswer; /** * Create the panel. * @throws IOException */ public Gibberish(final QHeader qhd) throws IOException { QData = new SRFLoad(qhd.getPath()); supplements = QData.getData(); final String spelltext = "<html><body style='width:100%'>"+"Alternate spellings: "+new String(supplements.get("Wrds_128")); final String questiontext = "<html><body style='width:100%'>"+new String(supplements.get("STR_130")); titleval =0; hintval=0; GridBagLayout gridBagLayout = new GridBagLayout(); gridBagLayout.columnWidths = new int[] {70, 244, 243, 2}; gridBagLayout.rowHeights = new int[]{0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0}; gridBagLayout.columnWeights = new double[]{0.0, 0.0, 0.0, Double.MIN_VALUE}; gridBagLayout.rowWeights = new double[]{0.0, 0.0, 1.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; } } } }); 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 = 0; add(btnPlayTitle, gbc_btnPlayTitle); Title = new JLabel("Title here"); 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 = 0; add(Title, gbc_Title); button_1 = new JButton("1"); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (hintval ==0) { new Thread(new AudioPlayer(supplements.get("snd_5"))).start(); } else { new Thread(new AudioPlayer(supplements.get("snd_6"))).start(); } } }); 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 = 1; add(btnPlaypreamble, gbc_btnPlaypreamble); btnPlayQ = new JButton("Hints/Followups"); btnPlayQ.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { hintval++; if (hintval>1) { hintval=0; } switch (hintval) { case 0: default: { btnAnswers.setText("Hints"); break; } case 1: { btnAnswers.setText("Followups"); break; } } } }); 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 = 2; add(btnPlayQ, gbc_btnPlayQ); chckbxNewCheckBox = new JCheckBox("Show answer"); GridBagConstraints gbc_chckbxNewCheckBox = new GridBagConstraints(); gbc_chckbxNewCheckBox.insets = new Insets(0, 0, 5, 5); gbc_chckbxNewCheckBox.gridx = 0; gbc_chckbxNewCheckBox.gridy = 3; add(chckbxNewCheckBox, gbc_chckbxNewCheckBox); btnWrongAnswer = new JButton("Wrong Answer"); GridBagConstraints gbc_btnWrongAnswer = new GridBagConstraints(); gbc_btnWrongAnswer.insets = new Insets(0, 0, 5, 5); gbc_btnWrongAnswer.gridx = 0; gbc_btnWrongAnswer.gridy = 4; btnWrongAnswer.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new Thread(new AudioPlayer(supplements.get("snd_16"))).start(); } }); add(btnWrongAnswer, gbc_btnWrongAnswer); btnAnswers = new JLabel("Hints"); GridBagConstraints gbc_btnAnswers = new GridBagConstraints(); gbc_btnAnswers.insets = new Insets(0, 0, 5, 5); gbc_btnAnswers.gridx = 0; gbc_btnAnswers.gridy = 5; add(btnAnswers, gbc_btnAnswers); lblNewLabel = new JLabel(new String(supplements.get("Gibr_128"))); GridBagConstraints gbc_lblNewLabel = new GridBagConstraints(); gbc_lblNewLabel.gridwidth = 2; gbc_lblNewLabel.insets = new Insets(0, 0, 5, 0); gbc_lblNewLabel.gridx = 1; gbc_lblNewLabel.gridy = 5; add(lblNewLabel, gbc_lblNewLabel); 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 = 6; add(button_1, gbc_button_1); button_2 = new JButton("2"); button_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (hintval ==0) { new Thread(new AudioPlayer(supplements.get("snd_7"))).start(); } else { new Thread(new AudioPlayer(supplements.get("snd_8"))).start(); } } }); txt1 = new JLabel(new String(supplements.get("Hnt1_128"))); 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 = 6; add(txt1, gbc_txt1); 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 = 7; add(button_2, gbc_button_2); Qtext = new JLabel("questiontext"); Qtext.setFont(new Font("Tahoma", Font.PLAIN, 11)); GridBagConstraints gbc_Qtext = new GridBagConstraints(); gbc_Qtext.fill = GridBagConstraints.BOTH; gbc_Qtext.gridheight = 4; gbc_Qtext.gridwidth = 2; gbc_Qtext.insets = new Insets(0, 0, 5, 0); gbc_Qtext.gridx = 1; gbc_Qtext.gridy = 1; add(Qtext, gbc_Qtext); button_3 = new JButton("3"); button_3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (hintval ==0) { new Thread(new AudioPlayer(supplements.get("snd_9"))).start(); } else { new Thread(new AudioPlayer(supplements.get("snd_10"))).start(); } } }); txt2 = new JLabel(new String(supplements.get("Hnt2_128"))); 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 = 7; add(txt2, gbc_txt2); 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 = 8; add(button_3, gbc_button_3); txt3 = new JLabel(new String(supplements.get("Hnt3_128"))); 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 = 8; add(txt3, gbc_txt3); btnAllWrongAnswers = new JButton("Play 'all wrong' audio"); btnAllWrongAnswers.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new Thread(new AudioPlayer(supplements.get("snd_14"))).start(); } }); btnRightAnswer = new JButton("Right Answer"); GridBagConstraints gbc_btnRightAnswer = new GridBagConstraints(); gbc_btnRightAnswer.fill = GridBagConstraints.HORIZONTAL; gbc_btnRightAnswer.insets = new Insets(0, 0, 0, 5); gbc_btnRightAnswer.gridx = 0; gbc_btnRightAnswer.gridy = 9; btnRightAnswer.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new Thread(new AudioPlayer(supplements.get("snd_11"))).start(); } }); add(btnRightAnswer, gbc_btnRightAnswer); if (supplements.get("snd_11")==null) { btnRightAnswer.setEnabled(false); } GridBagConstraints gbc_btnAllWrongAnswers = new GridBagConstraints(); gbc_btnAllWrongAnswers.anchor = GridBagConstraints.WEST; gbc_btnAllWrongAnswers.insets = new Insets(0, 0, 0, 5); gbc_btnAllWrongAnswers.gridx = 1; gbc_btnAllWrongAnswers.gridy = 9; add(btnAllWrongAnswers, gbc_btnAllWrongAnswers); 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.fill = GridBagConstraints.HORIZONTAL; gbc_btnClosingRemark.gridx = 2; gbc_btnClosingRemark.gridy = 9; add(btnClosingRemark, gbc_btnClosingRemark); Qtext.setText(questiontext); Title.setText(qhd.getTitle()); chckbxNewCheckBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.DESELECTED) { Qtext.setText(questiontext); lblNewLabel.setText(new String(supplements.get("Gibr_128"))); validate(); } else { Qtext.setText(spelltext); lblNewLabel.setText(new String(supplements.get("Ansr_128"))); validate(); } } }); if (qhd.getForced() != null) { qhd.setTitlea(new String(supplements.get("STR_18"))); qhd.setTitleb(new String(supplements.get("STR_19"))); } if (supplements.get("snd_16")==null) { btnWrongAnswer.setEnabled(false); } } }