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 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.io.IOException;
import java.util.Hashtable;
import javax.swing.JLabel;
public class JackAttack extends JPanel {
/**
*
*/
private static final long serialVersionUID = -2970935854547118125L;
private JLabel Title;
private JButton btnPlayTitle;
private Hashtable <String, byte[]> supplements;
private Hashtable <String, String[]> strings;
private SRFLoad QData;
private int ansval;
private JLabel Rootval;
private JLabel lblRoot;
private JLabel lblMatch;
private JLabel lblDecoy;
private JLabel lblDecoy_1;
private JLabel lblDecoy_2;
private JLabel mtchval;
private JLabel dc1;
private JLabel dc2;
private JLabel dc3;
private JButton btnNextAnswer;
/**
* Create the panel.
* @throws IOException
*/
public JackAttack(final QHeader qhd) throws IOException {
supplements = new Hashtable<String, byte[]>();
QData = new SRFLoad(qhd.getPath());
supplements = QData.getData();
strings = QData.getStrs();
String[] strsa = strings.get("STR_130");
final char[] strs = new char[7];
for (int i=0; i < 7; i++)
{
strs[i] = strsa[0].charAt(i);
}
final String[] roots = strings.get("Root_128");
final String[] match = strings.get("Mtch_128");
final String[] decoy = strings.get("Dcoy_128");
ansval =0;
GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[] {160, 150, 150, 2};
gridBagLayout.rowHeights = new int[]{0, 0, 30, 28, 29, 27, 27, 0};
gridBagLayout.columnWeights = new double[]{0.0, 0.0, 0.0, Double.MIN_VALUE};
gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
setLayout(gridBagLayout);
Rootval = new JLabel("inst");
GridBagConstraints gbc_Rootval = new GridBagConstraints();
gbc_Rootval.gridwidth = 2;
gbc_Rootval.insets = new Insets(0, 0, 5, 0);
gbc_Rootval.gridx = 1;
gbc_Rootval.gridy = 2;
add(Rootval, gbc_Rootval);
mtchval = new JLabel("<dynamic>");
GridBagConstraints gbc_mtchval = new GridBagConstraints();
gbc_mtchval.gridwidth = 2;
gbc_mtchval.insets = new Insets(0, 0, 5, 0);
gbc_mtchval.gridx = 1;
gbc_mtchval.gridy = 3;
add(mtchval, gbc_mtchval);
btnPlayTitle = new JButton("Play Title");
btnPlayTitle.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new AudioPlayer(supplements.get("snd_2"))).start();
}
});
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(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 = 0;
add(Title, gbc_Title);
dc1 = new JLabel("<dynamic>");
GridBagConstraints gbc_dc1 = new GridBagConstraints();
gbc_dc1.gridwidth = 2;
gbc_dc1.insets = new Insets(0, 0, 5, 0);
gbc_dc1.gridx = 1;
gbc_dc1.gridy = 4;
add(dc1, gbc_dc1);
dc2 = new JLabel("<dynamic>");
GridBagConstraints gbc_dc2 = new GridBagConstraints();
gbc_dc2.gridwidth = 2;
gbc_dc2.insets = new Insets(0, 0, 5, 0);
gbc_dc2.gridx = 1;
gbc_dc2.gridy = 5;
add(dc2, gbc_dc2);
dc3 = new JLabel("<dynamic>");
GridBagConstraints gbc_dc3 = new GridBagConstraints();
gbc_dc3.gridwidth = 2;
gbc_dc3.gridx = 1;
gbc_dc3.gridy = 6;
add(dc3, gbc_dc3);
int position = Integer.valueOf(strs[ansval])-48;
Rootval.setText(roots[position-1]);
mtchval.setText(match[position-1]);
// dc1.setText(decoy[position-1]);
// dc2.setText(decoy[position+7-1]);
// dc3.setText(decoy[position+14-1]);
dc1.setText(decoy[position-1]);
dc2.setText(decoy[position]);
dc3.setText(decoy[position+1]);
btnNextAnswer = new JButton("Next Answer (1 of 7)");
GridBagConstraints gbc_btnNextAnswer = new GridBagConstraints();
gbc_btnNextAnswer.fill = GridBagConstraints.HORIZONTAL;
gbc_btnNextAnswer.insets = new Insets(0, 0, 5, 5);
gbc_btnNextAnswer.gridx = 0;
gbc_btnNextAnswer.gridy = 1;
btnNextAnswer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ansval ++;
if (ansval > 6)
{
ansval =0;
}
btnNextAnswer.setText("Next Answer ("+(ansval+1)+" of 7)");
int position = Integer.valueOf(strs[ansval])-48;
Rootval.setText(roots[position-1]);
mtchval.setText(match[position-1]);
dc1.setText(decoy[position-1]);
dc2.setText(decoy[position+7-1]);
dc3.setText(decoy[position+13-1]);
}
});
add(btnNextAnswer, gbc_btnNextAnswer);
lblRoot = new JLabel("Root");
GridBagConstraints gbc_lblRoot = new GridBagConstraints();
gbc_lblRoot.insets = new Insets(0, 0, 5, 5);
gbc_lblRoot.gridx = 0;
gbc_lblRoot.gridy = 2;
add(lblRoot, gbc_lblRoot);
lblMatch = new JLabel("Match");
GridBagConstraints gbc_lblMatch = new GridBagConstraints();
gbc_lblMatch.insets = new Insets(0, 0, 5, 5);
gbc_lblMatch.gridx = 0;
gbc_lblMatch.gridy = 3;
add(lblMatch, gbc_lblMatch);
lblDecoy = new JLabel("Decoy 1");
GridBagConstraints gbc_lblDecoy = new GridBagConstraints();
gbc_lblDecoy.insets = new Insets(0, 0, 5, 5);
gbc_lblDecoy.gridx = 0;
gbc_lblDecoy.gridy = 4;
add(lblDecoy, gbc_lblDecoy);
lblDecoy_1 = new JLabel("Decoy 2");
GridBagConstraints gbc_lblDecoy_1 = new GridBagConstraints();
gbc_lblDecoy_1.insets = new Insets(0, 0, 5, 5);
gbc_lblDecoy_1.gridx = 0;
gbc_lblDecoy_1.gridy = 5;
add(lblDecoy_1, gbc_lblDecoy_1);
lblDecoy_2 = new JLabel("Decoy 3");
GridBagConstraints gbc_lblDecoy_2 = new GridBagConstraints();
gbc_lblDecoy_2.insets = new Insets(0, 0, 0, 5);
gbc_lblDecoy_2.gridx = 0;
gbc_lblDecoy_2.gridy = 6;
add(lblDecoy_2, gbc_lblDecoy_2);
}
}