import java.util.*;
import java.io.*;
import java.text.DecimalFormat;
public class PayrollDB extends Vector {
public String toString() {
String st = "";
DecimalFormat precision2 = new DecimalFormat( "0.00" );
for (int i = 0; i < size(); i++) {
st += ((Employee) get(i)).toString() + " earned $" +
precision2.format( ((Employee) get(i)).earnings() ) + '\n';
}
return st;
}
public void load(BufferedReader br, final String DELIM) throws IOException {
String inputLine;
while((inputLine = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(inputLine, DELIM);
Employee employee;
char symbol = st.nextToken().charAt(0);
switch (symbol) {
case 'B': employee = new Boss( st.nextToken(),
st.nextToken(),
Double.parseDouble(st.nextToken()));
add(employee);
break;
case 'C': employee = new CommissionWorker( st.nextToken(),
st.nextToken(),
Double.parseDouble(st.nextToken()),
Double.parseDouble(st.nextToken()),
Integer.parseInt(st.nextToken()));
add(employee);
break;
case 'P': employee = new PieceWorker( st.nextToken(),
st.nextToken(),
Double.parseDouble(st.nextToken()),
Integer.parseInt(st.nextToken()));
add(employee);
break;
case 'H': employee = new HourlyWorker( st.nextToken(),
st.nextToken(),
Double.parseDouble(st.nextToken()),
Double.parseDouble(st.nextToken()));
add(employee);
break;
}
}
}
}
import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class PayrollDBApplet extends Applet
implements ActionListener,
ItemListener {
PayrollDB payrollDB;
Choice employeeList;
TextArea payReport;
TextField employeeReport;
Button bGenReport, bClearReport;
public void init() {
payrollDB = new PayrollDB();
employeeList = new Choice();
employeeReport = new TextField(50);
payReport = new TextArea(10,50);
bGenReport = new Button("Generate Report");
bClearReport = new Button("Clear Report");
try {
URL address = new URL("http://personal.cityu.edu.hk/~dcywchan/2002ssd3/datafile.html");
URLConnection data = address.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(data.getInputStream()));
payrollDB.load(in,"_");
for (int i = 0; i < payrollDB.size(); i++) {
employeeList.add( ((Employee) payrollDB.get(i)).toString());
}
add(employeeList);
add(employeeReport);
add(payReport);
add(bGenReport);
add(bClearReport);
bGenReport.addActionListener(this);
bClearReport.addActionListener(this);
employeeList.addItemListener(this);
in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
}
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(bGenReport)) {
payReport.setText(payrollDB.toString());
}
else if (e.getSource().equals(bClearReport)) {
payReport.setText("");
}
}
public void itemStateChanged(ItemEvent ie) {
StringTokenizer st = new StringTokenizer(employeeList.getSelectedItem(),":");
String name = st.nextToken();
name = st.nextToken();
int i = 0;
while (! name.equals( " " + ((Employee) payrollDB.get(i)).getFirstName() + " " +
((Employee) payrollDB.get(i)).getLastName() ) ) {
i++;
}
employeeReport.setText( ((Employee) payrollDB.get(i)).toString() + " earned $" +
((Employee) payrollDB.get(i)).earnings() );
}
}
| Previou page | Next page |