DataField{
Units un;
HeightField(String s, int n, DataEntry d, Units u){
super(s,n,d);
un=u;
}
public String currValueOfUS(String s){
return un.USToCurrLength(s);
}
public String USValueOfCurrent(String s){
return un.CurrToUSLength(s);
}
public String getLabelText(){
return new String("Height ("+un.getUnitsLength().trim()+"):");
}
public Label getLabel(){
return new Label(getLabelText());
}
}
DataEntry weight;
DataEntry height;
DataEntry bmi;
double wt=0.0,ht=0.0,bmit=0.0;
public BMIField(String s, int n, DataEntry w, DataEntry h,
DataEntry b){
super(s,n);
}
public void update(Observable o, Object obj){
String value;
wt=weight.getDataAsDouble();
ht=height.getDataAsDouble();
bmit=(0.45*wt)/((0.025*ht)*(0.025*ht));
value=(new Double(bmit).toString());
bmi.setData(value);
this.setText(value);
}
}
Observer{
Units units=new Units();
Panel row1=new Panel();
Panel row2=new Panel();
Panel row3=new Panel();
DataEntry weight=new DataEntry();
WeightField weightField=new WeightField("",8,weight,units);
Label weightLabel=weightField.getLabel();
DataEntry height=new DataEntry();
HeightField heightField=new HeightField("",8,height,units);
Label heightLabel=heightField.getLabel();
DataEntry bmi=new DataEntry();
Field bmiField=new BMIField("",7,weight,height,bmi);
Label bmiLabel=new Label("Body Mass Index =");
public void init(){
setLayout(new GridLayout(0,1));
row1.add(units.mcb);
row1.add(units.ucb);
units.addObserver(this);
units.addObserver(weightField);
units.addObserver(heightField);
row2.add(weightLabel);
row2.add(weightField);
row2.add(heightLabel);
row2.add(heightField);
weight.addObserver(bmiField);
height.addObserver(bmiField);
row3.add(bmiLabel);
row3.add(bmiField);
add(row1);
add(row2);
add(row3);
show();
}
public void update(Observable o, Object obj){
}
}