import java.rmi.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class ClientApplet1 extends Applet implements ActionListener{
   BakeliteData d ;
   Compute2 comp;
   TextField idt,codicet,dato1t,dato2t,dato3t;
   Button b1,b2;
 public void init(){
   add(idt = new TextField());
   add(codicet = new TextField());
   add(dato1t = new TextField());
   add(dato2t = new TextField());
   add(dato3t = new TextField());
   add(b1 = new Button("Get new object"));
   add(b2 = new Button("Change object"));
   b1.addActionListener(this);
   b2.addActionListener(this);
 if (System.getSecurityManager()==null) {
          System.setSecurityManager(new RMISecurityManager());
       }
       try {
           String name = "//cms2.cern.ch/Compute32";
           comp = (Compute2) Naming.lookup(name);
           d =(BakeliteData) comp.getLocalBakelite(0, 20);
           idt.setText(Integer.toString(d.id));
           codicet.setText(d.codice);
           dato1t.setText(Double.toString(d.dato1));
           dato2t.setText(Double.toString(d.dato2));
           dato3t.setText(Double.toString(d.dato3));
             System.out.println("Il valore cercato e' " + d.dato1);
         //  d.dato1 = 1111.11111;
         //  comp.setLocalBakelite(0,20,d);      
          System.out.println("Bakelite is "+d.id+" "+d.codice+" "+d.dato1);
 
       } catch (Exception e) {
          System.err.println("Exception in RMI: "+e.getMessage());
          e.printStackTrace();
       }
}
public void actionPerformed(ActionEvent ev){
    if (ev.getSource() == b1){
       try {
     d =(BakeliteData) comp.getLocalBakelite(0, Integer.parseInt(idt.getText()));
           idt.setText(Integer.toString(d.id));
           codicet.setText(d.codice);
           dato1t.setText(Double.toString(d.dato1));
           dato2t.setText(Double.toString(d.dato2));
           dato3t.setText(Double.toString(d.dato3));
           repaint();
       } catch (Exception e) {
          System.err.println("Exception in RMI: "+e.getMessage());
          e.printStackTrace();
       }
    }
    if (ev.getSource() == b2){
       try {
           d.id = Integer.parseInt(idt.getText());
           d.codice = codicet.getText();
           d.dato1 = Double.valueOf(dato1t.getText()).doubleValue();
           d.dato2 = Double.valueOf(dato2t.getText()).doubleValue();
           d.dato3 = Double.valueOf(dato3t.getText()).doubleValue();
           comp.setLocalBakelite(0,d.id,d);      
       } catch (Exception e1) {
          System.err.println("Exception in RMI: "+e1.getMessage());
          e1.printStackTrace();
       }
    }
    }
 }
