import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import student.Student;
import student.StudentDB;
public class StudentDBTester extends Applet
implements ItemListener,
ActionListener {
StudentDB studentDB;
TextArea result;
Button sortButton;
Choice fileURL;
Label label1,label2;
TextField tfNumber;
String datafile[] = { "studfile1.html",
"studfile2.html",
"studfile3.html",
"studfile4.html" };
public void init() {
sortButton = new Button("Sort by grade");
result = new TextArea(12,80);
label1 = new Label("Test Case");
label2 = new Label("Search by ID");
tfNumber = new TextField(10);
fileURL = new Choice();
for (int i = 0; i < datafile.length; i++)
fileURL.add(datafile[i]);
add(label1);
add(fileURL);
add(sortButton);
add(label2);
add(tfNumber);
add(result);
fileURL.addItemListener(this);
tfNumber.addActionListener(this);
sortButton.addActionListener(this);
}
public void itemStateChanged(ItemEvent ie) {
studentDB = new StudentDB();
try {
URL url = new URL("http://personal.cityu.edu.hk/~dcywchan/2003dco10103/" +
fileURL.getSelectedItem());
URLConnection data = url.openConnection();
BufferedReader inFile = new BufferedReader(new InputStreamReader(data.getInputStream()));
String textLine;
while((textLine = inFile.readLine()) != null) {
StringTokenizer st = new StringTokenizer(textLine, "_");
studentDB.addStudent(new Student(Integer.parseInt(st.nextToken()),
st.nextToken(),
Integer.parseInt(st.nextToken())));
}
result.setText("");
result.setText(studentDB.toString());
inFile.close();
} catch(MalformedURLException mue) {}
catch(IOException ioe) {}
}
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(sortButton)) {
studentDB.sortStudentByMark();
result.setText("");
result.setText(studentDB.toString());
}
else if (e.getSource().equals(tfNumber)) {
Student tempStud = new Student(Integer.parseInt(tfNumber.getText()));
Student lookUpResult = studentDB.lookUpStudent(tempStud);
if (lookUpResult != null) {
result.setText("");
result.setText(lookUpResult.toString());
}
}
}
}