FileDocCategorySizeDatePackage
DMControl.javaAPI DocExample2554Tue Dec 08 01:21:00 GMT 1998DataManagement

DMControl.java


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);
  }
}