package DataManagement;
import java.io.*;
import java.awt.Frame;
import java.util.Hashtable;
import java.util.Vector;
import java.util.Enumeration;
import java.util.StringTokenizer;
import ProblemDomain.*;
import DataManagement.FlatFile.*;
public class DMControl implements IFamiliesDM, IIndividualsDM {
HumanInterface.FamilyFrame target;
Family ff;
Individual record;
DataManagement.FlatFile.FlatFile fileType;
FamilyDM familyDM;
IndividualDM individualDM;
public DMControl() {
familyDM = new FamilyDM();
individualDM = new IndividualDM();
}
public void setTarget(Frame frame) {
target = (HumanInterface.FamilyFrame)frame;
}
public void writeFamily(Family record) {}
public void writeIndividual(Individual record) {}
public void readData(String filename) {
fileType = new FlatFile();
fileType.setTarget(target);
target.textArea.setText("Parsing " + filename);
fileType.readData(filename);
familyDM.setData(fileType.getFamily());
individualDM.setData(fileType.getIndividual());
target.textArea.setText(target.textArea.getText() + "\nFinished parsing file....");
}
public void saveData(String file) {
try {
BufferedWriter out = new BufferedWriter(new FileWriter(file));
target.textArea.setText("Saving as " + file);
Enumeration list = getIndividuals().keys();
while(list.hasMoreElements()) {
out.write(((Individual)individualDM.getRecord(list.nextElement())).toString("0"));
out.write("1 _BLOB\n");
}
list = getFamilies().keys();
while(list.hasMoreElements()) {
out.write(((Family)familyDM.getRecord(list.nextElement())).toString("0"));
}
out.write("0 TRLR");
out.close();
target.textArea.setText(target.textArea.getText() + "\nFinished saving file....");
}
catch(FileNotFoundException ex) {}
catch(IOException exe) {}
}
public Enumeration individualList() {
return individualDM.list();
}
public Enumeration familyList() {
return familyDM.list();
}
public Hashtable getFamilies() {
return familyDM.getRecords();
}
public Hashtable getIndividuals() {
return individualDM.getRecords();
}
/**@note Allows the setup of the family tree with a default set of
family details.*/
public void setUpRecords(Hashtable families,Hashtable individuals) {
familyDM.setData(families);
individualDM.setData(individuals);
}
}
|