package org.kjtw.process;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import org.kjtw.structures.QHeader;
import com.kreative.ksfl.KSFLUtilities;
import com.kreative.rsrc.BerkeleyResourceFile;
import com.kreative.rsrc.MacResource;
public class QHeadProcess {
Hashtable<String,QHeader> headtree = new Hashtable<String,QHeader>();
JTree tree = null;
public QHeadProcess(File file, BerkeleyResourceFile rp, String fpath) throws IOException
{
DefaultMutableTreeNode top = new DefaultMutableTreeNode("Questions");
DefaultMutableTreeNode std = new DefaultMutableTreeNode("Standard Questions");
top.add(std);
DefaultMutableTreeNode norm = new DefaultMutableTreeNode("Normal 4 answer");
std.add(norm);
DefaultMutableTreeNode fitb = new DefaultMutableTreeNode("Fill in the blank");
std.add(fitb);
DefaultMutableTreeNode whn = new DefaultMutableTreeNode("Whatshisname? / Moldy Memories");
std.add(whn);
DefaultMutableTreeNode pic = new DefaultMutableTreeNode("Picture question");
std.add(pic);
DefaultMutableTreeNode saq = new DefaultMutableTreeNode("Super Audio Question");
std.add(saq);
DefaultMutableTreeNode imp = new DefaultMutableTreeNode("Impossible Question");
std.add(imp);
DefaultMutableTreeNode ghq = new DefaultMutableTreeNode("Guest Host / Pissed about a Question");
std.add(ghq);
DefaultMutableTreeNode dod = new DefaultMutableTreeNode("Dis or Dat");
DefaultMutableTreeNode ccc = new DefaultMutableTreeNode("Celebrity Collect Call");
DefaultMutableTreeNode fof = new DefaultMutableTreeNode("Fiber Optic Field Trip");
DefaultMutableTreeNode gib = new DefaultMutableTreeNode("Gibberish Questions");
DefaultMutableTreeNode jat = new DefaultMutableTreeNode("Jack Attack (HeadRush)");
DefaultMutableTreeNode twy = new DefaultMutableTreeNode("3Way");
DefaultMutableTreeNode unk = new DefaultMutableTreeNode("Unknown Questions");
top.add(dod);
top.add(ccc);
top.add(fof);
top.add(gib);
top.add(jat);
top.add(twy);
top.add(unk);
for (int type : rp.getTypes()) {
byte[] stuff = new byte[0];
String ftype = KSFLUtilities.fccs(type).trim();
if (ftype.equals("Nuke"))
{
}
if (ftype.equals("qhdr"))
{
for (int id : rp.getfullIDs(type))
{
MacResource r = rp.getFromFullID(type, id);
stuff = r.data;
QHeader qh = new QHeader(id,stuff,file);
DefaultMutableTreeNode q = new DefaultMutableTreeNode(qh.getName());
int qtype = qh.getType();
// if 0 keep looking, else we can put this in a tree already
boolean qfound=false;
if (qtype !=0)
{
switch (qtype)
{
case 2:
gib.add(q);
break;
case 3:
dod.add(q);
break;
case 4:
jat.add(q);
break;
case 5:
fof.add(q);
break;
case 10:
ccc.add(q);
break;
case 12:
twy.add(q);
break;
default:
norm.add(q);
break;
}
qfound=true;
}
if (qh.getValue() ==4)
{
imp.add(q);
qfound=true;
}
if (!qfound)
{
switch (qh.getSubType())
{
case 1:
norm.add(q);
break;
case 2:
fitb.add(q);
break;
case 3:
whn.add(q);
break;
case 4:
pic.add(q);
break;
case 5:
saq.add(q);
break;
case 6:
ghq.add(q);
break;
default:
unk.add(q);
break;
}
}
headtree.put(qh.getName(), qh);
}
tree = new JTree(top);
tree.setShowsRootHandles(true);
tree.setBounds(10, 24, 116, 193);
}
}
}
public Hashtable<String,QHeader> getTable()
{
return headtree;
}
public JTree getTree() {
return tree;
}
}