// DbApplet.java import java.applet.*; import java.awt.*; import java.util.*; public abstract class DbApplet extends Applet { private Button oButtonDelete; private Button oButtonInsert; private Button oButtonSelect; private Button oButtonUpdate; private ObjectApplet oApplet; private DbManager oDbManager; // ABSTRACT METHODS public abstract String dbName ( ); public abstract ObjectWithUI newObject ( ); protected abstract DbManager newDbManager ( ); // PUBLIC METHODS public void init ( ) { super.init(); try { oDbManager = newDbManager(); } catch (Exception x) { System.out.println("DbApplet error: "+x.getMessage()); x.printStackTrace(); }; setLayout(new GridLayout(1,5,5,5)); oButtonDelete = new Button("Delete"); oButtonInsert = new Button("Insert"); oButtonSelect = new Button("Select"); oButtonUpdate = new Button("Update"); oApplet = newObject().getUI(); add(oButtonDelete); add(oButtonInsert); add(oButtonSelect); add(oButtonUpdate); add(oApplet); } public boolean handleEvent ( Event poEvent ) { boolean t = false; int i; try { if (Event.ACTION_EVENT == poEvent.id) try { if (t = poEvent.target == oButtonDelete) { i = oDbManager.dbDelete(dbName(),oApplet.getObject()); showStatus("Deleted "+i+" item"+(i > 1 ? "s" : "")); } else if (t = poEvent.target == oButtonInsert) { i = oDbManager.dbInsert(dbName(),oApplet.getObject()); showStatus("Inserted "+i+" item"+(i > 1 ? "s" : "")); } else if (t = poEvent.target == oButtonSelect) { ListApplet oListApplet; Frame oFrame; ObjectWithUI oObject; Vector oVector; oObject = (ObjectWithUI)oApplet.getObject(); oVector = oDbManager.dbSelect(dbName(),oObject); oListApplet = new ListApplet(oObject.getUI()); oListApplet.setVector(oVector); new AppletFrame(oListApplet).resize(300,125); i = oVector.size(); showStatus("Selected "+i+" item"+(i > 1 ? "s" : "")); } else if (t = poEvent.target == oButtonUpdate) { new AppletFrame( new UpdateApplet( oDbManager, dbName(), (ObjectWithUI)oApplet.getObject(), (ObjectWithUI)newObject())) .resize(400,150); showStatus("Updating"); } } finally { if (t) oApplet.setObject(newObject()); }; } catch (Exception x) { System.out.println("DbApplet error: "+x.getMessage()); x.printStackTrace(); } return t ? t : super.handleEvent(poEvent); } }